Как написать алгоритм возвращающий все варианты комбинаций элементов массивов? Дано: Структура данных со вложенными массивами, выглядит так (js):[ [ 1,2,3], [ 4,5,6], [ 7, 8, 9] ] Надо: Построить один массив со всеми вариантами сочетаний int-значений, по одному значению из каждого подмассива т.е.[ [1,4,7], [1,4,8], [1,4,9], [1,5,7] ... Ни разу не математик, голова кипит)
Для решения данной задачи мы можем использовать рекурсивную функцию. Вот пример алгоритма на JavaScript:
function generateCombinations(arrays, index, current, result) { if (index === arrays.length) { result.push(current.slice()); return; } for (let i = 0; i < arrays[index].length; i++) { current.push(arrays[index][i]); generateCombinations(arrays, index + 1, current, result); current.pop(); } } function getAllCombinations(arrays) { const result = []; generateCombinations(arrays, 0, [], result); return result; } const arrays = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; const combinations = getAllCombinations(arrays); console.log(combinations);
Этот код создает функцию getAllCombinations, которая принимает массив массивов и возвращает все возможные комбинации элементов. Функция generateCombinations реализует рекурсивный подход для перебора всех комбинаций. В конечном итоге, вызывая getAllCombinations(arrays), вы получите все комбинации элементов из исходных массивов.
Для решения данной задачи мы можем использовать рекурсивную функцию. Вот пример алгоритма на JavaScript:
function generateCombinations(arrays, index, current, result) {if (index === arrays.length) {
result.push(current.slice());
return;
}
for (let i = 0; i < arrays[index].length; i++) {
current.push(arrays[index][i]);
generateCombinations(arrays, index + 1, current, result);
current.pop();
}
}
function getAllCombinations(arrays) {
const result = [];
generateCombinations(arrays, 0, [], result);
return result;
}
const arrays = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
const combinations = getAllCombinations(arrays);
console.log(combinations);
Этот код создает функцию getAllCombinations, которая принимает массив массивов и возвращает все возможные комбинации элементов. Функция generateCombinations реализует рекурсивный подход для перебора всех комбинаций. В конечном итоге, вызывая getAllCombinations(arrays), вы получите все комбинации элементов из исходных массивов.