数组中所有可能组合的乘积之和

时间:2015-10-03 10:01:58

标签: algorithm combinations

有一系列 N 元素。我必须选择 K 元素并将它们相乘,比如乘法的值是 M(k)。现在添加所有可能的 M(k)。假设总和为 S(k)。是否有可能在 O(N ^ 2)的时间复杂度中确定 S(k)(其中1 <= k <= N)的所有值?

在这个论坛中有一个Python语言的解决方案,但我不知道Python,除此之外,我希望这个问题能够得到普遍解决。

1 个答案:

答案 0 :(得分:3)

基本上你想要的是扩展单项式的产品

(1 + A[0] x) (1 + A[1] x) ... (1 + A[N-1] x)

并读取x, x^2, ..., x^N的系数。这是一个简单的O(N^2) - 时间解决方案,它使用学校算法逐个乘以每个因子。