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

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

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

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

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

उदाहरण के लिए

Input − num = 3
Output − count is 8

स्पष्टीकरण - द्विआधारी संयोजन जो लंबाई 3 से बन सकते हैं:000, 111, 001,101, 100, 110, 011, 010 क्योंकि वे संख्या में कुल 8 हैं इसलिए गिनती 8 है।

Input − num = 2
Output − count is 4

स्पष्टीकरण - द्विआधारी संयोजन जो लंबाई 2 से बन सकते हैं:00, 11, 01,10 हैं क्योंकि वे संख्या में कुल 4 हैं इसलिए गिनती 4 है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • लंबे समय तक कई प्रकार इनपुट करें क्योंकि संख्या किसी भी अंक लंबी हो सकती है

  • (लॉन्ग लॉन्ग)(le9 + 7)

    . के रूप में मॉड वैल्यू की गणना करें
  • गिनती की गणना करने के लिए एक फ़ंक्शन बनाएं

  • एक अस्थायी चर घोषित करें जो गिनती और अन्य चर अस्थायी को संग्रहीत करेगा और इसे 2 के साथ आरंभ करेगा।

  • संख्या को अस्थायी =अस्थायी% मॉड के रूप में सेट करें

  • लूप प्रारंभ करें जबकि संख्या> 0

  • IF संख्या और 1 की जाँच करें और फिर गिनती को (गिनती * अस्थायी)% मॉड के रूप में सेट करें

  • सेट num =num>> 1

  • अस्थायी सेट करें =(अस्थायी * अस्थायी)% मॉड

  • वापसी की संख्या

  • परिणाम प्रिंट करें।

उदाहरण

#include <iostream>
using namespace std;
#define ll long long
#define mod (ll)(1e9 + 7)
// An iterative function to find (x^y)%p in O(log y)
ll power(ll x, ll y, ll p){
   ll result = 1;
   x = x % p; // Update x if it is more than or
   // equal to p
   while (y > 0){
      // If y is odd, multiply x with result
      if (y & 1){
         result = (result * x) % p;
      }
      // y must be even now
      y = y >> 1; // y = y/2
      x = (x * x) % p;
   }
   return result;
}
// Function to count the number of binary strings
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 के बिना बाइनरी स्ट्रिंग्स की संख्या की गणना करने के लिए?

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

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

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

  1. सी ++ पथ लंबाई जिसमें अधिकतम संख्या में मोड़ हैं

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