奖品分配算法

时间:2015-08-01 10:20:10

标签: algorithm optimization time-complexity

我已经为我的锦标赛编写了奖金分配算法。我只是想知道是否有人可以看到我没有想到的任何错误或边缘情况,甚至可以写出更好,更有效的东西。 因此,假设在锦标赛结束时,玩家获得最终分数,并根据他们的分数对其进行排序和排名,例如:

Rank   Score    %total prize
1        50      40%
2        50      25%
3        40      15%
4        20      10%
5        20      5%
6        16      3%
7        10      2%

我想要的是,在排名A和排名B的平局的情况下,将这些排名的奖金加总并除以2 OR,如果排名A,排名B和C之间的关系是这些的总和排名奖励除以3,等等。如果排名之间没有关系,他们就会得到预定的奖金。所以这是我到目前为止写的伪代码:

rank=0
while(rank < Max # prizes)
{
  prize= %prizeForRank(rank)
  offset=1
  while(scoreList[rank+offset]!=null && scoreList[rank]==scoreList[rank+offset])
  {
     prize += %prizeForRank(rank+offset)
     offset++
  }
  prize= prize / offset
  for(int k=0; k<offset;k++)
  {
    prizeOfPlayer[k+rank] = prize
  }
  rank+=offset
}

0 个答案:

没有答案