二进制枚举

您所在的位置:网站首页 java实现全排列枚举 二进制枚举

二进制枚举

2024-07-09 18:21| 来源: 网络整理| 查看: 265

二进制:是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”

子集:是一个数学概念:如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集。

含有N个元素的集合的一切子集的个数为 2^n。简单证明一下:

含有0个元素的子集有C(N,0)个,含有1个元素的子集有C(N,1)个,含有2个元素的子集有C(N,2)个,.........含有N个元素的子集有C(N,N)

由二项式系数的性质可得:C(N,0)+C(N,1)+C(N,2)+...+C(N,N)=2^n

我们就是利用了二进制的特性 ,比如说有5个木棍的长度:4, 8, 2, 6, 7。我们就可以用0和1代表选和不选。

如果选出长度为4、2、6的木棍,则如下表:

                     4                   8                 2           6            7二进制                    1                    0                 1           1            0木棍的状态                   选                 不选                选          选          不选

上面说有5个木棍如果全选的话就是11111对应的十进制数就是31,[0,2^{n}-1] 这个区间上每一个整数代表一个集合一共 2^n 个集合,上表就是数字22(二进制:10110)所代表的集合:4、2、6。

所以我们遍历每一个集合:

for(int i = 0; i < (1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3