我只是想知道是否有人根据以下因素评估单次淘汰赛中的回合数量: - 参与的团队数量(可以> 2) - 下一轮合格球队的数量。
对于1v1或1v1v1v1来说这很容易,每轮比赛有2支球队合格,但是我被1或2个合格球队的1v1v1卡住了......
谢谢!
根据要求,示例:
让我们从32位玩家开始,他们在“全民免费”模式下一次玩4次COD(每个玩家独自对抗其他玩家)。
1st round : 32 players distributed in 8 matches of 4 players
在这里,我们想知道如果我们选择在每场比赛中保留1或2甚至3个最佳球员,将与4名球员进行最后一场比赛需要多少轮。
第一种情况:如果我们保持每场比赛的最佳状态:
2nd round : 16 players distributed in 4 matches of 4 players
第二种情况:如果我们只保留第一种
2nd round : 8 players distributed in 2 matches of 4 players
(在第二种情况下,我们可以预见到一个问题,因为在下一回合我们将只剩下2名球员,这不足以填补比赛)
我们的想法是找到一个数学公式,给出必要数量的圆形,并带有以下变量:
* NumberOfPlayers : the quantity of initial participants
* NumberOfPlayersInAGame : the quantity of participants in a game
* NumberOfPlayersQualifiedInAGame : the quantity of participants qualified for the next round in after a game
享受:D
答案 0 :(得分:1)
对于1
锦标赛中的k
获胜者(例如k = 3
表示1v1v1)和N
个玩家,其中N
元素k^x
和x
是一个正整数,需要g
个游戏(java代码):
public int countGames(int players, int k) {
if (players <= 1) {
return 0;
} else {
players = players / k;
// the number of remaining players per round is the same as the number of games
return players + countGames(players, k);
}
}
或数学上:
g = sum(i from 1 to logk(N), k^(i-1)) ( logK(N) = ln(N) / ln(k) )
答案 1 :(得分:0)
在单一淘汰锦标赛中,根据定义,每场比赛都会消除一个参赛者。因此,如果有N个参赛者并且比赛通过产生M个获胜者完成,则必须根据单个淘汰赛锦标赛的定义完成N-M比赛。通常情况是M是相同的1,因此必须进行N-1次匹配。
类似地,可以分析每一轮,并且如果匹配由两个参赛者组成以确定单个获胜者,那么具有2 * N个参赛者和N个幸存者的一轮必须具有2 * N-N = N个匹配。如果本轮有2 * N + 1个参赛者,其中一个参赛者有一个再见,那么该轮中有N + 1个幸存者,并且必须再次播放2 * N + 1 - (N + 1)= N个匹配
通过从所需的单一获胜者向后工作,注意到每个参赛者每场比赛只打一场比赛的约束,从而只消除一名参赛者,然后是单一淘汰支持的最大参赛者数 K轮比赛是2 ^ k。