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

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

यहां हम एक दिलचस्प समस्या देखेंगे। मान लीजिए n का एक मान दिया गया है। हमें लंबाई n के सभी तार इस प्रकार ज्ञात करने हैं कि कोई क्रमागत 1 न हो। यदि n =2, तो संख्याएँ {00, 01, 10} हैं, तो आउटपुट 3 है।

हम इसे डायनामिक प्रोग्रामिंग का उपयोग करके हल कर सकते हैं। मान लीजिए कि हमारे पास 'ए' और 'बी' टेबल हैं। जहां arr[i] लंबाई के बाइनरी स्ट्रिंग्स की संख्या संग्रहीत कर रहा है, जहां कोई लगातार 1 मौजूद नहीं है, और 0 के साथ समाप्त होता है। इसी तरह, बी वही रखता है लेकिन संख्या 1 के साथ समाप्त होती है। हम 0 या 1 जोड़ सकते हैं जहां अंतिम एक है 0 है, लेकिन केवल 0 जोड़ें यदि अंतिम 1 है।

आइए इस विचार को प्राप्त करने के लिए एल्गोरिथम देखें।

एल्गोरिदम

noConsecutiveOnes(n) -

Begin
   define array a and b of size n
   a[0] := 1
   b[0] := 1
   for i in range 1 to n, do
      a[i] := a[i-1] + b[i - 1]
      b[i] := a[i - 1]
   done
   return a[n-1] + b[n-1]
End

उदाहरण

#include <iostream>
using namespace std;
int noConsecutiveOnes(int n) {
   int a[n], b[n];
   a[0] = 1;
   b[0] = 1;
   for (int i = 1; i < n; i++) {
      a[i] = a[i-1] + b[i-1];
      b[i] = a[i-1];
   }
   return a[n-1] + b[n-1];
}
int main() {
   cout << noConsecutiveOnes(4) << endl;
}

आउटपुट

8

  1. सी/सी++ एनएच कैटलन नंबर के लिए प्रोग्राम?

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

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

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

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

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