algorithm - 给定分区元素时计算具有 k 个部分的整数分区
问题描述
我想n
用k
分区元素计算整数分区。可能的分区元素是通过v
具有不同元素的给定向量定义的。可以多次选择分区元素。我怎样才能做到这一点?不遍历n
.
例子:
n := 10
k := 3
v := 1,2,6,7,8
=> 3
解决方案
一种方法是让递归按顺序考虑每个元素。
未记忆的 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]));
推荐阅读
- python - AttributeError:'function'对象没有属性'strip'
- haskell - 如何在 Xmonad 启动时设置位置和大小
- arrays - 数组在数组 [7] 末尾给出随机数
- python - AttributeError:“NoneType”对象没有属性“字符串”无法解决此问题
- c++ - 错误 LNK2038:检测到“_ITERATOR_DEBUG_LEVEL”不匹配:值“2”与 XX.obj 中的值“0”不匹配
- c++ - 使用“-I”定义g++包含路径:为什么它只在我设置“.../include”而不是“.../include/boost”时才有效?
- c# - 使用 WPF 控件中的依赖属性和另一个属性进行 2 向绑定时遇到问题
- python - 我有正确打印字符串的问题
- python - 安装opencv-python-headless时没有实现cv2.destroyAllWindows()
- c - 非常简单的多数组c程序 - 问题noob