我正在为需要编写的算法苦苦挣扎。我正在使用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
这两个排列顺序
袋子1午餐1和袋子2午餐2
以及袋子1午餐2和袋子2午餐1
是不同的,因为袋子的容量不同,所以它们都需要被枚举。
袋子和午餐的数量可以是任意数字。
我创建了一个名为BagLunch
的类,其中包含一个袋子和午餐对。上面提到的示例列表将存储在List<BagLunch>
中。
谢谢。