Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 下注算法,尤其是赢得赌注的算法?_Python_Algorithm_Math_Python 3.x - Fatal编程技术网

Python 下注算法,尤其是赢得赌注的算法?

Python 下注算法,尤其是赢得赌注的算法?,python,algorithm,math,python-3.x,Python,Algorithm,Math,Python 3.x,我有一个游戏,两个队(红色和蓝色)互相对抗。 观众可以在两支球队中的一支上下注,在下注dict中添加新的下注,最终看起来是这样的(下注后): 一旦游戏结束,我希望根据每个玩家的下注量来划分总赌注。 因此,在上面的场景中,如果蓝队获胜,id为3的玩家只能得到id为7的玩家的五分之一,而id为12和13的玩家则一无所获 我不知道如何计算每个球员应该得到多少钱,我该怎么做? 我想我应该以某种方式得到两队之间的系数,并将玩家的赌注乘以该值?这称为a。您只需按照赢家的下注比例将总下注金额分配给赢家(如果您

我有一个游戏,两个队(红色和蓝色)互相对抗。 观众可以在两支球队中的一支上下注,在
下注
dict中添加新的下注,最终看起来是这样的(下注后):

一旦游戏结束,我希望根据每个玩家的下注量来划分总赌注。 因此,在上面的场景中,如果蓝队获胜,id为3的玩家只能得到id为7的玩家的五分之一,而id为1213的玩家则一无所获

我不知道如何计算每个球员应该得到多少钱,我该怎么做? 我想我应该以某种方式得到两队之间的系数,并将玩家的赌注乘以该值?

这称为a。您只需按照赢家的下注比例将总下注金额分配给赢家(如果您是赛马场,在从顶部减去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

读了你的答案后,我意识到我的答案太天真了。+1.你也只花了一半的钱。提醒我不要去你的赛马场。-)啊,谢谢你的解释,让我更容易理解你的答案:)谢谢!如果有人在蓝色上下注1,而其他人在红色上下注1000,那么蓝色在这个算法上会赚1001英镑——这似乎并不正确right@K2xL如果瑞德赢的几率是1001分之一,那就完全可以打赌了。根据赔率,有人必须在蓝色上下注1001次才能实现收支平衡。如果“实际”赔率更为平均,比如说50/50,那么就有人在红色上下注过多。将每个团队的下注总数相加,然后将每个玩家的下注除以总数,得到他们赢得的赢款百分比。所以,在这种情况下,
TEAM_BLUE
上的总赌注是
1800
,所以玩家
3
的切分是`(300/1800)*(总金额)`@RPGillespie这其实很简单。谢谢你的评论
for p in bets.keys():
    if bets[p][0] == TEAM_BLUE:
        payout = total * bets[p][1] / wtotal