程序员的财务自由之路(三)- 赌徒输光定理

举报
英雄哪里出来 发表于 2021/09/20 20:00:04 2021/09/20
【摘要】 一、前言小时候想过买彩票,每天买一张,也就两块钱,买一辈子,总能中个 1000W1000 W1000W 吧,长大以后才知道,有两道鸿沟是最难逾越的:1)坚持本来就不是一件容易的事情;2)概率是被精心设计过的;那么,今天我们来谈谈 买彩票 和 赌博 是否能够让我们实现财务自由; 二、双色球接下里我们从数学的角度揭露下双色球中头奖是一件多么不容易的事情; 1、规则1)“双色球” 每注投注号码由...

一、前言

  • 小时候想过买彩票,每天买一张,也就两块钱,买一辈子,总能中个 1000 W 1000 W 吧,长大以后才知道,有两道鸿沟是最难逾越的:
  • 1)坚持本来就不是一件容易的事情;
  • 2)概率是被精心设计过的;
  • 那么,今天我们来谈谈 买彩票 和 赌博 是否能够让我们实现财务自由;

二、双色球

  • 接下里我们从数学的角度揭露下双色球中头奖是一件多么不容易的事情;

1、规则

  • 1)“双色球” 每注投注号码由 6个红色球号码1个蓝色球号码 组成。红色球号码从 [ 1 , 33 ] [1,33] 中选择;蓝色球号码从 [ 1 , 16 ] [1,16] 中选择;
  • 2)一周开三期,每注 2元
  • 3)投注方式有 “单式” 和 “复式” 两种,为了简化问题,只讨论 “单式” 投注的情况;

2、单式中奖概率统计

  • 由于三等奖已经只有3000块了,所以三等奖以后的情况已经和财务自由无缘了,所以就不列出来咯;
奖级 红色球号码 蓝色球号码 说明 奖金额度 中奖概率
一等奖 ●●●●●● 选6+1中6+1 最高1000W 1 C 33 6 C 16 1 = 1 17721088 5.64299438 × 1 0 8 \frac {1}{C_{33}^6C_{16}^1} = \frac {1} {17721088} \approx 5.64299438 \times 10^{-8}
二等奖 ●●●●●● 选6+1中6+0 最高300W C 15 1 C 33 6 C 16 1 = 15 17721088 8.46449157 × 1 0 7 \frac {C_{15}^1}{C_{33}^6C_{16}^1}=\frac {15} {17721088} \approx 8.46449157 \times 10^{-7}
三等奖 ●●●●● 选6+1中5+1 固定3000元 C 6 5 C 27 1 C 33 5 C 16 1 = 162 17721088 9.14165090 × 1 0 6 \frac {C_{6}^5C_{27}^1}{C_{33}^5C_{16}^1}=\frac {162} {17721088} \approx 9.14165090 \times 10^{-6}
  • 我们看到,如果能够中个一二等奖,起码有一笔启动资金,可以用来买房,或者做其他理财;
  • 于是,我们把 中一二等奖 的概率相加,得到大概是:

P = 9.0287 × 1 0 7 P = 9.0287 \times 10^{-7}

  • 那么,得出如果连续买 x x 期,一期都没有中的概率是:

( 1 P ) x (1-P)^{x}

  • 至少中一次的概率就变成了:

1 ( 1 P ) x 1 - (1-P)^{x}

3、至少中一次高额奖金的概率

  • 假设我们用剩下 70 70 年的时间来买彩票,总共 70*365 (为了简化问题,不算闰年)天,双色球开奖期数为 70 365 3 7 = 10950 70 * 365 * \frac {3}{7} = 10950 期,如果每期我们都买一注,一辈子花费 21900 元,最后至少中一次高额奖金的概率为:

P h = 1 ( 1 9.0287 × 1 0 7 ) 10950 0.098 = 0.98 % P_{h} = 1 - (1-9.0287 \times 10^{-7})^{10950} \approx0.098 = 0.98\%

  • 连百分之一都不到!好!你不甘心,说:“我每期多买几注,是不是概率就高很多了!”
  • 嗯!满足你的欲望,我们来用程序的角度来计算下:
每期投注数 70年总投注数 70年总耗费(元) 至少中一次高额奖金的概率
1 10950 21900 0.98%
2 21900 43800 1.96%
3 32850 65700 2.92%
4 43800 87600 3.88%
5 54750 109500 4.82%
6 65700 131400 5.76%
7 76650 153300 6.69%
8 87600 175200 7.60%
9 98550 197100 8.51%
10 109500 219000 9.41%
11 120450 240900 10.30%
12 131400 262800 11.19%
13 142350 284700 12.06%
14 153300 306600 12.93%
15 164250 328500 13.78%
16 175200 350400 14.63%
17 186150 372300 15.47%
18 197100 394200 16.30%
19 208050 416100 17.13%
20 219000 438000 17.94%
21 229950 459900 18.75%
22 240900 481800 19.55%
23 251850 503700 20.34%
24 262800 525600 21.12%
25 273750 547500 21.90%
26 284700 569400 22.67%
27 295650 591300 23.43%
28 306600 613200 24.18%
29 317550 635100 24.93%
30 328500 657000 25.67%
31 339450 678900 26.40%
32 350400 700800 27.12%
33 361350 722700 27.84%
34 372300 744600 28.55%
35 383250 766500 29.25%
36 394200 788400 29.95%
37 405150 810300 30.64%
38 416100 832200 31.32%
39 427050 854100 31.99%
40 438000 876000 32.66%
41 448950 897900 33.33%
42 459900 919800 33.98%
43 470850 941700 34.63%
44 481800 963600 35.27%
45 492750 985500 35.91%
46 503700 1007400 36.54%
47 514650 1029300 37.17%
48 525600 1051200 37.78%
49 536550 1073100 38.40%
50 547500 1095000 39.00%
51 558450 1116900 39.60%
52 569400 1138800 40.20%
53 580350 1160700 40.78%
54 591300 1182600 41.37%
55 602250 1204500 41.94%
56 613200 1226400 42.51%
57 624150 1248300 43.08%
58 635100 1270200 43.64%
59 646050 1292100 44.19%
60 657000 1314000 44.74%
61 667950 1335900 45.29%
62 678900 1357800 45.83%
63 689850 1379700 46.36%
64 700800 1401600 46.89%
65 711750 1423500 47.41%
66 722700 1445400 47.93%
67 733650 1467300 48.44%
68 744600 1489200 48.95%
69 755550 1511100 49.45%
70 766500 1533000 49.95%
71 777450 1554900 50.44%
72 788400 1576800 50.93%
73 799350 1598700 51.41%
74 810300 1620600 51.89%
75 821250 1642500 52.36%
76 832200 1664400 52.83%
77 843150 1686300 53.29%
78 854100 1708200 53.75%
79 865050 1730100 54.21%
80 876000 1752000 54.66%
81 886950 1773900 55.10%
82 897900 1795800 55.55%
83 908850 1817700 55.98%
84 919800 1839600 56.42%
85 930750 1861500 56.84%
86 941700 1883400 57.27%
87 952650 1905300 57.69%
88 963600 1927200 58.11%
89 974550 1949100 58.52%
90 985500 1971000 58.93%
91 996450 1992900 59.33%
92 1007400 2014800 59.73%
93 1018350 2036700 60.13%
94 1029300 2058600 60.52%
95 1040250 2080500 60.91%
96 1051200 2102400 61.29%
97 1062150 2124300 61.67%
98 1073100 2146200 62.05%
99 1084050 2168100 62.42%
100 1095000 2190000 62.79%
  • 代码如下,如果需要可以直接复制过去;
#include <iostream>

using namespace std;

const int SINGLE = 1107568; // C(33,6)
const int TOT = 10950;

// 二分幂加速
double Exp(double v, int ex) {
	if (ex == 0) {
		return 1;
	}
	double ret = Exp(v*v, ex / 2);
	if (ex & 1) {
		ret *= v;
	}
	return ret;
}

// 买 x 注至少中一次高额奖金的概率
double P(int x) {
	double p = 1.0 / SINGLE;
	return 1 - Exp(1-p, x);
}

int main() {
	for (int i = 1; i <= 100; ++i) {
		printf("%d|%d|%d|%.2lf%%\n", i,TOT*i, TOT*i*2, 100*P(TOT*i));
	}
	return 0;
}
  • 用整个程序不停得往上增加指数去跑,你会发现,只要每期投 1000 1000 注(一周花费6000块的意思),这一生就能百分百中一次高额奖金哦,然后你会发现,实际你花费已经远远超过 1000 W 了…

4、结论

  • 买彩票只能作为娱乐,不能作为实现财务自由的正当手段;

三、赌徒输光定理

  • 谈完彩票,我们再来谈谈赌博;
  • 赌钱能够让我们财务自由吗?

1、举例

假设赌徒的初始资金为 n n ,每赌一次或输或赢,资金分别变为 n + 1 n+1 n 1 n-1 。输赢概率对等,求一直赌下去资金变为 0 0 的概率是多少?

  • 假设从 n n 开始一直赌下去,资金变为 0 0 的概率是 T ( n ) T(n) ,那么很显然,有如下公式:

T ( n ) = { 1 n = 0 p n = 1 0.5 T ( n + 1 ) + 0.5 T ( n 1 ) n > 1 T(n) = \begin{cases} 1 & n = 0 \\ p & n=1 \\ 0.5 * T(n+1) + 0.5 * T(n-1) & n>1 \end{cases}

2、解释

  • 1) T ( 0 ) T(0) 表示资金是从 0 0 变成 0 0 的概率,是个必然事件,所以概率为 1;
  • 2) T ( 1 ) T(1) 表示资金从 1 1 变成 0 0 的概率,因为有可能能赢,所以依赖 T ( 2 ) T(2) ,但是 T ( 2 ) T(2) 也依赖 T ( 1 ) T(1) ,所以这里定义 T ( 1 ) T(1) 为某个常量 p p
  • 3)当资金为 n + 1 n+1 的时候,如果输了,概率为 0.5 0.5 ,资金就变成 n n
  • 4)当资金为 n 1 n-1 的时候,如果赢了,概率为 0.5 0.5 , 资金就变成 n n

3、状态转移图

  • 根据上文提到的状态转移,有如下状态转移图:
0.5
0.5
0.5
0.5
n+1
n
n-1

4、递推公式

  • 再回头来看 :

T ( n ) = 0.5 T ( n + 1 ) + 0.5 T ( n 1 ) T(n) = 0.5*T(n+1) + 0.5*T(n-1)

  • 通过移项,将它转换成递推公式如下:

T ( n + 1 ) = 2 T ( n ) T ( n 1 )                  ( n > = 1 ) T(n+1) = 2T(n) - T(n-1) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (n>=1)

  • n n 进行标准化,得到:

T ( n ) = 2 T ( n 1 ) T ( n 2 )                  ( n > = 2 ) T(n) = 2T(n-1) - T(n-2) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (n>=2)

5、通项公式

  • 通过移项后得到:

T ( n ) T ( n 1 ) T ( n 1 ) T ( n 2 ) = 1 \frac {T(n) - T(n-1)}{ T(n-1) - T(n-2)} = 1

  • 通过累乘得到:

T ( n ) T ( n 1 ) T ( n 1 ) T ( n 2 ) T ( n 1 ) T ( n 2 ) T ( n 2 ) T ( n 3 ) . . . T ( 2 ) T ( 1 ) T ( 1 ) T ( 0 ) = 1 1...1 n 1 \frac{T(n) - T(n-1)} {T(n-1) - T(n-2)} * \frac{T(n-1) - T(n-2)} {T(n-2) - T(n-3)} *...* \frac{T(2) - T(1)} {T(1) - T(0)}= \underbrace{1*1...1}_{\rm n-1}

  • 从而得到:

T ( n ) T ( n 1 ) = p 1 T(n) - T(n-1) = p-1

  • 说明 T ( n ) T(n) 是一个等差数列,并且 T ( n ) T(n) 的通项公式如下:

T ( n ) = n p ( n 1 ) T(n) = np - (n-1)

6、久赌必输

【推导1】

  • 因为 T ( n ) T(n) 是概率,所以可以得出 T ( n ) > = 0 T (n) >= 0 恒成立,代入通项公式得到:

p > = 1 1 n p >= 1 - \frac {1}{n}

  • 要对所有的 n n 成立,那么 p p 只能等于 1 1

【推导2】

  • 另外一种方法是:因为 p p 是概率,所以一定小于等于 1 1 ,于是得到:

T ( n ) T ( n 1 ) = p 1 < = 0 T(n) - T(n-1) = p-1 <= 0

即: T ( n ) < = T ( n 1 ) T(n) <= T(n-1) ,如果 T ( n ) < T ( n 1 ) T(n) < T(n-1) 则说明钱越多输的光的概率越大,这个貌似不太科学,所以只有 T ( n ) T(n) T ( n 1 ) T(n-1) 一开始就是相等的情况,所以

T ( n ) T ( n 1 ) = 0 T(n) - T(n-1) = 0

,从而得出 p = 1 p = 1 ;

  • 所以,无论你有多少钱,只要你一直在赌,那么最后输光的概率就是 100%;

四、结语

  • 作为程序员,我们还是要认清自己,如果真的想要在 40 岁后能够有足够陪伴家人的时间,光靠替别人打工肯定是不行的,需要有睡后收入,保证足够工作时间的前提下,同时要想办法提升自己的技术能力,成为核心竞争力,不只是公司的,而是业界的乃至整个互联网的核心竞争力;

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。