欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

求集合幂集的一种方法

程序员文章站 2022-03-04 12:28:27
...

原理:
幂集即原集合所有子集组成的元素;对原集合中的每个元素取或不取,构成的所有情况,即与原集合所有子集一一对应;对取或不取用二进制1或0表示,即可用2原集合元素个数个数字来表示原集合的所有子集。
c++代码实现:

#include <iostream>
using namespace std;
void funPowerSet(int * b, int iSetLen)
{
	for (int i = 0; i < _Pow_int(2, iSetLen); i++)
	{
		cout << "{";
		unsigned long lObtainDigital = 1;
		for (int j = 0; j < iSetLen; j++)
		{
			if (i&lObtainDigital)
				cout << b[j] << "\t";
			lObtainDigital = lObtainDigital<<1;
		}
		cout << "}\n";
	}
}