हमें एक संख्या दी गई है मान लीजिए 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