获取分区函数句柄的一种方法涉及
中间函数 p(k, n),表示
仅使用至少与 k 一样大的自然数对 n 进行分区。为了
任何给定的 k 值,由 p(k, n) 计数的分区完全适合
以下类别之一:
smallest addend is k
smallest addend is strictly greater than k.
满足第一个条件的分区数是 p(k, n − k)。
要看到这一点,想象一个包含 n - k 数的所有分区的列表
成大小至少为 k 的数字,然后想象将“+ k”附加到每个
列表中的分区。现在它是什么列表?作为旁注,一个
可以使用它为分区定义一种递归关系
就中间函数而言的函数,即
1+ sum{k=1 to floor (1/2)n} p(k,n-k) = p(n),
满足第二个条件的分区数为p(k + 1, n)
因为划分为至少 k 个部分,其中不包含
恰好 k 必须具有至少 k + 1 的所有部分。
由于这两个条件互斥,所以
满足任一条件的分区是 p(k + 1, n) + p(k, n − k)。这
因此递归定义的函数是:
p(k, n) = 0 if k > n
p(k, n) = 1 if k = n
p(k, n) = p(k+1, n) + p(k, n − k) otherwise.