前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python仿真|如何“操纵”足球比赛的输赢

Python仿真|如何“操纵”足球比赛的输赢

作者头像
CDA数据分析师
发布2021-08-05 14:59:36
1.1K0
发布2021-08-05 14:59:36
举报
文章被收录于专栏:CDA数据分析师

作者:Crossin先生

来源:Crossin的编程教室

欧洲杯马上就要决赛了。这届欧洲杯全是乌龙和冷门。于是网上少不了冒出各种“天台”梗。还衍生出球队配合“盘口”踢的说法。所谓盘口,就是指国外一些博彩公司给一场比赛的胜负开出的赔率。更有甚者会神秘地告诉你,通过分析盘口,你就能看出来接下来的一场比赛是什么结果。

好家伙!财富密码尽在掌握啊。

那博彩公司究竟是如何操纵比赛,从而让自己赚得盆满钵满呢?

答案很简单:

我也不知道……

哎,别急!我是说不知道他们有没有操纵比赛以及如何操纵比赛。但如果让我开一家这样的公司,我一样有办法可以把你们的钱都赚进我的口袋

因为做到这一点这压根儿就不需要操纵比赛,只要一要东西,那就是:

概率

假设现在A、B两队要进行一场比赛。阿汪同学说他觉得A队要赢,并愿意为此押上100枚硬币;阿喵同学说他觉得B队要赢,也愿意押100枚硬币。我说那行,我来给你们做个见证,你们把硬币都放我这里,最后谁对了,我就把硬币全给谁。不过,我得从所有硬币里拿走10枚,也就是5%的硬币,作为我的辛苦费。也就是说,赢的人最终可以拿走190枚硬币

现在问题来了:谁最有可能去操纵比赛?

阿汪和阿喵都有动机,唯独不可能是我。因为不管谁赢谁输,我都稳赚10枚硬币。那我究竟是吃饱了撑的没事干,还是跟谁有深仇大恨,宁可瞒天过海偷天换日只为了把一人的钱转移给另一个人?

有人要说了,你举的这个例子不对。赢的人能拿多少钱走是博彩公司定的,所以他们会输小赢大!

No!No!No!

这个因果逻辑反了!

不同赔率的存在不是由博彩公司或者说庄家决定,而是由投注的人决定。

同样是刚才的例子阿汪依旧押100枚硬币支持A队赢;而B队这边,除了阿喵同学押了100枚,阿咩同学也押了100枚。这时候,我依旧从中拿走5%,现在是15枚。如果A队赢了,阿汪可以得到 285 枚硬币,所以押A队的赔率是 (300-10)/100=2.85;而B队赢了,阿喵和阿汪同学各可以拿走 142.5 枚硬币,所以押B队的赔率是 (300-10)/2/100=1.425

作为庄家,我当然可以把赔率定的更低,比如A队为2.5,B队为1.2,这样我可以赚到更多的钱。但三位同学也不傻,他们一算,不对啊,怎么不管谁赢,我都还私藏了一部分硬币,以后就不来找我做公证了。于是我连原本稳赚的那5%也没了。

在现有普遍的博彩规则中,庄家需要在别人下注前预先给出明确赔率。这就要求博彩公司开出的赔率既要保证不管谁赢,自己都是能赚钱的,又要保证赔率尽可能高以便吸引人下注。

为此,就需要做两件事:

  1. 给出一个尽可能准的初始赔率
  2. 根据下注情况动态调整赔率

比如对于本届欧洲杯的决赛,某个网站给出了:

胜2.50 - 平3.10 - 负2.88

这样的即时赔率。

计算一下就可以发现,此时它的预期抽成为:

我用一段程序来模拟一场比赛的投注过程,来看看是不是真的可以仅通过调整赔率就让自己稳赚不赔。为了简化模型,这里只考虑A队胜和B队胜两种情况,没有平局

假设初始预估的胜率各为50%,而投注者们的偏好是80%会押A20%押B

我的动态调整策略就是:根据最近1000个投注者的选择作为依据,按照前面说的方法计算出新的赔率。当然,我依旧会从中抽取5%

当有十万人次投注之后,我得到的结果是这样的:

解释一下:

红色曲线是我收到的投注总额;

蓝色曲线是A队胜利后我需要根据每个投注者当时赔率所需支付的奖金;

绿色曲线则是B队胜利后需支付的奖金;

黄色虚线和青色虚线则分别是AB两队的即时赔率。

可以很明显地看出来,除了一开始因为初始赔率定得过于随意,导致出现短暂的轻微亏损外,之后时间里,我都是稳赚不赔的。

有人又要说了,你这个情况太理想,观众投注分布不会这么稳定的!

OK,没关系,我们继续来模拟。

现在假设每经过一万人次的投注,大家就更看好B队一点,A队的投注偏好就会在现有基础之上降低10%。其他条件和策略不改变。我们将会得到这样的结果:

从投注开始到结束,尽管球迷们对AB两队的看好程度彻底发生了反转,但这依旧不影响我赚钱的稳定性

再进一步,我设定在投注期间,有万分之一的几率出现随机的球迷投注偏好的集体大波动,也就是说庄家完全无法预测比赛的胜负。

即使在这种奇葩的情况下,我的收益还是稳如老狗!

为了更有说服力,同样的规则,重复100次投注人次依次为 10000 到 110000递增,把收益比画出来:

看见没,不过来多少人,收益始终可以维持在5%左右,也就是我预设的抽成比例,而且人越多越接近这个比例。这就是概率学上大数定律的体现,即重复的次数越多真实发生的频率就越趋近于理论上的概率

现在,还有人觉得我需要去操纵某支队获胜吗?有必要吗?

我要的只是有很多很多人都来投注,越多越好。我不关心哪支球队状态更好,天气更适宜,主力球员的感情生活更稳定,甚至初始的赔率也并不重要。唯一关键的就是投注的实时情况。我调整赔率不是为了坑你上天台,反而恰恰是为了让不同方的下注者更加平衡,避免赢小赔大或赢大赔小的情况出现。

所以,决定赔率的不是我,而是在我这里投注的阿汪阿喵阿咩们。我不需要动任何手脚,只要你坚持投注,把自己老婆本赔光是必然的事情。

不信我们再来看一个模拟:

假设所有比赛的赛前预计胜率都是合理的,比如预计A队胜率80%,那实际就是有80%的可能赢球。在此基础上,阿汪带着1个w的硬币来了。每场比赛,他都会押上1000硬币,也就是初始总额的1/10。这样,一直持续下去,结果会怎样?

模拟了100次,这是硬币数量的变化曲线。虽然也有不少时候,1万硬币会赢到两三万甚至更多,但绝大部分情况下,在不到100次的时候,硬币数就归零了。而拉长到1000次,更是几乎不可能幸免。

如果阿汪执迷不悟,继续借钱参与:

可以看到,由于庄家抽成的存在,硬币数量的整体曲线是在不断下降的

而假如阿汪还很激进,动不动就 All-in,那么可以大大提速这个过程:

基本上两三次也就赔光了。运气爆棚的话能狗屎运多撑几次,但最后的结局总是一样的。

这个实验告诉我们:

在一个零和游戏中,作为注定劣势的一方,最好的策略就是一次都不要参与,这样数学期望才是最大的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档