【发布时间】:2014-05-08 08:55:07
【问题描述】:
假设我有一个数组{1, 2, 5, 4} 和m = 3。
我需要找到:
1*2*5 + 1*2*4 + 1*5*4 + 2*5*4
即n个元素的数组中m个元素的所有组合的乘积之和。
可能的解决方案之一是找到所有组合然后解决它,但那将是O(nCm) 解决方案。有没有更好的算法?
【问题讨论】:
-
除此之外,您还想如何解决它?
-
您希望我们为此定义算法吗?先自己试试吧。
-
如果您想知道是否有一个公式而不是查找所有组合,请尝试 math.stackexchange.com。
-
@PhamTrung 为什么不呢?大哦符号表示一个上限。
-
有一个使用 Newton's identities 的替代 O(mn) 时间算法(您正在评估第 m 个基本对称多项式)。
标签: algorithm