【问题标题】:Count integer partitions with k parts when partition elements given给定分区元素时计算具有 k 个部分的整数分区
【发布时间】:2020-06-03 23:11:45
【问题描述】:

我想用k 分区元素计算n 的整数分区。可能的分区元素是通过具有不同元素的给定向量v 定义的。可以多次选择分区元素。我怎样才能做到这一点?无需遍历n 的所有整数分区即可达到最佳效果。

例子:

n := 10

k := 3

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

=> 3

【问题讨论】:

    标签: algorithm math dynamic-programming subset-sum integer-partition


    【解决方案1】:

    一种方法是让递归按顺序考虑每个元素。

    未记忆的 JavaScript:

    function f(n, k, v, i=0){
      if (k == 0)
        return n == 0;
    
      if (i == v.length)
        return false;
      
      let total = 0
      
      while (k >= 0 && n >= 0){
        total = total + f(n, k, v, i+1);
        k = k - 1;
        n = n - v[i];
      }
      
      return total;
    }
    
    console.log(f(10, 3, [1,2,6,7,8]));

    【讨论】:

      猜你喜欢
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2020-02-23
      相关资源
      最近更新 更多