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

लगातार 1 के बिना बाइनरी स्ट्रिंग गिनें


इस समस्या में, हमें कुछ बाइनरी संख्याएं ढूंढनी हैं जिनमें लगातार 1 नहीं हैं। एक 3-बिट बाइनरी स्ट्रिंग में, तीन बाइनरी संख्याएं 011, 110, 111 हैं, जिनमें लगातार 1 हैं, और पांच संख्याएं हैं जिनमें लगातार 1 नहीं हैं। तो इस एल्गोरिदम को 3-बिट संख्याओं पर लागू करने के बाद, उत्तर 5 होगा।

यदि a[i] बाइनरी संख्याओं का समुच्चय है, जिनके बिट्स की संख्या i है, और जिनमें कोई लगातार 1 नहीं है, और b[i] बाइनरी संख्या का समुच्चय है, जहां बिट्स की संख्या i है, और जिनमें लगातार 1 हैं, तो पुनरावर्ती संबंध हैं:

a[i] := a[i - 1] + b[i - 1] b[i] := a[i - 1]

इनपुट और आउटपुट

इनपुट: यह एल्गोरिदम बाइनरी संख्या के लिए बिट्स की संख्या लेता है। मान लें इनपुट 4 है। आउटपुट: यह उन बाइनरी स्ट्रिंग्स की संख्या लौटाता है जिनमें लगातार 1 नहीं हैं। यहाँ परिणाम है: 8। (ऐसी 8 बाइनरी स्ट्रिंग्स हैं जिनमें लगातार 1 नहीं हैं)

एल्गोरिदम

countBinNums(n)

इनपुट: n बिट्स की संख्या है।
आउटपुट: गिनें कि कितनी संख्याएं मौजूद हैं जिनमें लगातार 1 नहीं हैं।

शुरू     0 से समाप्त होने वाली स्ट्रिंग्स और 1 से समाप्त होने वाली स्ट्रिंग्स की सूचियां परिभाषित करें     endWithZero[0] := 1     endWithOne[0] := 1     i := 1 से n-1 तक, करें       endWithZero[i] := endWithZero[i-1] + endWithOne[i-1]       endWithOne[i] := endWithZero[i-1]     किया     endWithZero[n-1] + endWithOne[n-1] वापस करें अंत

उदाहरण

#include <iostream> using namespace std; int countBinNums(int n) {     int endWithZero[n], endWithOne[n];     endWithZero[0] = endWithOne[0] = 1;     for (int i = 1; i < n; i++) {       endWithZero[i] = endWithZero[i-1] + endWithOne[i-1];       endWithOne[i] = endWithZero[i-1];     }     return endWithZero[n-1] + endWithOne[n-1]; } int main() {     int n;     cout << "Enter number of bits: "; cin >> n;     cout << "Number of binary numbers without consecitive 1's: "<<countBinNums(n) << endl;     return 0; }

आउटपुट

Enter number of bits: 4 Number of binary numbers without consecitive 1's: 8

  1. - पायथन में मैप फंक्शन का उपयोग करके बाइनरी स्ट्रिंग में लगातार 1 की अधिकतम लंबाई

    कभी-कभी संख्याओं के बाइनरी प्रतिनिधित्व से निपटने के दौरान हमें यह पता लगाने की आवश्यकता हो सकती है कि संख्या में कितने निरंतर 1 मौजूद हैं। यह लेख दो तरीके दिखाता है कि हम इसका पता कैसे लगा सकते हैं। Split और Map का उपयोग करना पायथन में split फंक्शन का उपयोग दी गई स्ट्रिंग को कई स्ट्रिंग्स में विभाज

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

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

  1. - दी गई संख्या के बाइनरी प्रतिनिधित्व में सबसे लंबे लगातार 1 की लंबाई खोजने का पायथन प्रोग्राम

    समस्या विवरण दी गई संख्या के बाइनरी प्रतिनिधित्व में सबसे लंबे लगातार 1 की लंबाई खोजें। उदाहरण इनपुट: n = 15 आउटपुट: 4 15 का बाइनरी प्रतिनिधित्व 1111 है। एल्गोरिदम संख्या इनपुट करें। एक काउंटर वेरिएबल c=0 का उपयोग करें। i=0 तक पहुंचने के लिए इटरेशन की संख्या गिनें। यह ऑपरेशन 1 के प्रत्येक अनुक्र