小编Max*_*aos的帖子

如何在 C# 中创建匹配特定条件的组合组?

我有一份人员名单List<Person>,我需要他们根据几个条件产生组合组。通过一个例子可能最容易解释这一点。假设我有人N = 19

List<Person> people = new List<Person>(){A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S};

我作为输入给出PreferredGroupSize。在这种情况下,PreferredGroupSize = 5;

我需要按此PreferredGroupSize和 +/-1 为其余成员分组作为输出组合lastGroupSizes。对于 19 号,我需要people3 组 5 号尺寸和一组 4 号尺寸的所有组合。

使用一些模运算,我已经计算出了我需要的组数numGroups,以及有多少numNormalSizeGroups(即PreferredGroupSize组数)和多少numOddSizeGroups

计算如下:

//if(mod > (PreferredGroupSize)/2.0f)) make small groups.
//else make large groups.

float val1 = N % PreferredGroupSize;
float …
Run Code Online (Sandbox Code Playgroud)

c# linq algorithm combinations

5
推荐指数
1
解决办法
297
查看次数

标签 统计

algorithm ×1

c# ×1

combinations ×1

linq ×1