Module: दिए गए मास्क के सभी सबपैटर्न पर पुनरावृति करें


Problem

1 /7


दी गई लंबाई के बाइनरी तार

Theory Click to read/hide

ऐसा होता है कि एक निश्चित लंबाई के सभी बिट अनुक्रमों को सूचीबद्ध करना आवश्यक है। या दूसरे शब्दों में, सभी संभावित विकल्पों पर पुनरावृति करें, जहां प्रत्येक वस्तु के लिए दो संभावित अवस्थाओं में से एक का चयन किया जाता है।

ऐसी स्थितियों में, बिट मास्क का प्रयोग करके गणना लागू करना संभव है। इस दृष्टिकोण का लाभ यह है कि ऐसे कोड गैर-पुनरावर्ती रूप से काम करते हैं और संग्रह या इसी तरह के बजाय संख्याओं पर काम करते हैं, जिससे प्रदर्शन में काफी सुधार होता है।

बिटमास्क का उपयोग करने वाला सामान्य कोड नीचे दिया गया है: इंटन; // ऑब्जेक्ट्स की संख्या (बिट अनुक्रम की लंबाई) के लिए (इंट मास्क = 0; मास्क < (1 << n); मास्क++) {// 0 से 2^n - 1 तक सभी नंबरों के माध्यम से लूप करें, जहां प्रत्येक संख्या एक बिटमास्क से मेल खाती है // वर्तमान नंबर मास्क एक बिटमास्क है, जहां i-th बिट i-th ऑब्जेक्ट की स्थिति को निर्दिष्ट करता है for (int i = 0; i < n; i++) {// n बिट्स पर पुनरावृति यह समझने के लिए कि प्रत्येक वस्तु की स्थिति क्या है अगर ((1 << i) और मास्क) {// जांचें कि क्या i-th बिट एक के बराबर है // विकल्प को प्रोसेस करें कि i-th ऑब्जेक्ट की स्थिति '1' } और {// केस जब आई-वें बिट शून्य है // विकल्प को संसाधित करें कि राज्य की i-वें वस्तु '0' } } }
यह कोड O(2^n * f(n)) में चलता है, जहां f(n) वह समय है जब आपको एक विशेष पुनरावृत्ति को संसाधित करने में समय लगता है।

Problem

<दिव> <दिव>

दिया गया नंबर N, N लंबाई के सभी स्ट्रिंग को प्रिंट करता है जिसमें ज़ीरो और लेक्सिकोग्राफ़िक क्रम में एक होता है।

समस्या को हल करने में, सभी उप-पैटर्न की गणना का उपयोग करें

<दिव>
इनपुट

एक संख्या N दी गई है। (प्राकृतिक, 1 ≤ N ≤ 10)

<दिव>
आउटपुट

लंबाई N की सभी स्ट्रिंग्स को प्रिंट करना आवश्यक है, जिसमें शून्य और लेक्सिकोग्राफिक क्रम में एक प्रति पंक्ति शामिल है

<दिव> <दिव> <दिव> <तालिका सीमा = "1" सेलपैडिंग = "1" सेलस्पेसिंग = "1" शैली = "चौड़ाई: 500 पीएक्स"> <शरीर> इनपुट आउटपुट <टीडी> <पूर्व> 2 <टीडी> <पूर्व> 00 01 10 11