首页 文章 精选 留言 我的

精选列表

搜索[python],共10000篇文章
优秀的个人博客,低调大师

用Python从数学角度“操纵”一场足球比赛

大家好,欢迎来到 Crossin 的编程教室。 世界杯正在如火如荼地进行中。每逢大赛,冷门在所难免,这时候网上总会有人很懂地告诉你:**现在的足球比赛都是被操纵的,水很深**。更有甚者会神秘地告诉你,通过分析数据,你就能看出来接下来的一场比赛是什么结果。 好家伙!财富密码尽在掌握啊。 **有没有神秘力量操纵比赛我不知道。但其实从数学角度来说,根本不需要这么麻烦,只要一样东西就可以,那就是:概率**。 ![](https://developer.qcloudimg.com/http-save/yehe-1654613/a3f3fc68beabb9be0e551d251f255994.jpg) 假设现在A、B两队要进行一场比赛。阿汪同学说他觉得A队要赢,并愿意为此押上100个小鱼干;阿喵同学说他觉得B队要赢,也愿意押100个小鱼干。 我说那行,我来给你们做个见证,你们把小鱼干都放我这里,**最后谁对了,我就把小鱼干全给谁**。不过,我得**从所有小鱼干里拿走10个,也就是5%的小鱼干**,作为我的辛苦费。也就是说,赢的人最终可以拿走**190个小鱼干**。 ![](https://developer.qcloudimg.com/http-save/yehe-1654613/ebd61c3b631dabc3db55badc5333bb74.png) 现在问题来了:**谁最有可能去操纵比赛?** **阿汪和阿喵都有动机,唯独不可能是我**。因为不管谁赢谁输,我都稳赚10个小鱼干。那我究竟是吃饱了撑的没事干,还是跟谁有深仇大恨,宁可瞒天过海偷天换日只为了把一人的小鱼干转移给另一个人? 有人要说了,你举的这个例子不对。一般来说,两种情况赢的人能拿多少小鱼干走是不一样的,所以你会输小赢大! **No!No!No!** ![](https://developer.qcloudimg.com/http-save/yehe-1654613/71dc19f5768e1d5c28013b4e8d59bd63.jpg) 这个因果逻辑反了! **不同结果的存在不是由我决定,而是由参与的阿汪和阿喵决定。** 同样是刚才的例子阿汪依旧押100个小鱼干支持A队赢;而B队这边,除了阿喵同学押了100个小鱼干,阿咩同学也押了100个小鱼干。这时候,我依旧从中拿走5%,现在是15枚。如果A队赢了,阿汪可以得到 **285 个小鱼干**,所以押A队的结果是 **(300-15)/100=2.85**;而B队赢了,阿喵和阿汪同学各可以拿走** 142.5 个小鱼干**,所以押B队的结果是 **(300-15)/2/100=1.425**。 ![](https://developer.qcloudimg.com/http-save/yehe-1654613/dc1f3e8c1ca61f495000fd6a74d5e286.png) 我当然可以把结果数值定的更低,比如A队为2.5,B队为1.2,这样我可以赚到更多的小鱼干。但三位同学也不傻,他们一算,不对啊,怎么不管谁赢,我都还私藏了一部分小鱼干,以后就不来找我做公证了。于是我连原本稳赚的那5%也没了。 所以,我给出的数值,就是既要保证不管谁赢,我自己都是能赚钱的,又要保证数值尽可能高以便吸引更多的阿汪阿喵。 为此,就需要做两件事: 1. 给出一个尽可能准的初始数值 1. 根据下注情况动态调整数值 假设一场比赛,我给出了: **胜2.50 - 平3.10 - 负2.88 ** 这样的即时数值。 计算一下就可以发现,此时我的预期抽成为: ![](https://developer.qcloudimg.com/http-save/yehe-1654613/a2ccb2902f67281ab3f1e7a3d3f31b73.png) 我用一段程序来模拟一场比赛的竞猜过程,来看看是不是真的可以仅通过调整数值就让自己稳赚不赔。为了简化模型,这里**只考虑A队胜和B队胜两种情况,没有平局**。 假设**初始预估的胜率各为50%**,而参与者们的偏好是**80%会猜A赢**,**20%会猜B赢**。 我的动态调整策略就是:**根据最近1000个参与者的选择作为依据**,按照前面说的方法计算出新的数值。当然,我依旧会**从中抽取5%**。 当有**十万人次参与竞猜**之后,我得到的结果是这样的: ![](https://developer.qcloudimg.com/http-save/yehe-1654613/8ebfbff0c733dac02551ebfbc6df3cbc.png) 解释一下: 红色曲线是我收到的小鱼干总额; 蓝色曲线是A队胜利后我需要根据每个参与者当时数值所需支付的小鱼干; 绿色曲线则是B队胜利后需支付的小鱼干; 黄色虚线和青色虚线则分别是AB两队的即时数值。 可以很明显地看出来,除了一开始因为初始数值定得过于随意,导致出现短暂的轻微亏损外,之后时间里,我都是**稳赚不赔**的。 有人又要说了,你这个情况太理想,观众的选择分布不会这么稳定的! OK,没关系,我们继续来模拟。 现在假设**每经过一万人次的参与,大家就更看好B队一点,A队的选择偏好就会在现有基础之上降低10%**。其他条件和策略不改变。我们将会得到这样的结果: ![](https://developer.qcloudimg.com/http-save/yehe-1654613/978bad35453371b45a4f13a79c963dd2.png) 从开始到结束,尽管球迷们对AB两队的看好程度彻底发生了反转,但这**依旧不影响我赚钱的稳定性**。 再进一步,我设定在比赛期间,**有万分之一的几率出现随机的球迷选择的集体大波动**,也就是说出现了完全无法预测的冷门情况。 ![](https://developer.qcloudimg.com/http-save/yehe-1654613/e5494f6e7ff5082f6d7e14c70d315674.png) 即使在这种奇葩的情况下,**我的小鱼干还是稳如老狗!** 为了更有说服力,同样的规则,**重复100次**,**参与人次依次为 10000 到 110000递增**,把收益比画出来: ![](https://developer.qcloudimg.com/http-save/yehe-1654613/84f5e6916b6a200adde3b3a606e1b1bd.png) 看见没,不过来多少人,**收益始终可以维持在5%左右**,也就是我预设的抽成比例,而且人越多越接近这个比例。这就是概率学上**大数定律**的体现,即**重复的次数越多真实发生的频率就越趋近于理论上的概率**。 现在,还有人觉得我需要去操纵某支队获胜吗?有必要吗? ![](https://developer.qcloudimg.com/http-save/yehe-1654613/b5a63fb9b54017ab95aa7fb2e382ee7a.jpg) **我要的只是有很多很多人都来竞猜,越多越好**。我不关心哪支球队状态更好,天气更适宜,主力球员的感情生活更稳定,甚至初始的数值也并不是很重要。**唯一关键的就是实时情况**。我调整数值不是为了坑人上天台,反而恰恰是为了让不同方更加平衡,避免赢小赔大或赢大赔小的情况出现。 所以,决定数值的不是我,而是在我来这里的阿汪阿喵阿咩们。我不需要动任何手脚,只要你坚持来,把自己的小鱼干赔光是必然的事情。 不信我们再来看一个模拟: **假设所有比赛的赛前预计胜率都是合理的**,比如预计A队胜率80%,那实际就是有80%的可能赢球。在此基础上,阿汪带着**1个w的小鱼干**来了。每场比赛,他都会押上**1000个小鱼干**,也就是初始总额的1/10。这样,一直持续下去,结果会怎样? ![](https://developer.qcloudimg.com/http-save/yehe-1654613/0f85950877cfc7b58d0aa4b953a94e12.png) 我**模拟了100次**,这是**小鱼干数量的变化曲线**。虽然也有不少时候,1万小鱼干会变成两三万甚至更多,但绝大部分情况下,**在不到100次的时候,小鱼干就归零了**。而拉长到1000次,更是几乎不可能幸免。 如果阿汪执迷不悟,继续借来小鱼干参与: ![](https://developer.qcloudimg.com/http-save/yehe-1654613/cf34218cc25273f46241c316b928e479.png) 可以看到,由于抽成的存在,**小鱼干数量的整体曲线是在不断下降的**。 而假如阿汪还很激进,动不动就 All-in,那么可以大大提速这个过程: ![](https://developer.qcloudimg.com/http-save/yehe-1654613/227c0bd0daf548b54b4153870ae73acb.png) **基本上两三次也就赔光了**。运气爆棚的话能狗屎运多撑几次,但最后的结局总是一样的。 这个实验告诉我们: **在一个零和游戏中,作为注定劣势的一方,最好的策略就是一次都不要参与,这样数学期望才是最大的。** 所以请切记: 大赌伤身,久赌必输,赌到最后,一无所有! ---

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册