Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 由n人组成的团队组成r组的最佳方式,但尽量减少重叠_Python_R_Combinatorics - Fatal编程技术网

Python 由n人组成的团队组成r组的最佳方式,但尽量减少重叠

Python 由n人组成的团队组成r组的最佳方式,但尽量减少重叠,python,r,combinatorics,Python,R,Combinatorics,最近有人问我一个看似简单的问题:将一个由12人组成的团队分成三人一组的最佳方式是什么,这个过程要重复6次?解决方案应尽量减少两个人在同一团队中的次数。组合的总数由下式给出: nCr = 12!/(3! * (12-3)!) = 220 因此,手工寻找解决方案并不是一个实际的命题。我发现的最实用(也是最简单)的解决方案是将12个名称混洗,然后从第1、第2、第3和第4个三元组中选择组。然后运行该过程6次。这确实解决了问题,但有太多的情况下,两个人在连续跑步后被安排在同一组。一般的解决方案(n中的r

最近有人问我一个看似简单的问题:将一个由12人组成的团队分成三人一组的最佳方式是什么,这个过程要重复6次?解决方案应尽量减少两个人在同一团队中的次数。组合的总数由下式给出:

nCr = 12!/(3! * (12-3)!) = 220
因此,手工寻找解决方案并不是一个实际的命题。我发现的最实用(也是最简单)的解决方案是将12个名称混洗,然后从第1、第2、第3和第4个三元组中选择组。然后运行该过程6次。这确实解决了问题,但有太多的情况下,两个人在连续跑步后被安排在同一组。一般的解决方案(n中的r组)会很好

我也在“计算科学”上发表过这篇文章,但他们觉得它属于其他地方。
我已经看过了,但这些解决方案似乎并没有解决我的特定问题。

这个问题是“社会高尔夫问题”的一个变体,这是图论中的一个开放问题。非常感谢世卫组织提供了解决方案的线索。这个链接在和中引出了关于这个问题的两个更优秀的讨论。

可能更适合StateExchange?要得到一个随机的结果,你可以做
lappy(1:6,函数(i)矩阵(示例(1:12),3,4))
,但可能最好问一下这个问题。这里有一个可能的出发点:感谢上帝。我已经试过好几次用程序解决你的问题,但都没能通过四天的日程安排。我知道六天是不可能的,但我认为可能有一种方法可以得到五天,然后重复第一天作为最佳解决方案。从链接上看,这是不可能的,所以我可以停止自责!当我发现这是一个开放的问题,我不得不对次优的解决方案感到满意时,这也让我松了一口气。