在获奖者之间分配头奖的算法

时间:2019-08-13 12:04:31

标签: algorithm

我正在建立一个投注池系统,我必须根据获得的击中次数(某些体育游戏的准确预测)在所有参与者之间分配头奖,更多的击中意味着更大的奖金。

例如,如果我们要为该投注池分配1000个硬币头奖,可以使用以下分配:

example

在这种情况下,是否有任何算法可以计算出给每个获奖者的奖金?

3 个答案:

答案 0 :(得分:4)

一种方法是不知道您想如何分配奖品,而是计算所有用户的总命中数,然后将头奖除以该数字,以找到授予每个命中的奖品。

然后,您可以为每个用户提供奖赏,该奖赏是该数字乘以点击数。

答案 1 :(得分:1)

您可以简单地定义点击次数所占的份额

Hits, winWeight, numberOfWinners
5,    24,        n(5)
4,    12,        n(4)
3,     4,        n(3)
2,     2,        n(2)
1,     1,        n(1)

将您将这些值乘以获胜者数量即可得到:

total=24*n(5)+12*n(4)+4*n(3)+2*n(2)+1*n(1)

现在您要计算多少个硬币:

jackpot/total * 24  = pricePerWinner for 5 hits
jackpot/total * 12  = pricePerWinner for 4 hits
jackpot/total *  4  = pricePerWinner for 3 hits
jackpot/total *  2  = pricePerWinner for 2 hits
jackpot/total *  1  = pricePerWinner for 1 hit

答案 2 :(得分:0)

计算总点击量。

5*6 = 30
4*40 = 160
3*80 = 240
2*20 = 40
1*15 = 15
0*2 = 0

如果将它们全部加在一起,则总计为

30+160+240+40+15+0=485

因为累积奖金有1000个硬币。

1000/485 ~= 2

这意味着每次匹配都会授予2个硬币。

例如。 5次点击将意味着每个获胜者10个硬币