给定具有S
元素的n
集和k
整数。我需要找到所有n
选择k
对的产品总和。也就是说,如果是S = {1,2,3,4} and k = 2
,那么我正在寻找P = 1*2 + 1*3 + 1*4 + 2*3 + 2*4 +3*4
。请注意,产品对构成了集合 - 从一组k
元素中获取n
个不同的元素。我可以制定一个简单的动态编程版本:
P(n,k) = a_{n}P(n-1,k-1) + P(n-1,k)
也就是说,选择n-1
元素并选择k-1
并添加a_{n}
,同时省略a_{n}
。是否有一些很好的理论可以找到解决上述问题的封闭式解决方案?我对高级数学有点缺乏,虽然编程让我很兴奋。我能够得出上述的DP,但无法进入一个我希望有的封闭形式!
答案 0 :(得分:4)
我不知道它是否真的有用,但我发现你正在描述elementary symmetric polynomials。
此外,本文似乎对您有用:
Computing Elementary Symmetric Polynomials with a Sub-Polynomial Number of Multiplications
答案 1 :(得分:0)
给定n,k,因为你已经定义了它们:
要求总和的产品数量#(n,k)由
给出 a objects selected b at a time.
此外,#(n,k)= k *#(n-1,k) - (n-1)*#(n,k-1)。