生成整数和设置分区

生成所有整数分区并设置分区,其中部分/子集的数量可以是固定的或任意的。
对象类型
整数/集合的大小$N$ (15)
零件/子集数M元 (在1到$N之间)
输出格式
输出  编号绘图

对象信息

这个整数分区一个数字描述了把这个数写成一个正数小数的总和的所有方法。部分例如,七个整数分部的5个是5元=4+1=3+2=3+1+1=2+2+2+2=++++++++++++$。费雷尔图它由一行行框组成,每行从上到下的框的数目由分区中的部分给出。例如,在5之前的分区中,生成下表中所示的图表。

一个集合划分一个接地集合是一个划分为非空子集的集合,其中子集的排序是不相关的。每个子集中的元素排序也是不相关的,并且我们使用字典排序而不损失一般性。例如,所有五个集合的地集$ {1,2,3} $是$123,12,3,1,2,3,1,23,13,2,$,其中子集之间的边界由垂直条表示,并且子集括号被省略以简单起见。

在这个网站上运行的算法是Jo.Rg阿尔恩特的FXT库的一部分。在Knuth的书[7.2.1.4,KNU11]中,算法生成整数分区的算法描述了。在Knuth的书[7.2.1.5,KNU11]中,生成集合划分的算法被称为算法H。

枚举(OEIS)

整数分区的数目由分区号给出(OEIS A000 0 41),并且通过贝尔数给出集合分区的数目(OEIS A000 0110)中。

下载源代码

[压缩的C++源代码(GNU GPL)]
[链接到JORG阿尔恩特的FXT库(GNU GPL)]

工具书类