更新时间:2023-02-10 16:41:16
对于相当小的 n
值,您可以隐式生成所有分区,计算每个分区中的部件数.
For rather small n
values you can implicitly generate all partitions, count number of parts in every partition.
n = 7
kcounts = [0]*n
def parts(sum, last = 1, k=0):
if sum == 0:
global kcounts
kcounts[k-1] += 1
return
for i in range(last, sum + 1):
parts(sum - i, i, k + 1)
parts(n)
print(kcounts)
>>[1, 3, 4, 3, 2, 1, 1]
所以 k=3 给出最大分区
So k=3 gives maximum partitions