@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: {
...
}

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

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

Войти через центр авторизации
Похожие вопросы