gpt4 book ai didi

javascript - Javascript中的组合算法返回数字的所有可能组合

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:19:54 25 4
gpt4 key购买 nike

编辑:

我需要在 Javascript 中实现组合算法,其结果将与 the figure on the right in Wikipedia 相同.使用给定的数字 (n),该函数将能够返回所有可能的分隔,例如

2: [1,1], [2] (2 sets)
3: [1,1,1], [1,2], [2,1], [3] (4 sets)
4: [1,1,1,1], [1,1,2], [1,2,1], [2,1,1], [2,2], [3,1], [1,3], [4] (8 sets)

理想情况下,它应该是一个函数接受并执行回调 2^(n-1) 次。我会接受任何我能理解(并重写)的语言的答案。谢谢!

最佳答案

Prusswan 可能已经给出了最佳答案(算法名称),但我忍不住写了一些 javascript:

function separate(n, callback) {
for (var i=1; i<n; i++) {
separate(n-i, function(ret) {
ret.push(i);
callback(ret);
});
}
callback([n]);
}

关于javascript - Javascript中的组合算法返回数字的所有可能组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8375439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com