每周随机列表,无重复

每周随机列表,无重复

问题定义:我有一个包含 30 个名字的主列表。我想按周将这些名字分成 5 组,每组 2 到 3 个,以便:

  • 30 个名字中的每一个都会被随机分配给每个组一次,且仅一次
  • 每周,这 30 个名字当然只能分配给一个组

例如,通过使用 RAND() 并选择前 15 个并按顺序分配来创建 5 组 3 个随机名称的单个实例很简单,但是我的问题是由于每周根据上述约束生成组而产生的。

答案1

除非我在这里遗漏了什么,否则您只有大约 885 种可能的组合,并且没有重复。因此,请列出这些组合,大致如下:

1,2
1,3
1,4...etc. then
2,3
2,4
2,5...etc.

相当于 450 个组合。然后执行

1,2,,3
1,2,,4
1,2,,5...etc. then
2,3,,4
2,3,,5
2,3,,6...etc.

这类似于 435 个组合。

在一列中拥有完整列表后,再创建另一列随机数。对随机数列进行排序以“随机化”它们,这完全符合您的目的。然后删除随机数列。

按顺序使用它们(随机排序),为 30 个人分配 1-30 的编号。无论你一周需要多少人,你都可以选择下一个数量。当你拿走它们时,在旁边的列中用“X”标记。

如果您一周需要创建 5 组,另一周需要创建 20 组,则只需选择接下来的 5 组或 20 组即可。

当你全部用完后,只需重新开始即可。

添加人员?添加他们创建的组合。很简单。将这些添加到列表底部并重新排序。如果剩余的不多(您的定义,无论结果如何),只需添加它们,重新排序,然后重新开始。

独一无二,除非必要,否则不会复制,即使必要,也会在“新”批次上进行第一次完整重复。然后再次使用并继续进行未来。

正如评论中所述,您的描述实际上并没有每周增加 30 人。没问题,因为您可以根据需要选择任意数量的组。本周的批次有 29 或 31 人?只需查看下一批三人或两人批次的列表,然后交换最后一个需要交换的批次(31?选择本周随机产生的三个,然后从未使用的批次中抽出两个。将三个放入那个批次的插槽中。每个人都很开心。适用于您实际需要的任何数字,也许您需要 14 人,而随机列表为您提供了 15 人的组。同样的概念。)

相关内容