Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

लगातार 1's के बिना बाइनरी स्ट्रिंग्स की संख्या गिनने के लिए C/C++ प्रोग्राम?


एक बाइनरी संख्या वह संख्या है जिसमें केवल दो होते हैं यानी 0 या 1। हर बाइनरी संख्या बाइनरी बिट्स की एक धारा है, और हम इसे बाइनरी स्ट्रिंग मानते हैं। इस स्ट्रिंग के लिए, हमें उन बाइनरी स्ट्रिंग्स की संख्या ढूंढनी होगी जिनमें लगातार 1's नहीं हैं जो N बिट्स की हैं।

उदाहरण के लिए, N = 5 के लिए बाइनरी स्ट्रिंग्स जो दिए गए प्रतिबंधों को पूरा करती हैं: 00000 00001 00010 00100 00101 01000 01001 01010 10000 10001 10010 10100 10101

एक विधि सभी N-अंकीय स्ट्रिंग्स उत्पन्न करना और केवल उन स्ट्रिंग्स को प्रिंट करना है जो दिए गए प्रतिबंधों को पूरा करती हैं। लेकिन यह विधि काम करने के मामले में उतनी कुशल नहीं है।

दूसरी विधि पुनरावृत्ति (recursion) का उपयोग करना है। पुनरावृत्ति में प्रत्येक बिंदु पर, हम आंशिक रूप से बनी संख्या में 0 और 1 जोड़ते हैं और एक कम अंक के साथ पुनरावृत्ति करते हैं। यहां ट्रिक यह है कि हम 1 जोड़ते हैं और केवल तभी पुनरावृत्ति करते हैं जब आंशिक रूप से बनी संख्या का अंतिम अंक 0 हो, इस तरह, आउटपुट स्ट्रिंग में कभी भी लगातार 1's नहीं होंगे।

Input: n = 5 Output: 5-अंकीय बाइनरी स्ट्रिंग्स जिनमें कोई लगातार 1's नहीं हैं, की संख्या 13 है

उदाहरण

#include <iostream>
#include <string>
using namespace std;
int countStrings(int n, int last_digit) {
    if (n == 0)
        return 0;
    if (n == 1) {
        if (last_digit)
            return 1;
        else
            return 2;
    }
    if (last_digit == 0)
        return countStrings(n - 1, 0) + countStrings(n - 1, 1);
    else
        return countStrings(n - 1, 0);
}
int main() {
    int n = 5;
    cout << "Number of " << n << "-digit binary strings without any "
        "consecutive 1's are " << countStrings(n, 0);
    return 0;
}

  1. nवीं कैटलन संख्या (nth Catalan Number) के लिए C/C++ प्रोग्राम? nवीं कैटलन संख्या (nth Catalan Number) के लिए C/C++ प्रोग्राम?

    कैटलन संख्याएं (Catalan numbers) संख्याओं का एक अनुक्रम है। कैटलन संख्याएं प्राकृतिक संख्याओं का एक अनुक्रम बनाती हैं जो विभिन्न गणना समस्याओं में होती हैं, अक्सर पुनरावर्ती रूप से परिभाषित वस्तुओं से जुड़ी होती हैं। Cₙ लंबाई 2n के डाइक शब्दों (Dyck words) की संख्या है। एक डाइक शब्द n Xs और n Ys

  1. C++ में बाइनरी मैट्रिक्स को शून्य मैट्रिक्स में बदलने के लिए ऑपरेशनों की गिनती करने का प्रोग्राम C++ में बाइनरी मैट्रिक्स को शून्य मैट्रिक्स में बदलने के लिए ऑपरेशनों की गिनती करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है। अब एक ऑपरेशन पर विचार करें जहां हम एक सेल लेते हैं और उसे और उसके सभी पड़ोसी सेल्स (ऊपर, नीचे, बाएं, दाएं) को फ्लिप करते हैं। हमें ऑपरेशनों की न्यूनतम संख्या ढूंढनी है जैसे कि मैट्रिक्स में केवल 0 हों। यदि कोई समाधान नहीं है, तो -1 वापस करें। तो, यदि इनप

  1. पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N की सभी संभावित अलग बाइनरी स्ट्रिंग्स गिननी हैं जिनमें लगातार 1 न हों। उदाहरण # स्ट्रिंग्स की संख्या गिनें def countStrings(n): a = [0 for i in range(n)] b = [0 for i in r