查找Equal Partition的总数

时间:2016-10-17 18:01:01

标签: integer partition number-theory sieve

对于数字N f(N)= N的分区中的部分总数等于。

例如 如果给定的数字是4,则相等的分区将是:

{1,1,1,1} - >总数= 4

{2,2} - >总数= 2

{4} - >总数= 1

因此,分区中4个等分的部分总数为7。

我在练习面试问题中得到了这个问题。想知道如何使用编程来解决这个问题。

1 个答案:

答案 0 :(得分:0)

这个问题基本上要求数字N的divisor sum function,因为N的每个不同的除数d可用于创建N的不同分区为相等的部分(值d的n / d部分,或d价值N / d的部分,无论你喜欢哪个)。由于N的任何除数d的N / d只是另一个除数,你可以简单地将除数自己求和而不是求和N / d。

因此,您需要选择计算给定数N的除数的众多方法之一。例如,RosettaCode具有a section on computing the proper divisors of a number,这几乎是您所需要的(您只需将N加到除数中)因为适当的除数不包括N本身)。一旦你必须设置除数,你就可以计算出所需的结果(或者计算每个除数的总和,这样就不需要存储除数)。