2

我试图弄清楚如何最好地处理双重淘汰赛。当我进行单场淘汰时,我是这样做的

double rounds = Math.Round(Math.Log(totalfighters, 2));
double bye = Math.Pow(2, rounds) - totalfighters;

我基本上必须弄清楚需要多少轮和多少轮空,然后编写我将如何分配比赛的代码。在我的比赛模型上,我有以下内容:

Match {
   int fighter1
   int fighter2
   int winner
}

我一直在绞尽脑汁想如何使用上面的代码(如果可能的话)来生成一个双重淘汰括号。我对双败的主要问题是正确生成失败者的括号。一直在尝试使用以下格式:

http://www.printyourbrackets.com/7teamdoubleelimination.html

但我坚持生成失败者的括号。

有什么想法吗?还是我应该完全忽略我的单一消除算法?

4

1 回答 1

1

在更复杂的双淘汰情况下,可能更容易只计算括号,逐轮计算,然后让轮数下降。使用可以在添加回合时扩展的数据结构。

确切的规则很重要。例如,假设胜者组再见的战士进入胜者组的下一轮,并且没有相应的战士被添加到失败者组中。

于 2013-08-15T15:42:50.407 回答