Math 创建不重复出现的随机人群

Math 创建不重复出现的随机人群,math,random,grouping,Math,Random,Grouping,所以这不是一个真正的信息学问题,但我猜解决方案在于信息学 我们有一个由100名学生组成的小组,他们打算互相讨论。为此,我们希望将他们分为10组,每组10人。 我们希望进行三轮讨论,但我们希望每次讨论的小组各不相同。任何人都不应该和同一个人坐两次 假设我们给小组分配字母 abcdefghij(10) 第1轮:A轮:B轮:C轮 第二个人得到了第1轮:A,但不能得到第2轮:B或第3轮:C,因为他们会再次见面 用手做这个听起来很疯狂,我相信有一个非常简单的解决办法。也许一个程序也能做到这一点,但我就是找

所以这不是一个真正的信息学问题,但我猜解决方案在于信息学

我们有一个由100名学生组成的小组,他们打算互相讨论。为此,我们希望将他们分为10组,每组10人。 我们希望进行三轮讨论,但我们希望每次讨论的小组各不相同。任何人都不应该和同一个人坐两次

假设我们给小组分配字母 abcdefghij(10) 第1轮:A轮:B轮:C轮 第二个人得到了第1轮:A,但不能得到第2轮:B或第3轮:C,因为他们会再次见面

用手做这个听起来很疯狂,我相信有一个非常简单的解决办法。也许一个程序也能做到这一点,但我就是找不到它或者不知道该搜索什么

可悲的是,我没有任何编程技能,但也许这甚至可以用excel或类似的软件来完成

感谢所有的帮助或提示。
谢谢你抽出时间

是的,可以在excel中完成。您只需要三步方法:

  • 把学生随机混合
  • 创建一组不重复学生的混音
  • 将顺序转换应用于学生
  • 棘手的是第二名

    示例性混合是:

    由于学生的顺序是随机的,你可以把他们分成10组,每组10人,这很容易。我们已经完成了第一次讨论

    对于第二次讨论,您可以选择每组的第一人(每10人一次),因为他们第一次不在同一组中

    然后从第一组中选出第一个人,从第二组中选出第二个人,从第三组中选出第三个人。通过这种方式,您可以清楚地看到,团队中没有人与同一个人在一起。对于其他组,只需使用不同的开始,因此第二组中的第一人与第二组中的第二人一起进入第三组,以此类推


    尽管这不是唯一的解决方案,但它相当容易实现。即使在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]