彩票怎样才能中奖?通过一定的数学算法是否可行

news/2025/2/12 21:04:11/

理论上,只能靠运气。但是,如果规则设计得不好,就可以钻漏洞。

2005年2月,美国的一个彩票品种,就出现了漏洞,被麻省理工学院的学生发现了。随后的七年,这个学生反复购买这个品种,一共赚到了300万美元。

本文介绍他怎么做的,以及其中的数学原理。我依据的材料,主要来自数学教授 Jordan Ellenberg 在斯坦福大学的一次演讲(Youtube)。

一、期望值

彩票最重要的数学概念,叫做"期望值"(expected value),即同一种行为多次重复以后,所能得到的平均收益。

举例来说,如果每次抽奖需要2元,假设200次抽奖可以中奖一次,奖金为300元。那么,你花了2000元,一共抽奖1000次,中奖了5次,奖金为1500元。

也就是说,1000次抽奖的总收益是1500元,每次的平均收益是1.5元,这就是期望值。它的计算公式如下。

期望值 = 300 * (1 / 200) + 0 * (199 / 200) = 1.5

期望值是1.5元,但是每次抽奖成本2元,于是净亏损0.5元。

一看就知道,这个事情是不划算的,做得越多,越不划算。偶尔买一次彩票,倒也算了;如果你一天到晚不断买彩票,就肯定会亏很多钱(上例是每200次亏100元)。

总之,期望值是衡量彩票收益的一个关键指标。

二、马萨诸塞州的 WinFall 彩票

美国马萨诸塞州有一个彩票品种,叫做 WinFall。它的规则很简单:1到48里面,你猜6个数字,猜中就有奖。

  • 四等奖(6个猜中2个):奖金2元
  • 三等奖(6个猜中3个):奖金5元
  • 二等奖(6个猜中4个):奖金150元
  • 一等奖(6个猜中5个):奖金4000元
  • 特等奖(6个猜中6个):奖金池剩余的全部奖金

有一期,一共卖出了930万张彩票,其中特等奖一个,奖金100万美元,一等奖238个,二等奖11625个,三等奖19.8万个,四等奖136.8万个。

计算可知,这种彩票的期望值是0.798元。

期望值 =
  100万 * ( 1 / 930万) +
  4000 * ( 238 / 930万) +
  150 * (11625 / 930万) +
  5 * (19.8万 / 930万) +
  2 * (136.8万 / 930万 )
  = 0.798

每张彩票的价格是2元,可是平均收益只有0.798元,连一半都不到,可见这种彩票是非常不划算的。因此没有吸引力,购买这种彩票的民众不断减少。

州政府很着急,因为政府从彩票抽成20%(每张0.4元)。如果销售量减少,政府的收益也会减少。于是,政府为了增加这种彩票的吸引力,决定修改彩票规则。

三、新规则

新的规则是,如果当期没有特等奖(没人猜中6个数字),那么奖金会分配给一等奖、二等奖、三等奖的得主,各奖项新的中奖金额如下。

  • 一等奖(6中5):50000元
  • 二等奖(6中4):2385元
  • 三等奖(6中3):60元

还是使用前面的中奖率,计算期望值。

期望值 =
  50000 * ( 238 / 930万) +
  2385 * (11625 / 930万) +
  60 * (19.8万 / 930万) +
  = 5.53

每张彩票的价格还是2元,但是期望值变成了5.53元。购买这种彩票就变得非常划算,大量购买的话, 可以得到2.5倍的收益。之所以期望值大于彩票的成本,是因为奖金池还包含前期剩余的奖金。

麻省理工学院的一个学生,发现了这一点。他凑了5000元购买彩票,结果中了将近15000元!

四、如何选择号码?

现在我们知道,新规则的彩票是有利可图的,可以大量购买。但是,还有一个问题,应该怎么选择号码,才能保证收益?也就是说,48个号码里面,你应该选择哪6个号码,才能收益最大化?

毕竟你不能购买所有彩票,因为彩票的收益来自没中奖的那些人。你只能购买一部分彩票,设法使得自己购买的号码有最大的中奖可能。

为了简化思考,让我们考虑一种简单的情况。1到7里面猜三个数字,奖金如下。

  • 猜中3个:奖金6元
  • 猜中2个:奖金2元
  • 猜中1个:无奖金

你可以同时选择七种组合(即购买七张彩票),请问应该如何选择号码?

五、组合数公式

首先,让我们考虑一下,1到7这七个数字里面,三个数字的组合一共有多少种?这在数学里面,叫做组合数公式。

组合数公式是指从 m 个不同元素中,取出 n(n ≤ m)个元素的所有组合的个数,用符号 c(m, n) 表示。

它的计算公式如下。

c(m, n) = m! / n! * (m - n)!

上面公式中,感叹号表示阶乘,比如4! 等于4 * 3 * 2 * 1 。

按照上面的定义,七个数字里面的三个号码的组合,共有c(7, 3)个。

c(7, 3) = 7! / 3! * (7 - 3)! = 35

这就是说,三个数字的组合共有 35 种。我们可以把它们全部列出来。

123 124 125 126 127
134 135 136 137
145 146 147
156 157
167
234 235 236 237
245 246 247
256 257
267
345 346 347
356 357
367
456 457
467
567

上面是所有35种可能的组合,你必须从中选出7种。请问应该选择哪七种?

六、最佳组合

答案是下面这七种组合。

123 145 167 247 256 346 357

这七张彩票能让你的收益最大化。因为,不管最后的中奖号码是什么,它们可以保证你总是获得6元奖金。如果中奖号码是123,那么你拿到头奖6元;如果中奖号码是367,那么167、346、357这三张彩票各自猜中两个号码,你中了三个小奖,奖金总额也是6元。

仔细观察这七张彩票,你会发现它们是精心选择的:每个数字都正好出现三次。这导致你要么中一个大奖,要么中三个小奖。

七、几何选择法

这七张彩票是怎么选出的呢?

有一种几何方法,可以非常简单地做到这一点。七个号码就是七个点,把它们用直线连起来,每根线上只能有三个点,而每个点出现在三根线上。画成上面的形状,就得到了七根线(内部的圆也算一根线)。然后,记录一下每根线上的号码,很简单就选出了七张彩票。

更严谨的证明是这样的:1到7这七个数字,共有21种两个数字的组合(C(7, 2)),这意味着只要把这21种组合都买全了,就可以保证中三个小奖。因为三个中奖号码里面,共有三种两个数字的组合(比如中奖号码是367,那么36、37、67都可以中小奖)。另一方面,由于每张彩票包含三个号码,即包含三种两个数字的组合,那么最少只要买7张彩票就能覆盖全部21种组合。

八、实际的策略

回到前面的问题,马萨诸塞州的彩票应该怎么买?

6个号码只要猜中4个,就可以中二等奖,只要把所有四个号码的组合都买了,就可以确保中15个二等奖(6个中奖号码共有15个四个号码的组合C(6, 4))。

48个号码里面共有194580种四个号码的组合(C(48, 4)),既然一张彩票包含15种组合,那么最少购买12972张彩票就够了(194580 / 15 = 12972),就可以包含所有四个号码的组合。如果有兴趣的话,你可以写一个程序,算出包含这194580种组合的所有彩票。

购买12972张彩票,需要25944元(12972 * 2)。根据前面的奖金额,二等奖的奖金是2385元,那么15个二等奖就是35775元(2385 * 15)。因此,投入25944元,可以无风险地获得35775元。当然,这样做的前提是,当期没人猜中特等奖,否则奖金就会被大大稀释。

关注公众号IT-LearnHall,免费领

进QQ群(779809018)免费领取学习资源,疑难问题解答。同时欢迎大家关注我的微信公众号:代码帮 ,免费领取学习资源。

本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件破解。 只要你一直关注和呆在群里,每天必须有收获,讨论和答疑QQ群:大数据和人工智能总群(779809018)微信公众号(代码帮)每天分享最新IT、大数据和人工智能新技术。


http://www.ppmy.cn/news/183386.html

相关文章

彩票中奖概率计算过程

周六周末无聊,想着买彩票,万一中奖了就不用上班啦,哈哈。所以就计算了一下中奖概率。 中奖规则: 一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖&#…

彩票中奖概率计算

彩票中奖概率计算 0.基本排列组合算法1.双色球彩票研究1.1 玩法1.2 中奖概率1.3 中奖期望1.3.1 奖金<1亿1.3.2 奖金>1亿 2.3D彩票研究2.1 玩法2.2单注期望 3.7乐彩票研究3.1 玩法3.2.单注概率3.3单注期望 4.七星彩4.1玩法4.2单注概率4.3单注期望 5.大乐透5.1玩法5.2中奖概…

你还在期待彩票中奖么?

01-你还在等着中彩票么&#xff1f; 可能大多数人都有着这样的期待&#xff0c;有朝一日&#xff0c;彩票中个五百万。为此梦想&#xff0c;甚至还养成了定投彩票的习惯。然而&#xff0c;除了偶尔在电视上看到某某彩民中大奖的新闻外&#xff0c;连身边认识的人都鲜有中奖的消…

java base64转字图片、图片转base64字符串

实现代码如下&#xff1a; Slf4j public class Base64ToFileImageTools {/*** base64字符串转化成图片** param imgData 图片编码* param imgFilePath 存放到本地路径* return* throws IOException*/SuppressWarnings("finally")public static boolean convertB…

WiFi模块调试问题:AT+CIPSTART=TCP,192.168.43.212,8080 ERROR CLOSED

问题出现 1.手机打开热点&#xff0c;给电脑和WiFi模块连接 热点名称&#xff1a;123 密码&#xff1a;123456789 电脑的 IPV4 地址&#xff1a;192.168.43.212 电脑通信端口号&#xff1a;80802.WiFi 模块成功连接上手机热点&#xff0c;但是一直不能识别到指定的IP地址进行…

解决Visual Studio 2019未能从“https://www.nuget.org/api/v2/package..“下载包问题

解决Visual Studio 2019未能从“https://www.nuget.org/api/v2/package.."下载包问题 问题背景问题解决验证 问题背景 今天从码云官网上下载了一个开源的.net项目&#xff0c;IDE使用的是VS2019&#xff0c;编译之前需要通过NuGet下载依赖的包&#xff0c;但是在下载依赖…

CentOS6.5 x86_64 配置Broadcom 43XX系列 无线网卡驱动

零.确定无线网卡型号&#xff08;如果已经确定就可以跳过此步&#xff09; [rootCentOS-sAno1y ~]# /sbin/lspci | grep Broadcom 02:00.0 Network controller: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter (rev 01) 此处可以看到我的型号是 BCM4313 如…

Python图片转base64

文章目录 问题描述图片转base64base64转图片图片转base64字符串base64字符串转图片二进制图片转base64字符串封装参考文献 问题描述 Python 图片转 base64 base64 是一种用于传输 8Bit 字节码的编码方式&#xff0c;基于 64 个可打印字符来表示二进制数据 1.jpg 图片转base…