投注算法,特别是赢得赌注的算法?
Algorithm for betting and particularly winning the bet?
我有一个游戏,两队(红队和蓝队)互相对抗。
观众可以对两支球队之一下注,向 bets
字典添加新赌注,最终看起来像这样(下注后):
# Example of what 'bets' dict might look like mid-game
bets = {
# player_id: (team, amount),
12: (TEAM_RED, 500),
13: (TEAM_RED, 1200),
3: (TEAM_BLUE, 300),
7: (TEAM_BLUE, 1500)
}
游戏结束后,我希望根据每个玩家下注的多少来分配每个玩家的总底池。
所以在上面的场景中,如果蓝队获胜,id 为 3 的玩家只能得到 id 为 7 的玩家的五分之一,玩家 12 和 13 什么也得不到。
我不确定如何计算每个玩家应该得到多少钱,我是怎么做到的?
我想我应该以某种方式计算出两支球队之间的因数,然后将球员的赌注乘以该金额?
这叫做pari-mutuel payout。您只需按照获胜者的赌注比例将总赌注分配给获胜者(如果您是赛马场,则在从顶部抽取 10% vig 之后:-(
所以先求总投注金额:
total = sum(x[1] for x in bets.values());
则正确投注总数:
wtotal = sum(x[1] for x in bets.values() if x[0] == TEAM_BLUE);
然后通过投注者:
for p in bets.keys():
if bets[p][0] == TEAM_BLUE:
payout = total * bets[p][1] / wtotal
我有一个游戏,两队(红队和蓝队)互相对抗。
观众可以对两支球队之一下注,向 bets
字典添加新赌注,最终看起来像这样(下注后):
# Example of what 'bets' dict might look like mid-game
bets = {
# player_id: (team, amount),
12: (TEAM_RED, 500),
13: (TEAM_RED, 1200),
3: (TEAM_BLUE, 300),
7: (TEAM_BLUE, 1500)
}
游戏结束后,我希望根据每个玩家下注的多少来分配每个玩家的总底池。 所以在上面的场景中,如果蓝队获胜,id 为 3 的玩家只能得到 id 为 7 的玩家的五分之一,玩家 12 和 13 什么也得不到。
我不确定如何计算每个玩家应该得到多少钱,我是怎么做到的? 我想我应该以某种方式计算出两支球队之间的因数,然后将球员的赌注乘以该金额?
这叫做pari-mutuel payout。您只需按照获胜者的赌注比例将总赌注分配给获胜者(如果您是赛马场,则在从顶部抽取 10% vig 之后:-(
所以先求总投注金额:
total = sum(x[1] for x in bets.values());
则正确投注总数:
wtotal = sum(x[1] for x in bets.values() if x[0] == TEAM_BLUE);
然后通过投注者:
for p in bets.keys():
if bets[p][0] == TEAM_BLUE:
payout = total * bets[p][1] / wtotal