4

给定一组Sn个元素和整数k。我需要找到所有产品的总和n选择k双。也就是说,如果S = {1,2,3,4} and k = 2,那么我正在寻找P = 1*2 + 1*3 + 1*4 + 2*3 + 2*4 +3*4。请注意,产品对构成了一组 - 从一组n元素中取出不同的元素。我可以制定这样一个简单的动态规划版本:从一组n个元素中取出k个元素的产品总和

P(n,k) = a_{n}P(n-1,k-1) + P(n-1,k) 

也就是说,采取n-1元素,并选择k-1,并添加a_{n}以及离开了a_{n}。是否有一些很好的理论来找到上述问题的封闭解决方案?虽然编程让我兴奋,但我对高级数学有点欠缺。我能够得出上述DP,但无法进入我希望的封闭形式!

+0

我觉得这是一个有趣的问题,虽然也许更适合数学。正如我所看到的那样,在没有关于集合元素的知识的情况下,封闭的形式本身就是总和。我认为这是定义。如果你正在寻找的是一个更有效的方法来计算总和,我想不出比你自己更好。 –

回答

0

鉴于N,K为你定义了他们:

来概括产品的数量#( N,k)由

(N,K)= C(N + K-1,K-1)给出,其中C(A,b)是组合学功能,即,

 a objects selected b at a time. 

此外,#(n,k)= k *#(n-1,k) - (n-1)*#(n,k-1)。

相关问题