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

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

एक द्विआधारी संख्या एक संख्या है जिसमें केवल दो होते हैं यानी एक या दो होते हैं। प्रत्येक बाइनरी नंबर बाइनरी बिट की एक धारा है, और हम इसे बाइनरी स्ट्रिंग के रूप में मानते हैं। इस स्ट्रिंग के लिए, हमें बाइनरी स्ट्रिंग की संख्या ज्ञात करने की आवश्यकता है जिसमें लगातार वाले नहीं हैं जो कि एन बिट्स हैं।

उदाहरण के लिए, एन -5 के लिए बाइनरी स्ट्रिंग्स दिए गए बाधाओं को संतुष्ट करती हैं 00000 00001 00010 00100 00101 01000 01001 01010 10000 10001 10010 10100 10101

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

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

Input: n = 5
Output: Number of 5-digit binary strings without any consecutive 1's are 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. सी/सी++ एनएच कैटलन नंबर के लिए प्रोग्राम?

    कैटलन संख्याएं संख्याओं का एक क्रम है। कैटलन संख्याएं प्राकृतिक संख्याओं का एक क्रम बनाती हैं जो गिनती की विभिन्न समस्याओं में होती हैं, जिनमें अक्सर पुनरावर्ती-परिभाषित वस्तुएं शामिल होती हैं। सीएन लंबाई 2n के डाइक शब्दों की संख्या है। एक डाइक शब्द एक स्ट्रिंग है जिसमें एन एक्स और एन वाई शामि

  1. सी ++ में बाइनरी मैट्रिक्स को शून्य मैट्रिक्स में बदलने के लिए संचालन की संख्या की गणना करने का कार्यक्रम

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

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

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N के साथ उपलब्ध सभी संभावित भिन्न बाइनरी स्ट्रिंग्स को गिनने की आवश्यकता है ताकि स्ट्रिंग में कोई क्रमागत 1 मौजूद न हो। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देख