Đây là một chương trình C ++ để triển khai Phương pháp đếm số nhị phân để tạo ra các tập hợp con của một tập hợp.
Thuật toán
Begin Take the array elements as input. function BinaryCounting(): Calculate subset by r = pow(2, n) // here n = number of elements. Generate binary numbers from 0 to r-1. Call solution() for each binary string of n character. End
Ví dụ
#include<iostream> #include<math.h> using namespace std; void solution(char code[], int a[], int n) //print the solution { 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[] = "00000"; r = pow(2, n); //Generate binary numbers from 0 to 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; } } } 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 subset in the binary counting method: \n"; BinaryCounting(a, n); return 0; }
Đầu ra
Enter the number of elements: 4 Enter 1 element: 4 Enter 2 element: 3 Enter 3 element: 2 Enter 4 element: 1 The subset 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 }