所以这不是一个真正的信息学问题,但我猜测解决方案在于信息学。
我们有一个由100名学生组成的小组,他们之间的相互讨论。为此,我们希望将它们分成10组,每组10人。 我们希望进行三轮讨论,但我们希望每次都有不同的小组。没有人应该和同一个人坐两次。
假设我们分配了我们的小组信件 abcdefghij(10) Person1获得第1轮:第2轮:第3轮:C Person2获得Round1:A然后无法获得Round2:B或Round3:C因为他们会再次见面。
手动执行此操作听起来非常疯狂,我确信有一个非常简单的解决方案。也许甚至是一个完全符合这个要求的程序,但是我无法找到它或者不知道要搜索什么......
可悲的是,我在编程方面没有任何技巧,但也许这甚至可以用excel或类似的方式完成?
所有帮助或提示apreciated。 谢谢你花时间!
答案 0 :(得分:1)
是的,可以在excel中完成。你只需要三步法:
棘手的是第二名。
示例性组合是:
由于学生的顺序是随机的,你可以将它们分成10组10人,这很容易。所以我们完成了第一次讨论。
对于第二次讨论,你可以选择每组的第一人(每10个人一次),因为他们第一次不在同一组。
然后从第1组获得第1人,从第2组获得第2名,从第3组获得第3名。通过这种方式,您可以清楚地看到没有人与该组中的同一个人。对于其余的组,只需要进行不同的开始,所以第二组的第一人与第二组一起进入第三组等。
尽管这不是唯一的解决方案,但实施起来相当容易。甚至可以在excel中使用。
答案 1 :(得分:1)
如果你只需要三轮,你可能会得到一个“差异计划”,甚至是一个随机的过程,同时拒绝不合适的安排。但是,如果您可以稍微更改数字100,则可以获得更有趣的结果。
例如,很容易在一组81个元素上构建所谓的“可解析的平衡不完全块设计”,9个组,在一组中没有一对出现多次。您可以使用sage
系统命令echo 'print(designs.AffineGeometryDesign(2,1,9))' | sage > output.txt
执行此操作。不幸的是,sage以字典顺序打印块,但您可以轻松地以更有用的顺序重新排列它们。类似地,print(designs.AffineGeometryDesign(2,1,11))
提供了一个块设计,其中包含121个元素,每组11个。使用10而不是9或11不能解决问题:数字必须是素数的幂。
这些命令的输出相当长,所以我将做一个更简单的例子,用4代替9.输出是
AffineGeometryDesign<points=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
blocks=[[0, 1, 2, 3], [0, 4, 8, 12], [0, 5, 10, 15], [0, 6, 11, 13], [0, 7, 9, 14],
[1, 4, 11, 14], [1, 5, 9, 13], [1, 6, 8, 15], [1, 7, 10, 12], [2, 4, 9, 15],
[2, 5, 11, 12], [2, 6, 10, 14], [2, 7, 8, 13], [3, 4, 10, 13], [3, 5, 8, 14],
[3, 6, 9, 12], [3, 7, 11, 15], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]>
points
只给出了积分的编号;请注意,它从0开始而不是1,并且总共有16个点。更有趣的是blocks
。我们可以按如下方式重新排列块:
[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]
[0, 4, 8, 12], [1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15]
[0, 5, 10, 15], [1, 4, 11, 14], [2, 7, 8, 13], [3, 6, 9, 12]
[0, 6, 11, 13], [1, 7, 10, 12], [2, 4, 9, 15], [3, 5, 8, 14]
[0, 7, 9, 14], [1, 6, 8, 15], [2, 5, 11, 12], [3, 4, 10, 13]
每行覆盖具有4个不相交子集的地面集。选择任意一对数字,你会发现它们在一个且只有一个块在一起。这允许您在存在rBIBD的情况下延伸超过三轮。
与100名学生打交道的一种方法是增加21名“假”学生(可能只是空占位者或可能是教师,助教,研究助理等)并使用(121,11,1) -rBIBD由Sage生成。