gpt4 book ai didi

c# - C# 中的置换算法

转载 作者:太空狗 更新时间:2023-10-30 00:55:52 25 4
gpt4 key购买 nike

我正在为我需要编写的算法而苦苦挣扎。我正在使用 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 2Bag 1 Lunch 2 and Bag 2 Lunch 1不同是因为袋子的容量不同,因此它们都需要被枚举。

袋子和午餐的数量可以是任意数量。

我创建了一个名为 BagLunch 的类其中包含一个袋子和一对午餐。我上面给出的示例列表将存储在 List<BagLunch> 中.

谢谢。

最佳答案

在 LINQ 中使用交叉连接:

var qry = from bag in bags
from lunch in lunches
select new BagLunch
{ Bag=bag, Lunch=lunch};
var baglunches = qry.ToList();

编辑:
您需要修改 select 子句以处理 BagLunch 类的结构。

关于c# - C# 中的置换算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9168269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com