圣彼得堡实验的MATLAB模拟分析
2013-04-29刘禹彤赵毅
刘禹彤 赵毅
一、圣彼得堡悖论
圣彼得堡悖论来自于一个掷币游戏关于概率期望值的悖论。掷币游戏规则:设定掷出正面为成功,游戏者如果第一次投掷成功,得奖金2元,游戏结束;否则,继续投掷,第二次成功得奖金4元,游戏结束;以此类推,如果第n次投掷成功,得奖2n金元,游戏结束。
按照概率期望值的计算方法:将每一个可能结果的奖金乘以该结果发生的概率,即可得到该结果的奖金期望值,游戏的期望值即为所有可能结果的奖金期望值之和。随着实验次数n的增加,虽然发生概率小,但奖金越来越多,且每一个结果的奖金期望值均为1,则游戏的期望值将为“无穷大”。而且按照概率的理论,多次实验的结果将会接近于数学期望。
但是,以往经验表明“没有人愿意花25元去参加一次这样的游戏。”这就出现了计算的期望值与实际情况的“矛盾”。我们可以使用MATLAB軟件模拟实验过程来解释这一问题。
二、圣彼得堡实验的MATLAB模拟分析
由于投掷硬币得到正面和反面的概率相同(等概率事件),即P(正面)=P(反面)=0.5。
1.单轮圣彼得堡游戏的MATLAB模拟
当游戏参与者投掷硬币出现正面时游戏结束,我们可以将每次投掷的随机值由函数rand产生。如果该次rand函数运算结果小于等于0.5,定义为投掷出反面,游戏继续;反之,则定义为投掷出正面,游戏终止。
由于圣彼得堡游戏的不确定性,为了获得可信度较高的均值数据,需要进行多次模拟。下面讨论中,对一次性连续多次的游戏模拟统称为一轮游戏模拟。一轮圣彼得堡游戏由多个单次圣彼得堡游戏组成。截取每次运行的投掷次数和奖金数额这两个结果,得到单轮多次圣彼得堡游戏的MATLAB模型(设本轮投掷运行为100次)。从结果可以看出,在本轮模拟实验中单次游戏最高奖金达到32元,但是平均奖金只有10.62元,远小于32元。同时单次游戏最大投掷次数为5,但平均投掷次数只有1.98。
为了增加实验的可靠性,减少不确定性,增加单轮游戏的次数,以此观察实验结果与单轮100次模拟实验的结果的异同,以此找出规律(程序运行5000次)。
结果表明:单次游戏的最高奖金虽然达到了2048元,但平均奖金只有13.4972元,远小于2048元。同时,单次最大投掷次数增加为11,但平均投掷次数只有2.004。也就是说,对单次游戏来讲,平均每次游戏能够得到6.7351元。之所以可以达到13.4972元这样的平均奖金,是由于游戏的不确定性,产生了11次的最大单次投掷次数,使该游戏的奖金额大幅增加。
2.多轮圣彼得堡游戏的MATLAB模拟
在上图中发现最大投掷次数随着轮数的增加而增加,但是,增加速度并不明显。其中,最大的投掷次数为16次,此时,这一事件的概率为,约为1.5259×10-5。
在此基础上验证了当轮数为100000时的随机模拟实验,随着轮数的剧增,但是,单轮最大投掷次数仅为18,最大奖金额为 262144元。
说明当轮数趋向于无穷大时,最大投掷次虽然数也会增加,但是增加速率极慢。
在上图100个样本值中,数据分布如下:
54个数据分布在0~10元,均值为9.4720元,34个数据分布在10~20元,均值为17.1560元,8个数据分布在20~30元,均值为24.8400元,只有4个数据在30元以上。
综上分析,圣彼得堡游戏的定价可以按照其从小到大排序的88个数据的平均值为参照标准,定价为12元左右。
3.单轮游戏的平均投掷次数
从下图可以发现无论单轮的游戏次数是多少,其单轮的平均投掷次数的平均值为1.9911,最大值为2.1071,最小值为1.82,在直线y=2上下波动震荡(见下图)。
三、结论
从以上的模拟实验的结果数据分析得出以下结论:
1.圣彼得堡游戏的平均单次投掷次数趋近于2
2.单轮圣彼得堡游戏的最高投掷次数增长速度随着次数的增加而变缓,趋近于0
3.单轮圣彼得堡游戏的平均奖金的增长速度随着次数的增加而变缓,趋近于0
4.由于实验的不确定性,单次游戏可以有较高的奖金,但是其概率极小,不会对其他参与者产生吸引力
由上述模拟结果分析得出:可以将游戏定价为12元时,此时需要投掷硬币4次才可以赢取奖金4元,此时的概率为0.0625,这已经是一个小概率事件了,而且可以保证游戏参与者中既有失败者,又有成功者,而且游戏组织者的损失和收益也大致相当。
参考文献:
朱琳,叶向.圣彼得堡悖论的计算机模拟分析[J]计算机系统应用,2009(11).
(作者单位 刘禹彤:北京林业大学理学院 赵毅: 浙江财经大学)