我有一份人员名单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)