前几天看了个购买彩票倍投模型,想了一下,这个到底能不能赚到钱,这个几率有多大。那我们就以一个故事开头吧。之所以放在R语言学习中,是因为,这个计算的过程中,简单的使用了for循环,算是简单的实战化吧。
1. 一个故事(指数的威力)
1.1 故事是这样的
国王赏赐麦子的例子
一个国王按照给大臣的约定,要赏赐大臣,大臣可以提任何赏赐国王都会尽力满足。大臣索要的恩赐很简单,他只要放满棋盘的米粒。具体要求是这样的:
在一个国际象棋棋盘上(8*8 的正方形棋盘,共64个格子),第一个格子中放1粒米,第二个格子中放2粒米,第三个格子中放4粒米,第四个格子中放8粒米,第五个格子中放16粒米,依此类推,每一个格子中放的米粒数是前一个格子中的2倍,直到把全部的格子放满。
国王一听,就这点米,这不是塞牙缝吗。准了!
1.2 分析一下这个故事呗
只能说这个故事中国王小看了指数的威力。怎么说呢,明显这个是一个等比数列求和,并且公比为2,那么来复习一下等比数列公差不为1的求和方法。
转换一下公式
是等比数列前
项的和,公比为
,
,
分别为第一项和第
项的数值。那么我们用等比数列求和看看这个大臣到底要多少的奖赏。这里我们用R 来计算这个数目。
n1 <- 2
n <- 63
total <- n1*((1-q^n)/(1-q))
total
[1] 2e+25
来感受一下结果的震撼,总共有2×10^25 次方。这是什么概念呢,以大米为例,普通北方大米600粒左右为五十克,这种米为子粒饱满的优质米。那么,一粒米就是十二分之一克,约等于0.08g,那么这些米的质量有多少呢,约为10^24 克,即就是10^21 吨,那就是1000亿亿吨。中国一年的粮食产量是多少呢,61625万吨,是10^13倍,那么也就是说,一个国家的产量都放不下这个棋盘的粮食。数据来源于
- 中华人民共和国国家统计局
http://www.stats.gov.cn - 国家数据 - 年度数据 - 主要农作物产品产量
http://data.stats.gov.cn/easyquery.htm?cn=C01&zb=A0D0G&sj=2016
1.3 故事的结局
至于大臣命运如何,我们能够震撼的感受到指数的威力,这也可以称为数学上的蝴蝶效应。
2. 彩票的倍投
2.1 你真的了解倍投吗
- 倍投就是2倍次投注吗
- 倍投初始值按照5元,10元算是小数吗
- 你有足够的钱进行倍投吗
2.2 倍投倍数就是按照2倍进行投注的吗
- 同样我们利用R来建模,看看是不是2倍
> first_input <- 1 #初始金额
> a1 <- first_input
> q <- 2 # 倍投倍率
> n <- 10 #投注次数
> rate <- 1.98 #赔率
>
> for(i in 1:n){
+ options(scipen = 3)
+ input <- a1*((1-q^i)/(1-q))
+ output <- first_input*(q^(i-1))*rate
+ profit <- output - input
+
+ print(c(paste('times=',i),
+ paste('input=',input),
+ paste('output=',output),
+ paste('profit=',profit)
+ ))
+
+ }
[1] "times= 1" "input= 1" "output= 1.98" "profit= 0.98"
[1] "times= 2" "input= 3" "output= 3.96" "profit= 0.96"
[1] "times= 3" "input= 7" "output= 7.92" "profit= 0.92"
[1] "times= 4" "input= 15" "output= 15.84" "profit= 0.84"
[1] "times= 5" "input= 31" "output= 31.68" "profit= 0.68"
[1] "times= 6" "input= 63" "output= 63.36" "profit= 0.359999999999999"
[1] "times= 7" "input= 127" "output= 126.72" "profit= -0.280000000000001"
[1] "times= 8" "input= 255" "output= 253.44" "profit= -1.56"
[1] "times= 9" "input= 511" "output= 506.88" "profit= -4.12"
[1] "times= 10" "input= 1023" "output= 1013.76" "profit= -9.24000000000001"
上面计算的就是如果初始值不能够盈利,那么需要投入多少,n表示在第n次投注中盈利投中。即便是抛硬币,二分类事件中,如果投注倍数是按照2倍来算,那么,投注到第7次,就会开始亏损。所以倍投,并不是按照2倍投。并且按照两倍投,随着投注次数累加,亏损会越多。
- 换3倍投注看看
> first_input <- 1 #初始金额
> a1 <- first_input
> q <- 3 # 倍投倍率
> n <- 10 #投注次数
> rate <- 1.98 #赔率
>
> for(i in 1:n){
+ options(scipen = 3)
+ input <- a1*((1-q^i)/(1-q))
+ output <- first_input*(q^(i-1))*rate
+ profit <- output - input
+
+ print(c(paste('times=',i),
+ paste('input=',input),
+ paste('output=',output),
+ paste('profit=',profit)
+ ))
+
+ }
[1] "times= 1" "input= 1" "output= 1.98" "profit= 0.98"
[1] "times= 2" "input= 4" "output= 5.94" "profit= 1.94"
[1] "times= 3" "input= 13" "output= 17.82" "profit= 4.82"
[1] "times= 4" "input= 40" "output= 53.46" "profit= 13.46"
[1] "times= 5" "input= 121" "output= 160.38" "profit= 39.38"
[1] "times= 6" "input= 364" "output= 481.14" "profit= 117.14"
[1] "times= 7" "input= 1093" "output= 1443.42" "profit= 350.42"
[1] "times= 8" "input= 3280" "output= 4330.26" "profit= 1050.26"
[1] "times= 9" "input= 9841" "output= 12990.78" "profit= 3149.78"
[1] "times= 10" "input= 29524" "output= 38972.34" "profit= 9448.34"
3倍投注确实可以盈利,那就涉及到自己的资金问题了,这其实是一个很复杂的赌徒心理 的心理学问题。初始值只是1元钱,后期如果要实现盈利,那么准备金要是初始值的10^3 倍。这就是下面要说到的投入起始值多少才能算是大的。
2.2 投注起始值多少算是大的
上面计算亏损盈利用的起始值是1元,当到第9次时已经达到了第一次的10000倍,并且这个模型中,赔率是按照1.98算,其实就是2,是一个2分类问题,在这种模型中,能够进行到第7次以后的概率不是很大。如果是赔率更大的那么模型又会不一样。我们分开分析一下。
- 按照1.98赔率,初始投入值为5元,那么是什么样子。
> for(i in 1:n){
+ options(scipen = 3)
+ input <- a1*((1-q^i)/(1-q))
+ output <- first_input*(q^(i-1))*rate
+ profit <- output - input
+
+ print(c(paste('times=',i),
+ paste('input=',input),
+ paste('output=',output),
+ paste('profit=',profit)
+ ))
+
+ }
[1] "times= 1" "input= 5" "output= 9.9" "profit= 4.9"
[1] "times= 2" "input= 20" "output= 29.7" "profit= 9.7"
[1] "times= 3" "input= 65" "output= 89.1" "profit= 24.1"
[1] "times= 4" "input= 200" "output= 267.3" "profit= 67.3"
[1] "times= 5" "input= 605" "output= 801.9" "profit= 196.9"
[1] "times= 6" "input= 1820" "output= 2405.7" "profit= 585.7"
[1] "times= 7" "input= 5465" "output= 7217.1" "profit= 1752.1"
[1] "times= 8" "input= 16400" "output= 21651.3" "profit= 5251.3"
[1] "times= 9" "input= 49205" "output= 64953.9" "profit= 15748.9"
[1] "times= 10" "input= 147620" "output= 194861.7" "profit= 47241.7"
所以初始投入值为5元,那么在想要盈利,自己的准备金起码要在5万,想想这是翻了1万倍。
- 如果改变赔率为6,初始投入值为1元,那么看看结果
> first_input <- 1 #初始金额
> a1 <- first_input
> q <- 3 # 倍投倍率
> n <- 10 #投注次数
> rate <- 6 #赔率
>
> for(i in 1:n){
+ options(scipen = 3)
+ input <- a1*((1-q^i)/(1-q))
+ output <- first_input*(q^(i-1))*rate
+ profit <- output - input
+
+ print(c(paste('times=',i),
+ paste('input=',input),
+ paste('output=',output),
+ paste('profit=',profit)
+ ))
+
+ }
[1] "times= 1" "input= 1" "output= 6" "profit= 5"
[1] "times= 2" "input= 4" "output= 18" "profit= 14"
[1] "times= 3" "input= 13" "output= 54" "profit= 41"
[1] "times= 4" "input= 40" "output= 162" "profit= 122"
[1] "times= 5" "input= 121" "output= 486" "profit= 365"
[1] "times= 6" "input= 364" "output= 1458" "profit= 1094"
[1] "times= 7" "input= 1093" "output= 4374" "profit= 3281"
[1] "times= 8" "input= 3280" "output= 13122" "profit= 9842"
[1] "times= 9" "input= 9841" "output= 39366" "profit= 29525"
[1] "times= 10" "input= 29524" "output= 118098" "profit= 88574"
感受一下,当赔率到6时,那么进行到第10轮的概率是,即就是20%,不要小看了这个20%,墨菲定律就告诉我们,小概率事件他就一定能发生,况且20%不算是一个小概率事件。再者,这就是薛定谔的猫问题,在没有结果出来之前,有两种可能,每一种都是有可能的,即使概率很小的事件,在盒子打开的那一刹那,结果就是确定的。类推到15次,那么结果是这样的。
[1] "times= 1" "input= 1" "output= 6" "profit= 5"
[1] "times= 2" "input= 4" "output= 18" "profit= 14"
[1] "times= 3" "input= 13" "output= 54" "profit= 41"
[1] "times= 4" "input= 40" "output= 162" "profit= 122"
[1] "times= 5" "input= 121" "output= 486" "profit= 365"
[1] "times= 6" "input= 364" "output= 1458" "profit= 1094"
[1] "times= 7" "input= 1093" "output= 4374" "profit= 3281"
[1] "times= 8" "input= 3280" "output= 13122" "profit= 9842"
[1] "times= 9" "input= 9841" "output= 39366" "profit= 29525"
[1] "times= 10" "input= 29524" "output= 118098" "profit= 88574"
[1] "times= 11" "input= 88573" "output= 354294" "profit= 265721"
[1] "times= 12" "input= 265720" "output= 1062882" "profit= 797162"
[1] "times= 13" "input= 797161" "output= 3188646" "profit= 2391485"
[1] "times= 14" "input= 2391484" "output= 9565938" "profit= 7174454"
[1] "times= 15" "input= 7174453" "output= 28697814" "profit= 21523361"
已经是初始投入值的700万倍了,所以这也从一定程度说明,进赌场基本不会赢钱的。
所以初始投入是1元,按照3倍投入,那么想要在赔率为6的情况下赚钱,那准备金起码要在在几十万倍。
2.3 你有足够的钱进行倍投吗
其实进行到这一点的时候,我们已经很容易能从2.2中的到答案。对于一般赌徒而言,起始投入,不可能以10元以下起投,(不太了解赌场这种模式,我自己感觉的,手动狗头),刚才看了,以1元起投,赔率如果到6,那么从概率的角度讲,没几十万是不可能赚到钱的,因为可能本金堵不住后来的窟窿,然后就亏完了。
我对赔率不是很了解,1.98的赔率,就是和抛硬币是一样的,二分类事件,在前面的分析中,要获利,起码准备金在1000倍起步。赔率越高,准备金的额度就需要更大,可能就要几十万倍,加上赌徒心理,想着一定能在下一把把钱赢回来,那么对于一般赌徒,起始值投入如果高于100,那么大概率是会把钱输进去,而且是至少10万起步,这就是为什么赌场庄家永远不会输的原因。即使是没有做过手脚,没有后台操纵,完全遵守随机事件,那么庄家也一定会赢。
大脑在多巴胺分泌过程中产生兴奋感,在这种赌徒心理之下,那就更容易失去理智。一个医生从数学的角度分析了一次赌徒心理,庄家必赢的逻辑。有机会写一些兴奋的生理基础。