セットのサブセットを生成するためのバイナリカウントメソッドを実装するC++プログラム
これは、セットのサブセットを生成するためのバイナリカウントメソッドを実装するためのC++プログラムです。
アルゴリズム
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
例
#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;
} 出力
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 }> -
STLにSet_Intersectionを実装するC++プログラム
2つのセットの共通部分は、両方のセットに共通する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin Declare set vector v and iterator st. Initialize st = set_intersection (set1, set1 + n, set2, s
-
STLにSet_Differenceを実装するC++プログラム
2つのセットの違いは、2番目のセットではなく、最初のセットに存在する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin Declare set vector v and iterator st. Initialize st = set_difference (set1, set1 + n,