परिचय
यहां हम बॉम स्वीट अनुक्रम देखेंगे। यह एक बाइनरी अनुक्रम है। यदि किसी संख्या n में विषम संख्या में सन्निहित 0 हैं, तो nth बिट 0 होगी, अन्यथा nth बिट 1 होगी।
एल्गोरिदम
BaumSweetSeqTerm (G, s)
शुरुआत
आकार n का बिट अनुक्रम seq परिभाषित करें
baum := 1
len := n के बाइनरी में बिट्स की संख्या
i को 0 से len तक लूप
j := i + 1
count := 1
यदि seq[i] = 0, तो
j को i + 1 से len तक लूप
यदि seq[j] = 0, तो
count बढ़ाएं
अन्यथा
ब्रेक
अंत यदि
अंत लूप
यदि count विषम है, तो
baum := 0
अंत यदि
अंत यदि
अंत लूप
baum वापस करें
अंत
C++ प्रोग्राम उदाहरण
#include <bits/stdc++.h>
using namespace std;
int BaumSweetSeqTerm(int n) {
bitset<32> sequence(n);
int len = 32 - __builtin_clz(n);
int baum = 1;
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)
count++;
else
break;
}
if (count % 2 == 1)
baum = 0;
}
i = j;
}
return baum;
}
int main() {
int n = 4;
cout << BaumSweetSeqTerm(n);
}
आउटपुट
1