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

C++ में केवल 0 और 1 वाली लंबाई N की बाइनरी स्ट्रिंग्स की संख्या गिनना


हमें एक संख्या दी गई है मान लीजिए num और कार्य दी गई संख्या num से केवल 0 और 1 वाली बाइनरी स्ट्रिंग्स की संख्या की गणना करना है जो बनाई जा सकती हैं।

बाइनरी नंबर सिस्टम नंबर प्रतिनिधित्व तकनीकों में से एक है। यह डिजिटल सिस्टम में सबसे लोकप्रिय और उपयोग किया जाता है। बाइनरी सिस्टम का उपयोग बाइनरी मात्राओं को दर्शाने के लिए किया जाता है जिन्हें किसी भी उपकरण द्वारा दर्शाया जा सकता है जिसमें केवल दो ऑपरेटिंग स्टेट्स या संभावित स्थितियां होती हैं। उदाहरण के लिए, एक स्विच की केवल दो स्थितियां होती हैं: खुला या बंद।

बाइनरी सिस्टम में केवल दो प्रतीक या संभावित अंक मान होते हैं, यानी 0 और 1। किसी भी उपकरण द्वारा दर्शाया गया जिसमें केवल 2 ऑपरेटिंग स्टेट्स या संभावित स्थितियां होती हैं। बाइनरी स्ट्रिंग्स वे स्ट्रिंग्स हैं जिनमें बाइनरी मान होते हैं यानी या तो 0 या 1।

उदाहरण

इनपुट: num = 3 आउटपुट: count is 8

व्याख्या: लंबाई 3 के बाइनरी संयोजन जो बनाए जा सकते हैं: 000, 111, 001, 101, 100, 110, 011, 010 चूंकि वे कुल 8 हैं इसलिए काउंट 8 है।

इनपुट: num = 2 आउटपुट: count is 4

व्याख्या: लंबाई 2 के बाइनरी संयोजन जो बनाए जा सकते हैं: 00, 11, 01, 10 चूंकि वे कुल 4 हैं इसलिए काउंट 4 है।

उपयोग किया गया दृष्टिकोण:

  • लॉन्ग लॉन्ग प्रकार की संख्या इनपुट करें क्योंकि संख्या कितनी भी लंबी हो सकती है
  • मॉड मान की गणना करें (लॉन्ग लॉन्ग)(1e9 + 7)
  • काउंट की गणना के लिए एक फ़ंक्शन बनाएं
  • एक अस्थायी वैरिएबल घोषित करें जो काउंट स्टोर करेगा और एक और वैरिएबल temp जिसे 2 से इनिशियलाइज़ करें
  • num को temp = temp % mod के रूप में सेट करें
  • लूप शुरू करें जब तक num > 0:
    • जांचें यदि num & 1 तो काउंट को (काउंट * temp) % mod पर सेट करें
    • num = num >> 1 सेट करें
    • temp = (temp * temp) % mod सेट करें
  • काउंट वापस करें
  • परिणाम प्रिंट करें।

उदाहरण (C++ कोड)

#include <iostream> 
using namespace std; 
#define ll long long 
#define mod (ll)(1e9 + 7) 
// O(log y) में (x^y)%p ढूंढने के लिए एक पुनरावृत्त फ़ंक्शन 
ll power(ll x, ll y, ll p){ 
    ll result = 1; 
    x = x % p; 
    while (y > 0){ 
        // यदि y विषम है, तो x को परिणाम से गुणा करें 
        if (y & 1){ 
            result = (result * x) % p; 
        } 
        // y अब सम होना चाहिए 
        y = y >> 1; // y = y/2 
        x = (x * x) % p; 
    } 
    return result; 
} 
// बाइनरी स्ट्रिंग्स की संख्या गिनने के लिए फ़ंक्शन 
ll countbstring(ll num){ 
    int count = power(2, num, mod); 
    return count; 
} 
int main(){ 
    ll num = 3; 
    cout << "count is: " << countbstring(num); 
    return 0; 
}

आउटपुट

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

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

  1. - C++ प्रोग्राम: सीढ़ियों की संख्या और प्रत्येक सीढ़ी में चरणों की संख्या गिनें

    मान लीजिए हमारे पास n तत्वों वाला एक सरणी A है। मान लें, अमल एक बहुमंजिला इमारत के अंदर सीढ़ियां चढ़ता है। हर बार जब वह चढ़ता है, तो 1 से गिनती शुरू करता है। उदाहरण के लिए, यदि वह 3 चरणों और 4 चरणों वाली दो सीढ़ियां चढ़ता है, तो वह 1, 2, 3, 1, 2, 3, 4 जैसे संख्या बोलेगा। सरणी A में, संख्याएं अमल द्

  1. C++ में अधिकतम मोड़ों वाला पथ लंबाई C++ में अधिकतम मोड़ों वाला पथ लंबाई

    एक समस्या को हल करने के लिए जिसमें हमें एक बाइनरी ट्री दिया गया है। अब हमें अधिकतम संख्या में मोड़ों वाला पथ खोजने की आवश्यकता है। यानी, एक मोड़ तब माना जाता है जब पथ की दिशा बाएं से दाएं या इसके विपरीत बदलती है, उदाहरण के लिएइनपुट -आउटपुट -6अब इस दृष्टिकोण में, हम ट्री को पार करेंगे और पिछली गतिविध