sách gpt4 ai đã đi

javascript - 获取数组的所有(数量)组合

In lại 作者:行者123 更新时间:2023-12-04 12:17:57 30 4
mua khóa gpt4 Nike

从昨天开始,我一直在努力做到这一点,尽管还没有运气。我找到了解决方案,在我想要完成的事情上总是有细微的差别。
我试图获得所有可能的组合,稍微像这样:combination_k ,但我也希望相同的项目与自身配对,因此给出以下内容:
输入 [1, 4, 5]2 (组合数)应该返回:[1, 1], [1, 4], [1, 5], [4, 4], [4, 5], [5, 5]输入 [1, 4, 5]3应该返回:[1, 1, 1], [1, 1, 4], [1, 1, 5], [1, 4, 4], [1, 4, 5], [4, 4, 4], [4, 4, 5], [5, 5, 5], [5, 5, 4], [5, 5, 1] (顺序并不重要)。
我一直在调整combination_k,它让我足够远以至于它可以与2一起使用,但是当我提供3作为参数时它不起作用。

const combinations = getAllCombinations([1, 4, 5], 2);
// combinations = [1, 1], [1, 4], [1, 5], [4, 4], [4, 5], [5, 5]
欢迎任何提示!

1 Câu trả lời

该问题通常被称为具有重复的 k 组合。
这是一个依赖递归来获得所需结果的解决方案:

const combinations = (array, r) => {
const result = [];
const fn = (array, selected, c, r, start, end) => {
if (c == r) {
result.push([...selected]);
return;
}

for (let i = start; i <= end; i++) {
selected[c] = array[i];
fn(array, selected, c + 1, r, i, end);
}
}

fn(array, [], 0, r, 0, array.length - 1);
trả về kết quả;
}

console.log(combinations([1, 4, 5], 3));

关于javascript - 获取数组的所有(数量)组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67514711/

30 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com