@ravewave

Как перебрать всевозможные сочетания?

Доброго времени суток.
Подскажите, как реализовать данный алгоритм.
На входе есть 2 массива из объектов, например:
var array1 = [obj_1, obj_2, obj_3, obj_4],
array2 = [obj_5, obj_6, obj_7];

На выходе необходимо получить массив из S элементов, где S - число размещений без повторений из n (число элементов массива array1) по k (число элементов массива array2), т.е. в данном конкретном примере S = n!/(n-k)! = 4!/(4-3)! = 24.
Каждый элемент выходного массива будет содержать в себе ассоциативный массив, который для каждого элемента массива array1 будет ставить в соответствие элемент из массива array2. Начинаться результат должен примерно так:
1: {
obj_1 => obj_5,
obj_2 => obj_6,
obj_3 => obj_7
},
2: {
obj_1 => obj_5,
obj_2 => obj_6,
obj_4 => obj_7
},
3: {
obj_1 => obj_5,
obj_3 => obj_6,
obj_4 => obj_7
},
...,
24: {
...
}

Ну и так далее. Не пойму, как это все перебрать. Повторение объектов для каждого плана быть не должно. Спасибо.
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
CSort Барнаул
от 40 000 до 90 000 руб.
SegmentStream Москва
от 250 000 до 350 000 руб.
от 120 000 руб.
16 июл. 2019, в 03:05
15000 руб./за проект
16 июл. 2019, в 02:57
5000 руб./за проект
16 июл. 2019, в 00:49
15000 руб./за проект