Algorithm 当给定分区元素时,使用k个部分计算整数分区

Algorithm 当给定分区元素时,使用k个部分计算整数分区,algorithm,math,dynamic-programming,subset-sum,integer-partition,Algorithm,Math,Dynamic Programming,Subset Sum,Integer Partition,我想用k分区元素计算n的整数分区。可能的分区元素通过给定的向量v定义,该向量具有不同的元素。分区元素可以选择多次。我该怎么做?优化,无需遍历n的所有整数分区 例如: n:=10 k:=3 v:=1,2,6,7,8 =3 < /代码> < P>一种方法是递归地考虑每个元素的顺序。 非动画JavaScript: 函数f(n,k,v,i=0){ 如果(k==0) 返回n==0; 如果(i==v.length) 返回false; 设总数=0 而(k>=0&&n>=0){ 总计=总计+f(n,k,v

我想用
k
分区元素计算
n
的整数分区。可能的分区元素通过给定的向量
v
定义,该向量具有不同的元素。分区元素可以选择多次。我该怎么做?优化,无需遍历
n
的所有整数分区

例如:

n:=10

k:=3

v:=1,2,6,7,8


<代码>=3 < /代码>

< P>一种方法是递归地考虑每个元素的顺序。

非动画JavaScript:

函数f(n,k,v,i=0){ 如果(k==0) 返回n==0; 如果(i==v.length) 返回false; 设总数=0 而(k>=0&&n>=0){ 总计=总计+f(n,k,v,i+1); k=k-1; n=n-v[i]; } 返回总数; } log(f(10,3[1,2,6,7,8])