यह C++ प्रोग्राम बाइनरी काउंटिंग मेथड का उपयोग करके एक सेट के सभी सबसेट (उपसमुच्चय) उत्पन्न करता है। यह विधि 0 से 2^n - 1 तक बाइनरी नंबर गिनती करती है, जहां प्रत्येक बाइनरी नंबर एक सबसेट को दर्शाता है।
एल्गोरिदम
शुरुआत
1. ऐरे तत्व इनपुट लें।
2. फंक्शन BinaryCounting():
- सबसेट की संख्या कैलकुलेट करें: r = pow(2, n) जहां n = तत्वों की संख्या
- 0 से r-1 तक बाइनरी नंबर जनरेट करें
- n कैरेक्टर के प्रत्येक बाइनरी स्ट्रिंग के लिए solution() कॉल करें
समाप्ति
उदाहरण कोड
#include <iostream>
#include <cmath>
using namespace std;
void solution(char code[], int a[], int n) {
int i;
cout << "\t { ";
for (i = 0; i < n; i++) {
if (code[i] == '1')
cout << a[i] << " ";
}
cout << "}\n";
}
int BinaryCounting(int a[], int n) {
int r, i, l;
char bin[32] = {0}; // पर्याप्त बड़ा बफर
r = pow(2, n);
// बाइनरी नंबर 0 से r-1 तक जनरेट करें
for (i = 0; i < r; i++) {
solution(bin, a, n);
l = n - 1;
h:
if (bin[l] == '0')
bin[l] = '1';
else {
bin[l] = '0';
l--;
goto h;
}
}
return 0;
}
int main() {
int i, n;
cout << "\nEnter the number of elements: ";
cin >> n;
int a[n];
cout << "\n";
for (i = 0; i < n; i++) {
cout << "Enter " << i+1 << " element: ";
cin >> a[i];
}
cout << "\nThe subsets in the binary counting method: \n";
BinaryCounting(a, n);
return 0;
}
आउटपुट
Enter the number of elements: 4
Enter 1 element: 4
Enter 2 element: 3
Enter 3 element: 2
Enter 4 element: 1
The subsets in the binary counting method:
{ }
{ 1 }
{ 2 }
{ 2 1 }
{ 3 }
{ 3 1 }
{ 3 2 }
{ 3 2 1 }
{ 4 }
{ 4 1 }
{ 4 2 }
{ 4 2 1 }
{ 4 3 }
{ 4 3 1 }
{ 4 3 2 }
{ 4 3 2 1 }
व्याख्या: 4 तत्वों के लिए 2^4 = 16 सबसेट हैं (खाली सेट सहित)। बाइनरी काउंटिंग में:
- 0000 → खाली सेट { }
- 0001 → { 1 }
- 0010 → { 2 }
- 0011 → { 2, 1 }
- ...
- 1111 → { 4, 3, 2, 1 }