计算比赛中的数轮

时间:2010-12-24 00:05:48

标签: javascript math loops formula

我已经用JavaScript编写了一个巨大的页面,用于我正在游戏中举办的锦标赛。我已经得到了我真正需要的所有数组,但我想添加回合。整个脚本适应锦标赛设置(未来更多),我也希望自己调整。所以,让我们说比赛设置是[game,teamsize,entrylimit]。 entrylimit将是找到解决方案的关键,因为它决定了回合。它在树系统中工作(或者它被称为)。让我们说entrylimit是8.这意味着第一轮将由4个匹配组成,第二轮将由2组成。如果entrylimit为16,那么第一轮将包含8个匹配,第二轮将包含4个,以及第三个将由2组成。我想找到一种方法将其粘贴到我写入匹配的循环中,并使用entrylimit和match number来生成整数。我只需要一个公式,可以使用这两个变量来获得我想要的结果。我也为过多的细节道歉。

2 个答案:

答案 0 :(得分:1)

如果我理解了这个问题,here's an example可以了解entrylimit如何获得每轮的轮数和匹配数。

计算:

var entrylimit=16;
var amount_of_rounds = Math.log(entrylimit) / Math.log(2);
for(i=amount_of_rounds; i>0; i--)
{
  s = 'Round '+(amount_of_rounds-i+1)+' of '+amount_of_rounds+' consist of '+Math.pow(2, i-1)+' matches';
  alert(s);
}

答案 1 :(得分:0)

试试这个:

var entryInfo = [];

function populateEntryInfo(entryLimit)
{
    entryInfo = [];
    var i = entryLimit;
    while(i>1)
    {
        i = i/2;
        entryInfo.push(i);
    }
    entryInfo.push(i);
}