这类问题称为整数分拆,有相当长的历史.
分拆中不应出现0,否则拆法有无穷多:4 = 4+0 = 4+0+0 =...
直接认为4 = 4也是一种分拆.
设p(n)表示n的拆法总数,并补充定义p(0) = 1,p(n) = 0对任意整数n < 0.
p(n)还没有闭形式的通项公式,个人认为也不会有.
容易得到以p(n)为系数的形式幂级数(生成函数):
∑{n ≥ 0} p(n)x^n = П{n ≥ 1} (1+x^n+x^(2n)+x^(3n)+...) = П{n ≥ 1} 1/(1-x^n).
结合Euler的五边形数定理,可得到p(n)的一个递推公式:
p(n) = ∑{k为非零整数} (-1)^(k-1)·p(n-k(3k-1)/2)
= ∑{k ≥ 1} (-1)^(k-1)·p(n-k(3k-1)/2)+∑{k ≥ 1} (-1)^(k-1)·p(n-k(3k+1)/2).
注意k为非零整数时k(3k-1)/2 > 0,此外只有有限个整数k使k(3k-1)/2 ≤ n.
因此求和中只出现小于n的整数,且只有有限项非零.
另外,p(n)还有一个渐进公式(当n→∞时两边比值趋于1):
p(n) e^(π√(2n/3))/(4n√3).