Я борюсь с этим алгоритмом, который мне нужно написать.Я использую C #.
Скажем, у меня есть List<Bag>
, и у меня есть List<Lunch>
.Мне нужно написать алгоритм, который будет перечислять все перестановки обедов во всех пакетах.
Например, скажем, есть 3 обеда и 2 пакета:
// Permutation 1
Bag 1, Lunch 1
Bag 2, Lunch 1
// Permutation 2
Bag 1, Lunch 1
Bag 2, Lunch 2
// Permutation 3
Bag 1, Lunch 1
Bag 2, Lunch 3
// Permutation 4
Bag 1, Lunch 2
Bag 2, Lunch 1
// Permutation 5
Bag 1, Lunch 2
Bag 2, Lunch 2
// Permutation 6
Bag 1, Lunch 2
Bag 2, Lunch 3
// Permutation 7
Bag 1, Lunch 3
Bag 2, Lunch 1
// Permutation 8
Bag 1, Lunch 3
Bag 2, Lunch 2
// Permutation 9
Bag 1, Lunch 3
Bag 2, Lunch 3
Две перестановки Bag 1 Lunch 1 and Bag 2 Lunch 2
и Bag 1 Lunch 2 and Bag 2 Lunch 1
различны, потому что пакеты имеют разную вместимость, поэтому их нужно будет перечислить.
Количество пакетов и обедов может быть любым числом.
Я создал классназывается BagLunch
, который содержит сумку и обеденную пару.Список приведенных выше примеров будет храниться в List<BagLunch>
.
Спасибо.