问题

一个数从1开始,每次各有50%的概率乘0.9或者乘1.1,重复足够多的次数以后,情况会如何?

回答
好的,咱们来聊聊这个挺有意思的数字游戏。

你想啊,咱们从一个数开始,比如就定它是个1吧。然后呢,接下来这数怎么变,全看老天的意思了。每次它都有个“老天爷掷骰子”的机会,要么乘以0.9,要么乘以1.1,这俩概率还对等,一人一半。这事儿就这么一句一句地往下传,传个没完。那你说,时间长了,这数最后会变成啥样?是会越来越大,还是越来越小,还是就在某个地方晃悠?

咱们先别急着下结论,一步一步地来瞧瞧。

初期阶段:有点像在晃荡

刚开始的时候,这数的变化还挺“规矩”的。比如:

第一步:变成 1 0.9 = 0.9,或者 1 1.1 = 1.1。这俩数离1都不远。
第二步:
如果第一步是0.9:变成 0.9 0.9 = 0.81,或者 0.9 1.1 = 0.99。
如果第一步是1.1:变成 1.1 0.9 = 0.99,或者 1.1 1.1 = 1.21。
这时候,你的数可能在 0.81, 0.99, 1.21 几个值里面。你看,已经开始有点分叉了,但整体上还是围着1在转悠。

再多走几步,你会发现,这些可能的数值会越来越多,而且有些值会出现好几次(比如上面0.99就出现了两次)。这时候你会觉得,这数好像在围绕着某个中心值打转。

中期阶段:分叉越来越厉害,范围越来越广

但是,你仔细想想,每次乘的数都是0.9或者1.1。0.9是小于1的,会把数往下拉;1.1是大于1的,会把数往上推。这就像是一场“拔河”比赛,0.9团队和1.1团队各占一半力量。

如果说,你运气特别好,连续好多步都碰上了1.1,那这数就会像坐了火箭一样往上窜。比如,连续乘1.1十次,那结果就是 1.1 的 10 次方,这个数字可比1大不少了。反过来,要是你运气糟透了,连续碰上0.9十次,那结果就是 0.9 的 10 次方,这个数字会比1小很多,而且会越来越接近0。

所以,在很多步之后,你会发现,所有可能的数值会非常非常分散。有的可能已经是天文数字那么大,有的可能已经小到几乎可以忽略不计了。它们不再是围着1在小范围晃悠,而是朝着两头(巨大的正数和极其接近零的正数)各自狂奔。

长期结果:两极分化,但概率上来说……

那最后“情况会如何”?这得看你怎么理解“情况”。

1. 从概率分布来看:
两极分化是肯定的。 随着重复次数的增加,你遇到的数,要么会非常大,要么会非常小(无限接近于零)。你不太可能再遇到一个“刚刚好”或者“差不多”的值。
数值的大小会呈现一个特殊的分布。 虽然我们说它分化了,但它不是均匀地散开的。事实上,如果你对数取对数(比如以10为底或者以e为底),你会发现对数后的值会趋向于一个正态分布(也就是咱们常说的“钟形曲线”)。这意味着,绝大多数时候,你遇到的数的对数,会集中在某个平均值附近。而这个平均值,恰恰是0。为什么是0?因为log(0.9)和log(1.1)的和的期望值是0,也就是说,平均来说,对数是保持不变的。但是,方差(也就是离散程度)却会不断增大。
无限接近于零的概率实际上很小。 虽然你总是会得到一个正数,但要连续无数次都只乘以0.9,数学上讲概率是无穷小(但不是零)。同理,连续无数次乘以1.1,概率也是无穷小。

2. 从实际观察来看:
如果你真的运行这个模拟很多很多次,并且把每次的结果都记录下来,你会发现,大多数时候,你最后得到的数字会变得非常非常小,非常非常接近零。
为什么会这样?虽然你有可能连续乘以1.1得到一个巨大的数,但连续乘以0.9得到一个非常小的数,在概率上是更容易发生的,而且发生的可能性会以一个相对更快的速度累积起来。 这是一个关于“期望”和“方差”的微妙平衡。虽然1.1带来的“增益”比0.9的“损失”要大(1.1比0.9大,0.9的倒数比1.1的倒数小),但0.9的“负面影响”会更快地把你带向零。
想象一下,你每次的“平均步长”实际上是 0.9 0.5 + 1.1 0.5 = 1。但这是“算术平均”。在概率论里,我们更关心“几何平均”或者对数的期望。对数的期望是0,说明“平均增长率”是0,但方差在累积,这就导致了极端的分布。

打个比方说

这就像你在玩一个游戏,每次有机会前进10步,也有机会后退9步,概率对半分。长期来看,你不会总是在原地打转,也不会稳步前进或后退。你可能偶尔会冲刺一大截,但更多的时候,你会被那少掉的1步给一点点地拽回来,最终越陷越深,离起点越来越远,但方向是往负无穷的方向,不过因为你的步长始终是正的,所以你是无限接近于零的那个位置。

所以,总结一下就是:

重复足够多的次数之后,这个数会呈现出一种两极分化的趋势。绝大多数情况下,它会变得非常非常接近于零。但你也有可能通过连续的好运得到一个巨大的数字,只是这种情况发生的概率会随着次数增加而显得越来越渺茫。它不会稳定在一个中间值,也不会消失,它更像是在一个无限大的尺度上,大部分的“可能性”都挤到了最左边(无限接近于零的那一端)。

网友意见

user avatar

归零。

显而易见:

0.9*1.1=0.99

在数量足够大时,可将频率视为概率,那么就是:

0.99^n(n为一极大值)

很明显趋近于零

user avatar

用数学严格定义这个问题: 是独立同分布的变量满足

求 的分布。


注意到 而 也是独立同分布的变量满足

计算 的期望和方差分别等于 和


根据中心极限定理,当 足够大的时候,

近似服从正态分布

于是 近似服从对数正态分布


趋于正无穷的时候,对于任意一个正数

因此 会依概率收敛于0。

user avatar

看了N多回答,大概总结下。随便挑一个人,按照1000次操作,那么他亏到几乎没钱的概率是非常高的,也就是lim0.99^n=0。

但是也存在1.1^1000次方的可能,只要样本足够多就必然发生。用现实的例子,巴菲特只有一个,因为炒股破产的比比皆是。

期望=1是客观事实(哪怕是50%概率1.5和0.5的波动方式,期望照样是1,没什么意义,除非你是那个1/∞,一直赢,赢麻了,那也只能说对你来说是有意义的),但是样本无限多的时候,我们大概率只能是破产的那批人,赚钱和我们没关系,典型的不就是彩票(更别说其中的门道)。再比如说,马云和你的财产平均下,一个资产1000的能把999个接近0的平均到1,就问你厉害不厉害吧。

总有一个人赚的钵满盆盈,但是这个人应该不会是你我。在赌博中,赚翻了的也一定是赌场,因为赌场的钱是无限的,除了极个别幸运儿或者赚了一点就抽手的,其他人有几个赚的?

赌狗就是自信自己行,赢面超过50%,实际上呢?连续开单、双的时候正是赌场赚翻的时候,大部分人都等不到那个时候就破产了,再或者就是直接一手限制最高单次押注金额,直接让你傻眼。

======

再补充下,0.5*1.1+0.5*0.9=1是数学期望没错,但是那个赢 了的跟各位没有任何关系,连续赢20次,那说明什么?收割各位用的工具人,好像真的有那么个人一样。连续输20次的人再宣传下,给点帮助,正面的例子也有了。双方都赢麻了,但是一共有几方来着?自己理解吧,说的我都害怕起来了。

user avatar

这题不就是 @physixfan 之前写的那个专栏文章么……

physixfan:为什么频繁交易的人大多数在股市上都赔钱了?一个有趣的小数学游戏也许可以解答

原文里他就说了:

有两种分析这个游戏的方式。
第一种:不论我玩的时候的本金m是多少,玩下一次的时候,收益的期望总是 m*(1.2-1)*1/2+m*(0.83-1)*1/2。因为赢钱的时候赢 0.2 总是大于赔钱的时候赔 -0.17,所以期望总是正的,那就应该玩,而且要一直玩无限多次。
第二种:若一直玩下去,就会有赢有输,所以应该把 1.2 和 0.83 乘起来看是否大于1。结果是 1.2*0.83=0.996,小于1,因此久赌必输,不能玩。

然后我就写了专栏解释应该怎么计算:

Richard Xu:“有趣的数学小游戏”背后的数学原理

@AlphaBetaQuant 的回答是一样的。


回到题主的问题,关键在于:

“涨停和跌停的概率相等”不等于“每次涨停对应一次跌停”

正确的逻辑应该是:

由于0.9*1.1=0.99<1,所以经过充分多次操作之后,需要涨停比跌停多得多才能保证不亏钱。

因此,我们实际上会观察到有非常高的概率亏钱,但是亏最多只能亏1(从1亏到无限趋近于0);同时,有比较低的概率赚钱,但是赚可以赚得任意多(即使每次赚10%,连续赚个几十几百次也可以是一笔巨款)。两者相抵,结果是期望上并不赚钱。

其实考虑一个极端的情况就很好理解了:

假如亏就是亏100%,赚也是赚100%,各1/2的概率;

那么无论进行多少次操作,期望都是1不变。

但是如果你去观察n次操作后的分布,只有1/2^n的概率是赚的,而且赚的是2^n这么多,剩下的1-1/2^n都是亏光。

user avatar

拿给高中生都不会错的题,你乎就答成这个德行?

还有挂着某世界级科技公司或者量化头衔的的算不明白,我看了一眼他们的回答,好像连数学期望是啥都不知道,这让我咋好意思信任你们(

懒得写数学公式了,用大白话带某些人复习一下数学期望的定义(高中version):对于一个离散型随机变量,把它所有可能的取值列出来,并把所有可能的取值对应的概率列出来,把取值和对应的概率乘到一起求和就是数学期望了。

至于题主的问题,原因很简单啊,因为Xn依概率收敛为0和E(Xn)恒等于正数本来就不矛盾,例子也很好构造啊。简单点就是一个随机变量,1/n概率是n,其余情况都是0,那它的期望始终是1,但随着n趋于无穷这个随机变量也是依概率收敛为0的,咋稍微复杂点就搞不明白了?

还有你乎一群自我意识过剩的码农每当遇到这种问题就要跳出来计算机模拟,可惜不少人数学实在是不忍直视。

最离谱的是有的人写出来的代码只是把过程走了一遍而已就把结果当成期望了,真就N=1的蒙特卡洛?计算机模拟你也得先把要模拟的问题搞明白再上啊(

还有稍微好一点的,知道要重复多次,但重复的次数基本上是闭着眼睛随便选的。我看你们对蒙特卡洛的理解也就只停留在“我闭着眼睛随便选个看上去大一点的数字,重复这么多遍求个均值,跑完了结果肯定是对的”这个阶段,感觉和某些RL工作能尿到一个壶里去。比如时间长度选了1000,然后重复100万次,感觉100万次挺多的?可能的结果有2^1000种,你那100万也就是九牛身上的一根毛,模拟个锤子啊.jpg

user avatar

这个问题和我之前写过的一篇文章道理是一样的,只是数字不同,所以直接把当时写的文章《 为什么频繁交易的人大多数在股市上都赔钱了?一个有趣的小数学游戏也许可以解答 》贴过来当回答吧~

偶然读到了这篇文章,里面提到的一个简单的小数学游戏相当有意思。

假设有这么一家赌场提供了这么一个你可以玩无穷多次的游戏:扔一个硬币,若正面向上,则你的资产变成当下的 1.2 倍;若反面向上,则你的资产变成当下的 0.83 倍。你会选择玩这个游戏吗?

有两种分析这个游戏的方式。

第一种:不论我玩的时候的本金m是多少,玩下一次的时候,收益的期望总是 m*(1.2-1)*1/2+m*(0.83-1)*1/2。因为赢钱的时候赢 0.2 总是大于赔钱的时候赔 -0.17,所以期望总是正的,那就应该玩,而且要一直玩无限多次。

第二种:若一直玩下去,就会有赢有输,所以应该把 1.2 和 0.83 乘起来看是否大于1。结果是 1.2*0.83=0.996,小于1,因此久赌必输,不能玩。

这两种分析哪一种更有道理呢?大家可以先想想看。

我多年不学数学了,概率论早就忘光了,因此就写了个小代码来模拟一下如果玩这个游戏,会是什么结果。

       import numpy as np import matplotlib.pyplot as plt   P = 100 # Number of players N = 30000 # Total times played for one player win = 1.2 lose = 0.83 Num_of_winner = 0 Money_of_the_luckiest_winner = 0.0   for j in range(P):     m = np.zeros(N)     m[0] = 10000.0     for i in range(1,N):         if np.random.randint(2):             m[i] = m[i-1]*win         else:             m[i] = m[i-1]*lose       if m[-1]>m[0]:         Num_of_winner += 1     if m[-1]>Money_of_the_luckiest_winner:         Money_of_the_luckiest_winner = m[-1]     plt.plot(m)     print(Num_of_winner) print(Money_of_the_luckiest_winner) plt.xlabel('Times played') plt.ylabel('Money') plt.show()     

在上面这段代码中,我模拟了100个玩家,每人玩30000次这个游戏,看看他们最后的资产有多少。

结果很有意思:其中绝大多数玩家的资产都可算是归零了!

最后print出来的 Num_of_winner 是资产大于本金的人,因为有随机性,所以每次运行结果肯定不同,但大多时候都是100人中有2~3人最终赢钱了而已。

更有意思的是,最后print出来的100人里面最后资产最多的人最后到底有多少资产 Money_of_the_luckiest_winner,经常是8位数9位数的资产(本金是1万)!这绝对是个赢者通吃的游戏

下面贴一下其中一次模拟的图,大家可以看看:

过程中纵坐标最高都到了10^13这个量级了,但最后的时候肯定没这么多。放大一下最后的结果,是这样的:


一个玩家遥遥领先,远远甩开了后面的其他所有玩家。

把最后的那一块继续放大,在排除掉了前4名之后总算纵坐标不需要用科学计数法了 ,剩下的玩家的资产都集中在0那里:

画一张纵坐标是对数坐标的图的话,可以更直观的看到大多数玩家资产向下的趋势(和上面几张不是同一个run):

总结一下模拟的结果:绝大多数玩家玩到最后都归零了,只有极少数玩家能够赢得超过本金的钱,而赢得最多的那个人的最终资产远远超过其他人很多很多。

其实也不会有赌场提供这个游戏的,因为最一开始的第一种分析方式的确是没错的,玩家期望的确为正,赌场会赔钱。但第二种分析方式仍然有价值:只有1个人基本赢走了所有钱,剩下的人都归零了。

虽然没有赌场提供这个游戏,但是现实生活中,有一个地方跟这个小游戏太像了:股市!股市不是零和博弈,整体而言长期来看股市肯定是往上涨的,因为人类的生产力在提升。你买大盘指数基金buy&hold的话,期望肯定是正的。然而,股市每天都在涨涨跌跌,无数的人在里面频繁交易,最后血本无归。当然也有人最后成了大赢家,然而你能保证你是那个幸运的0.001%吗?


在写完上面这篇文章后,经过和 @zhiqiang 讨论又学到了有意思的东西,详见《用凯利判据玩转前文中的“一个有趣的小数学游戏”》,也一起贴到这里来吧~

若改动一个游戏条件,上面这个游戏就变得更加有趣了:若玩家可以自己选择投注金额呢?玩家应该如何投注才是最佳方案?

直观的想:如果每次都押注100%金额,那其实就回到了一开始那个不能自己选投注金额的游戏,虽然每次玩收益很大,却有非常大的风险最后归零;如果每次都押注太小,那显然回报会很低。最佳的投注比例一定是平衡了这二者的。事实上这个新的游戏的最佳玩法,正是大名鼎鼎的凯利判据 (Kelly Criterion)阅微堂对凯利判据的讲解也很不错)。凯利判据就是通过最大化资金的log函数的期望而得到的投注比例。证明过程就略过了,基本上就是对这个函数求导就可以。最后得到的凯利判据 (Kelly Criterion)公式为:

K = (pW-qL)/WL

其中p为赢的概率 (0.5),q=1-p为输的概率 (0.5),W为赢的情况下的收益 (0.2),L为输的情况下的损失 (0.17)。在我们这个游戏中,计算得知最佳投注比例 K 约为 0.44。

于是我改动了一下模拟代码,来看看现在用凯利判据投注的话结果如何!

       import numpy as np import matplotlib.pyplot as plt   P = 100 # Number of players N = 30000 # Total times played for one player win = 1.2 lose = 0.83 Num_of_winner = 0 Money_of_the_luckiest_winner = 0.0   W = abs(win-1) L = abs(lose-1) Kelly_percentage = (0.5*W-0.5*L)/(W*L) print(Kelly_percentage) # is about 0.44 in our case   for j in range(P):     m = np.zeros(N)     m[0] = 10000.0     for i in range(1,N):         if np.random.randint(2):             m[i] = m[i-1]*win*Kelly_percentage + m[i-1]*(1-Kelly_percentage)         else:             m[i] = m[i-1]*lose*Kelly_percentage + m[i-1]*(1-Kelly_percentage)       if m[-1]&gt;m[0]:         Num_of_winner += 1     if m[-1]&gt;Money_of_the_luckiest_winner:         Money_of_the_luckiest_winner = m[-1]     plt.semilogy(m)     print(Num_of_winner) print(Money_of_the_luckiest_winner) plt.xlabel('Times played') plt.ylabel('Money') plt.show()     

这下100个玩家全部最终资产大于初始本金了,最幸运的玩家最终的资产都是10^60+这种量级了… 在对数坐标轴下,所有玩家的资产都几乎直线上涨了。

不知你是否有跟我一开始一样的一个疑惑:如果只是选择一个固定的投注比例,似乎只是让这个游戏每次赢的少了点,输的也少了点而已,为什么仅仅如此选择一个投注比例就可以扭转归零的颓势了呢?其实具体把数字计算一下就明白了:原本赢则变1.2倍,输则变0.83倍的游戏,若固定44%的投注比例,就变成了赢则变1.088倍,输则变0.9252倍。1.088*0.9252是多少呢?1.0066176!大于1了!这就解释的通为啥所有玩家的资产都纷纷上涨了。

凯利判据在真实的股市投资中也挺有用的,本文这个简单的小数学游戏也算是给大家一个直观印象了吧!

user avatar

首先我们看看经过n轮涨跌之后,题主的股票涨了m次的概率,如果将这个概率记作 。那么由二项分布模型可以发现,概率为:

而此时题主手上的资金 为:

其中, 是指0次涨跌时的资金,亦即初始资金,在这个问题中取为 。

于是题主手上此时的资金数学期望 为:

但是需要注意到的是,题主此时的资金不少于数学期望的概率并不是50%.为了说明这一点,我们不妨来从上面给出的公式来计算一下收益水平与出现概率的关系。

首先,我们得知道在涨跌后获得收益意味着什么。在这个问题中,我们知道获得收益意味着:

将这个不等式展开,我们可以得到:

其中,

.

这意味着只有题主的股票在n次的涨跌之中,上涨的次数超过总次数的52.5%时,才有可能赚钱。不过这里还只求出来了次数的条件,并没有解决赚钱概率的问题。因此还需要考察该事件发生的概率,才能够具体知道题主有多大可能赚到钱。

由前文给出的股票上涨m次的概率可以知道,该事件发生的概率为:

其中 表示不小于 的最小整数。

后续的化简与求极限过程已超出本人能力范围,因此采用了Mathematica进行计算。

此概率表达式最终可以化简为:

其中 为高斯超几何函数。求极限可得:

也就是说,当涨跌次数n趋向于无穷大时,题主赚到钱的概率为0。

为了更加直观的反映这个概率的大小,我们此处用Mathematica画出这个概率与n的关系,如下图所示:

而为什么赚钱概率如此之小的情况下,数学期望却是不赚不亏呢?不难发现,题主的收益在赚到钱的情况下,尤其是每次都涨,也就是 的情况下,有:

这是一个指数增长的函数,在 时将会趋于无穷。而亏钱的那一部分情况,至多只会亏光本金。因此数学期望,实际上是被赢者通吃情况下的高收益所拉高了,尽管出现的概率非常地小。

user avatar

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有