如何将球员划分为分区?

时间:2010-09-17 10:12:24

标签: algorithm partitioning

让我们说我们有两个玩家游戏,其中一个玩家总是获胜(不能抽奖)。

问题是:如果我们对他们的技能一无所知,如何将 n 玩家划分为 k 部门?每个分区应该由相同数量的球员组成,最佳球员应该是第一分区,最后分区中最差的球员,等等。还有额外的限制 - 玩家不能玩 p 游戏(p大于k)。

PS:这个问题的灵感来自星际争霸战。

2 个答案:

答案 0 :(得分:1)

你能做的最好的事情是使用swiss-like预赛来对它们进行排序,然后你就会知道它们的技能,这样你就可以将它们分成相应的部分。

I'm doing that,效果很好。

答案 1 :(得分:0)

在将球员划分为分区之前,你能否对球员进行任何观察?如果没有,你没有任何信息,因此只能进行随机分配,然后调整他们在一些游戏后所处的分区。如果我们对玩家一无所知,只需将玩家 n 分配给分区 n mod k

“一轮比赛后”(这可能是你提到的 p 游戏),每个部门内部可能会有一个内部排名。由于每个分区(基本上)都是随机的,所以在一个(随机)分区中表现良好的人可能属于“较高”分区,而不是那些分组较差的分区。因此,在第一轮之后,根据“到目前为止的胜利”对每个玩家进行排序,然后将n / k首先分配给第一个分区,然后将n / k分配给第二个分区,依此类推。