由n人组成的小组组成r个小组的最佳方法,但最大程度地减少重叠

问题描述 投票:2回答:1

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

nCr = 12!/(3! * (12-3)!) = 220

因此,手动找到解决方案并不是一个实际的建议。我发现最实用(且最简单)的解决方案是将12个名字混在一起,并从第1,第2,第3和第4三元组中选择组。然后运行该过程6次。这确实解决了问题,但是在连续运行后,有太多情况将两个人放在同一组中。一个通用的解决方案(来自n的r组)会很好。

我也将此内容发布在“计算科学”上,但他们认为它属于其他地方。我看过link1link2,但这些解决方案似乎无法解决我的特殊问题。

python r combinatorics
1个回答
2
投票

此问题是“社会高尔夫球手问题”的一种变体,它是图论中的一个开放问题。非常感谢Dave2e提供了Link1解决方案的线索。此链接导致在Link2Link3上对该问题进行了两个更出色的讨论。

© www.soinside.com 2019 - 2024. All rights reserved.