1.核心公式: 2^(k-1) >= n + k n:原二进制的位数(例:10101 的位数为5就可以确定N=5) 求K的最小值
2.算2^(--k) 算出所有的位置 例如K=4 算2^(4-1)=8 2^(3-1)=4 2^(2-1)=2 2^(2-1)=1
3.组合位置
编号 1 2 3 4 5 6 7 8 9 10 11 …
编号对应的二进制 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011
将编号转成二进制从右向左,
如果第一位是1,例如编号是1,3,5,7....的就分入第一组,
如果第二位是1的,例如编号2,3,6,7,10...的就分入第二组,
以此类推将所有的编号分入相应的组中
4. 采用(配偶=0)(配奇=1)原则进行运算就可以得到最终的数据
网友评论