Math 创建不重复出现的随机人群
所以这不是一个真正的信息学问题,但我猜解决方案在于信息学 我们有一个由100名学生组成的小组,他们打算互相讨论。为此,我们希望将他们分为10组,每组10人。 我们希望进行三轮讨论,但我们希望每次讨论的小组各不相同。任何人都不应该和同一个人坐两次 假设我们给小组分配字母 abcdefghij(10) 第1轮:A轮:B轮:C轮 第二个人得到了第1轮:A,但不能得到第2轮:B或第3轮:C,因为他们会再次见面 用手做这个听起来很疯狂,我相信有一个非常简单的解决办法。也许一个程序也能做到这一点,但我就是找不到它或者不知道该搜索什么 可悲的是,我没有任何编程技能,但也许这甚至可以用excel或类似的软件来完成 感谢所有的帮助或提示。Math 创建不重复出现的随机人群,math,random,grouping,Math,Random,Grouping,所以这不是一个真正的信息学问题,但我猜解决方案在于信息学 我们有一个由100名学生组成的小组,他们打算互相讨论。为此,我们希望将他们分为10组,每组10人。 我们希望进行三轮讨论,但我们希望每次讨论的小组各不相同。任何人都不应该和同一个人坐两次 假设我们给小组分配字母 abcdefghij(10) 第1轮:A轮:B轮:C轮 第二个人得到了第1轮:A,但不能得到第2轮:B或第3轮:C,因为他们会再次见面 用手做这个听起来很疯狂,我相信有一个非常简单的解决办法。也许一个程序也能做到这一点,但我就是找
谢谢你抽出时间 是的,可以在excel中完成。您只需要三步方法:
尽管这不是唯一的解决方案,但它相当容易实现。即使在excel中也是可行的。如果你只需要三轮,你也可以通过“差异方案”,甚至是随机过程,再加上拒绝不合适的安排。然而,如果你能稍微改变数字100,你可以得到一些更有趣的结果 例如,在一组81个元素、9个组上构造所谓的“可分解平衡不完全块设计”是很容易的,一组中没有一对出现超过一次。您可以使用
sage
系统命令echo'print(designs.affinegometrydesign(2,1,9))'|sage>output.txt
来实现这一点。不幸的是,sage按字典顺序打印块,但您可以轻松地按更有用的顺序重新排列它们。类似地,print(designs.affinegometrydesign(2,1,11))
提供了一个以11为一组的121个元素的块设计。用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]]>
每行用4个不相交的子集覆盖地面集。选择任何一对数字,你会发现它们在一个且只有一个街区在一起。这允许您在存在rBIBD的情况下扩展到三轮以上
处理100名学生的一种方法是添加21名“假”学生(可能只是空的占位符,也可能是教师、助教、研究助理等),并使用Sage生成的(121,11,1)-rBIBD。我相信现场的人会很快回答这个问题,考虑到这个问题似乎不是在寻找一个编程答案。我投票将这个问题作为离题题结束,因为它最适合
math.stackexchange.com
。
[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]