双消除括号算法

时间:2013-08-15 05:23:10

标签: c# asp.net-mvc algorithm math

我正在试图弄清楚如何最好地处理双重消除支架。当我做了我的单一淘汰时,我就这样做了

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

但我一直坚持产生失败者的支架。

有什么想法?或者我是否应该强制忽略我的单一消除算法?

1 个答案:

答案 0 :(得分:1)

在更复杂的双重消除情况下,可能更容易一轮一轮地计算括号,并因此使轮数减少。使用可以在添加轮次时扩展的数据结构。

确切的规则很重要。例如,大概在获胜者支架再见中的战斗机进入获胜者支架的下一轮,并且没有相应的战斗机被添加到输家支架。