हमारे पास एक अनुक्रम जनरेटर है जो 1 से शुरू होता है। प्रत्येक चरण पर 0 10 हो जाता है और 1 01 हो जाता है। इसलिए निम्नलिखित परिवर्तन लगातार चरणों में होंगे -
चरण 1 - 01
चरण 2 -1001
चरण 3 - 01101001 ……
लक्ष्य दिए गए चरणों की संख्या के लिए लगातार 0 के जोड़े की संख्या ज्ञात करना है।
यदि इनपुट चरण 0 के - 0 की 1 जोड़ी है, तो इनपुट चरण 0 के - 1 की 2 जोड़ी है, इनपुट चरण 0 के 1 की 3 जोड़ी है
चरण 4 - 1001011001101001
चरण 5 - 01101001100101101001011001101001
हम देख सकते हैं कि अनुक्रम 2 की शक्तियों में बढ़ रहा है और लंबाई 12 के बाद और प्रत्येक 12 वर्णों के लिए खुद को दोहराता है। तो, इन 12 लंबाई अनुक्रमों में लगातार 0 के 2 जोड़े हैं।
चरण S के लिए 12 लंबाई पैटर्न की संख्या 2S /12 होगी
लगातार 2 पैटर्न की संख्या =1 (प्रारंभिक) + 2 X S (शेष 12 लंबाई दोहराव के लिए)
आइए उदाहरणों से समझते हैं।
इनपुट − चरण =5
आउटपुट − क्रमागत शून्यों के युग्मों की संख्या है − 5
स्पष्टीकरण − जैसा कि 5वें चरण में ऊपर दिखाया गया क्रम है −
Step 5: 01101001100101101001011001101001 Number of pairs of 0’s is 5. Also with formula : tmp=25 /12= 32/12 = 2, pairs=1+ 2 x 2 = 5
इनपुट - कदम =10
आउटपुट − लगातार शून्य के युग्मों की संख्या है − 171
स्पष्टीकरण − सूत्र के साथ − tmp=210/12=1024/12 =85, जोड़े=1+ 2 x 85 =171
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
हम इनपुट के रूप में कदमों की संख्या लेंगे और जांचेंगे कि क्या चरण =1 तो लगातार 0 के जोड़े की संख्या 0 है। यदि चरण =2 या 3 है तो ऐसे जोड़े की संख्या 1 है।
अन्यथा, सूत्र tmp=2input/12 और जोड़े=1+2*tmp का उपयोग करके गणना करें।
-
चरणों के लिए एक चर दशमलव को इनपुट के रूप में लें।
-
फ़ंक्शन Zero_pairs(int दशमलव) दशमलव लेता है और उस चरण के लिए लगातार शून्य के जोड़े की संख्या देता है।
-
प्रारंभिक गणना 0 के रूप में लें।
-
यदि दशमलव<=1, 0 लौटाएं।
-
यदि दशमलव ==2 या दशमलव ==3। फिर वापस आएं 1.
-
अन्यथा temp=(pow(2,decimal))/12 की गणना करें और 2*temp + 1 के रूप में गणना करें।
-
परिणाम के रूप में वापसी की गिनती।
उदाहरण
#include<bits/stdc++.h> using namespace std; int Zero_pairs(int decimal){ int count = 0; if(decimal <=1){ count = 0; } else if(decimal == 2 || decimal == 3){ count = 1; } else{ int temp = (pow(2, decimal) / 12); count = 2 * temp + 1; } return count; } int main(){ int decimal = 7; cout<<"Count of Pairs Of Consecutive Zeros are: "<<Zero_pairs(decimal); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of Pairs Of Consecutive Zeros are: 21