Алгоритмы перестановки в C #
Я борюсь с этим алгоритмом, который мне нужно написать. Я использую 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
// Permu,tation 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>
.
Спасибо.