首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有算法解决我的案子吗?

有算法解决我的案子吗?
EN

Stack Overflow用户
提问于 2013-01-07 06:03:18
回答 2查看 116关注 0票数 0

我在我的一个项目中遇到了一个小问题,我希望你们能把事情弄清楚。

情况是这样的,我有一个由12人组成的小组,分为4组。这是一系列三轮比赛中的第一排.

我的问题是这样的;我怎样才能重新呈现这些团体,在接下来的两轮中,让以前没有见过的人见面呢?

我希望重新呈现的组是独一无二的,例如。在接下来的两轮比赛中,第1人不得与第2人或第3人组成一个小组。如果第1人在第二轮中与第4个人和第5人组成一个小组,则在最后一轮中,这些人也应被排除在外。

集团1

人1,人2,人3

集团2

第4人、第5人、第6人

集团3

人7,人8,人9

集团4

人10,人11,人12

EN

回答 2

Stack Overflow用户

发布于 2013-01-07 06:16:33

试试这个:

代码语言:javascript
运行
复制
for (i = 0 to NrGroups-1) do // NrGroups = 4
{
   newGroup + (i+1) = Arr[i] + 
                      Arr[(i+(Arr.length/NrPersonsInGroup))%Arr.length] + 
                      Arr[(i+(Arr.length/NrPersonsInGroup+1))%Arr.length]; // NrPersonsInGroup = 3
}
票数 1
EN

Stack Overflow用户

发布于 2013-01-07 21:51:21

听起来你需要一个组合算法。有关组合(如性能等)的更多详细信息,请检查这里和包含说明的代码示例,您可以检查这里

您的具体实现是12人一次服用3人,不重复。这给了你220个可能的组。

一种检查同一两个人以前是否属于一组的方法是保存已组成的小组的记录,并对照记录检查任何新的组,看看被比较的两组是否有任何共同之处。

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

https://stackoverflow.com/questions/14190722

复制
相关文章

相似问题

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