计算n的分区

让p(n)表示正整数n可以表示为正整数的和,不考虑顺序。有很多方法可以确定分区的数量给定整数n的p(n)。Euler给出了著名的生成式p(n)的函数(参见加法和乘法分区),但是还有许多其他有趣的表征和计算方法p(n)的值。例如,我们有以下公式包含sum-of-disvisors函数1个p(n)=-总和s(k)p(n-k)n k=1理解为p(0)=1。这里s(k)表示总和如果k有素因式分解(p1^a1)(p2^a2)。。。(pt^at),则k的除数之和为t pj^(aj+1)-1s(k)=产品---------------j=1 pj-1计算序列p(n)最简单的方法之一是递归使用公式p(n)=总和(-1)^(k-1)p(n-k(3k+-1)/2)其中,求和是针对所有k进行的,因此k(3k+-1)/2位于范围从1到n。更一般地说,给定任何不同整数的集合C(例如{2,3}或素数集,或正方形集,等等)计算n的方式数的有效算法可以表示为C元素的总和,允许多重性但不考虑秩序。设c1、c2、c3,。。。表示元素并将C_0=0设置为表示空元素。然后,对于每对整数i,j,我们定义函数f(i,j)带着作业f(0,0)=1f(i,j)=0,如果i或j小于或等于零(但不是都为零)和递归关系j个f(i,j)=总和f(i-c_j,k)k=0对于所有i,j>0。那么整数n的方式可以表示为C的元素之和n个v(n)=f(n,k)之和k=1有趣的是,存在“双重”整数集一的第n个元素是将n划分为元素的数量反之亦然。请参见分区转换周期顺便说一下,欧拉生成函数1---------------------=1+p(1)x+p(2)x^2+p(3)x^3+。。。(1-x)(1-x^2)(1-x^3)。。。可以立即推广到任意分区整数集。我们只需在每个允许和的分母s。例如,生成将n分为素数的函数是1---------------------------------------(1-x2)(1-x^3)(1-x^5)(1-x ^7)(1-x ^11)。。。=1+0x+1x^2+1x^3+1x^4+2x^5+2x^6+3x^7+。。。再举一个例子,假设我们希望确定不同的根据可用硬币兑换一美元的方法。这个与要求将100个分区的数量计算为集合1、5、10、25、50和100的元素(表示便士,镍币、一角硬币、四分之一、五十美分和银元)。基本生成函数为1-----------------------------------------------(1-x^1)(1-x*5)(1-x10)(1-x25)(1x^50)(1-x^100)=1+1x+1x^2+1x^3+1x^4+2x^5+2x^6+2x^7+。。。此展开式中的系数x^100为293,这是所需的结果。然而,这并不是一种非常实用的计算答案的方法。简化计算的一种方法是留出便士,因为他们可以完成任意总和,只需考虑将小于或等于100的数字表示为数字之和5、10、25、50和100。每个表达式都对应一个唯一的用所需数字表示数字100的方法便士。此外,我们可以将简化后的所有数字相除问题乘以5,所以我们正在寻找表示20或数字1、2、5、10、20的数量更少。的生成函数这些数字的总和是1-------------------------------------(1-x^1)(1-x*2)(1-x^5)(1-x ^10)(1-x ^20)=1+1x+2x^2+2x^3+3x^4+4x^5+5x^6+6x^7+7x^8+8x^9+11x^10+12x^11+15x^12+16x^13+19x^14+22x^15+25x^16+28x^17+31x^18+34x^19+41x^20+。。。所以表示20或更少的方法的数量是系数高达x^20,即。,1 + 1 + 2 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 11+12+15+16+19+22+25+28+31+34+41=293这些系数可以使用集合和的f数组来确定{1,2,5,10,20}如前所述。这就给出了一个容易制成表格的数组如下所示:0 1 2 3 4 5总和0 1 0 0 0 0 11 0 1 0 0 0 0 12    0  1  1  0  0  0        23    0  1  1  0  0  0        24    0  1  2  0  0  0        35    0  1  2  1  0  0        46    0  1  3  1  0  0        57    0  1  3  2  0  0        68    0  1  4  2  0  0        79    0  1  4  3  0  0        810    0  1  5  4  1  0       1111    0  1  5  5  1  0       1212    0  1  6  6  2  0       1513    0  1  6  7  2  0       1614    0  1  7  8  3  0       1915    0  1  7 10  4  0       2216    0  1  8 11  5  0       2517    0  1  8 13  6  0       2818    0  1  9 14  7  0       3119    0  1  9 16  8  0       3420    0  1 10 18 11  1       41---总计=293哈代和拉马努扬采用更复杂的分析方法研究1918年左右广泛使用配分函数,发现p(n)的对数渐近于PI sqrt(2n/3),从而得出近似公式e^(PI平方(2n/3))p(n)~-----------------4平方米(3)随后,他们著名的“圆圈法”被用来获得公式1天/天(PI平方(2n/3-1/36))\p(n)=----------------(-------------------------)+O(e^(k平方码(n))2PI平方(2)dn\sqrt(n-1/24)/其中k<PI/6。进一步的改进导致了一个公式(带有修正项)这使得p(200)在实际值3972999029388的0.004范围内。稍后,Rademacher在这些方面做了更多的改进,并能够给出p(n)的级数展开。Abramowitz和Stegun给出了这个公式《数学函数手册》,但它相当复杂,并不特别对实际计算有用。

返回数学页主菜单