Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để thực hiện phương pháp đếm số nhị phân để tạo tập con của một tập hợp

Đâ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 }