首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建非重现的随机人群组

创建非重现的随机人群组
EN

Stack Overflow用户
提问于 2015-04-29 23:37:12
回答 2查看 57关注 0票数 1

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

我们有一个由100名学生组成的小组,他们之间应该进行讨论。为此,我们希望将他们分成10组,每组10人。我们希望有三轮讨论,但我们希望每次分组都不同。一个人不应该和同一个人坐在一起两次。

假设我们给小组分配字母abcdefghij (10),Person1得到了1:A,2:B,3:C,Person2得到了1:A,但不能有2:B或3:C,因为他们会再次相遇。

手工做这件事听起来很疯狂,我相信有一个非常简单的解决方案。也许甚至是一个能做到这一点的程序,但我就是找不到它,或者不知道要搜索什么……

可悲的是,我没有任何编程技能,但也许这甚至可以在excel或类似的东西中完成?

所有帮助或提示均已收到。感谢您抽出宝贵的时间!

EN

回答 2

Stack Overflow用户

发布于 2015-04-29 23:47:39

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

在随机的fashion.

  • Create中混合学生一组不重复的混合,将顺序的变换应用于

棘手的是第二个。

典型的组合是:

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

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

然后从第一组中选取第一个人,从第二组中选取第二人,从第三组中选取第三人。通过这种方式,您可以清楚地看到,在组中没有人和同一个人在一起。对于其余的组,只需要不同的开始,所以第二组中的第一个人与第二个人到第三个组,等等。

尽管这不是唯一的解决方案,但实现起来还是相当容易的。即使是在excel中也可以做到。

票数 1
EN

Stack Overflow用户

发布于 2015-04-30 14:19:05

如果你只需要三轮,你可能可以通过一个“差分方案”,甚至是一个随机过程,再加上拒绝不合适的安排。但是,如果您可以稍微更改数字100,您可以得到一些更有趣的结果。

例如,很容易在一组81个元素,9个组上构造所谓的“可分解平衡不完全区组设计”,在一个组中没有对出现超过一次。您可以使用sage系统命令echo 'print(designs.AffineGeometryDesign(2,1,9))' | sage > output.txt来执行此操作。不幸的是,sage按字典顺序打印这些块,但您可以很容易地以更有用的顺序重新排列它们。类似地,print(designs.AffineGeometryDesign(2,1,11))提供了以11为一组的121个元素的区块设计。使用10而不是9或11是行不通的:数字必须是质数的幂。

这些命令的输出相当长,所以我将执行一个更简单的示例,使用4而不是9。

代码语言:javascript
复制
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。我们可以按如下方式重新排列这些块:

代码语言:javascript
复制
[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个“假”学生(这些学生可以是空的占位符,也可以是教师、助教、研究助理等)。并使用由Sage生成的(121,11,1)-rBIBD。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29948409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档