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

सी प्रोग्राम में बॉम स्वीट सीक्वेंस?

यहां हम बॉम स्वीट सीक्वेंस देखेंगे। यह अनुक्रम एक द्विआधारी अनुक्रम है। यदि किसी संख्या n में सन्निहित 0s की विषम संख्या है, तो nth बिट 0 होगा, अन्यथा nth बिट 1 होगा।

हमारे पास एक प्राकृतिक संख्या n है। हमारा कार्य बॉम स्वीट अनुक्रम का n-वाँ पद ज्ञात करना है। इसलिए हमें यह जांचना होगा कि इसमें विषम लंबाई के शून्य का कोई क्रमागत ब्लॉक है या नहीं।

यदि संख्या 4 है तो पद 1 होगा, क्योंकि 4 100 है। इसलिए इसमें दो (सम) शून्य हैं।

एल्गोरिदम

BaumSweetSeqTerm (G, s) -

begin
   define bit sequence seq of size n
   baum := 1
   len := number of bits in binary of n
   for i in range 0 to len, do
      j := i + 1
      count := 1
      if seq[i] = 0, then
         for j in range i + 1 to len, do
            if seq[j] = 0, then
               increase count
            else
               break
            end if
         done
         if count is odd, then
            baum := 0
         end if
      end if
   done
   return baum
end

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int BaumSweetSeqTerm(int n) {
   bitset<32> sequence(n); //store bit-wise representation
   int len = 32 - __builtin_clz(n);
   //builtin_clz() function gives number of zeroes present before the first 1
   int baum = 1; // nth term of baum sequence
   for (int i = 0; i < len;) {
      int j = i + 1;
      if (sequence[i] == 0) {
         int count = 1;
         for (j = i + 1; j < len; j++) {
            if (sequence[j] == 0) // counts consecutive zeroes
               count++;
            else
               break;
         }
         if (count % 2 == 1) //check odd or even
            baum = 0;
      }
      i = j;
   }
   return baum;
}
int main() {
   int n = 4;
   cout << BaumSweetSeqTerm(n);
}

आउटपुट

1

  1. पायथन में अनुक्रम से अधिकतम के-रिपीटिंग सबस्ट्रिंग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास वर्णों का एक क्रम है जिसे s कहा जाता है, हम कहते हैं कि एक स्ट्रिंग w k-दोहराई जाने वाली स्ट्रिंग है यदि w को संयोजित किया गया है तो k बार अनुक्रम का एक विकल्प है। w का अधिकतम k-पुनरावृत्ति मान उच्चतम मान k होगा जहां w क्रम में k-पुनरावृत्ति है। और यदि w दिए गए अनुक्रम का विकल

  1. पायथन में समतुल्य आवृत्तियों के साथ एक अनुक्रम का पता लगाने का कार्यक्रम

    मान लीजिए हमारे पास संख्याओं की एक सूची है। हमें संख्याओं के सबसे लंबे अनुक्रम की लंबाई इस प्रकार ज्ञात करनी है कि जब हम अनुक्रम से किसी संख्या को हटाते हैं, तो प्रत्येक संख्या समान संख्या में बार-बार आती है। इसलिए, यदि इनपुट संख्याओं की तरह है =[2, 4, 4, 7, 7, 6, 6], तो आउटपुट 7 होगा। इसे हल करने

  1. पायथन में लगातार सबसे लंबे अनुक्रम की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक क्रमबद्ध सरणी है, हमें लगातार तत्वों के सबसे लंबे अनुक्रम की लंबाई का पता लगाना है। इसलिए, यदि इनपुट अंकों की तरह है =[70, 7, 50, 4, 6, 5], तो आउटपुट 4 होगा, क्योंकि लगातार तत्वों का सबसे लंबा अनुक्रम [4, 5, 6, 7] है। इसलिए हम इसकी लंबाई लौटाते हैं:4. इसे हल क