|
例子
|
包括21个,二进制10101的群大小为1,1,0;22不是,二进制10110的组大小为1,0,1,其中包括增加。
按顺序应用21位可以得到分区序列:[],[1],[2],[2,1],[2^2],[2^2,1],因此21表示分区[2^2,2]。
正项以不规则三角形开头:
1;
2, 3;
4, 5, 7;
8、9、10、11、15;
16, 17, 18, 19, 21, 23, 31;
32, 33, 34, 35, 36, 37, 39, 42, 43, 47, 63;
64, 65, 66, 67, 68, 69, 71, 73, 74, 75, 79, 85, 87, 95, 127;
...
T(n,k)表示n的第k个分区。例如:对于n=5,5的七个分区(按Mathematica顺序)用三种方式表示,如下所示。最后一列(16、17、18、19、21、23、31)也是三角形的第五行。
-----------------------------------
分区二进制十进制
5个数值的
-----------------------------------
5 10000 16
4+1 10001 17
3+2 10010 18
3+1+1 10011 19
2+2+1 10101 21
2+1+1+1 10111 23
1+1+1+1+1 11111 31
(结束)
让我们举例说明计算[2^k,2^(k+1))形式区间内所有项的算法。考虑所有5+1=6的整数分区,其顺序超过最大部分的递减(参见算法IntegerPartitions)。我们有:{{6},{5,1},}4,2},2,1,1},1,1,1,1,1}}.
现在,对于每个数字i,将其替换为1,后跟(i-1)0。因此,它变成了:{{1,0,0,0,1},{1,0,1,0,1{1,00,01,0},}1,0,0,1,1},0,1},{1,0,0,1,1,1},{1,0,1,0,1,0},{1,0,1,0,1,1},{1,0,1,1,1,1},{1,1,1,1,1,1}}.
最后,将这些作为二进制数进行读取,并将其转换为十进制,我们得到了区间[32,64)中的所有项:{32,33,34,35,36,37,39,42,43,47,63}。
(结束)
|