今天在知乎看到一个有趣的话题,”假设赌博输赢的概率都是50%,那么长期赌博的人为什么仍然会更容易倾家荡产而不是收益均衡?"

问:即使绝对公平的赌局(50%赢,50%输),赌到最后,我为什么会输?

答:你输给的不是运气,你输给的是大数定律。

问:什么是大数定律,我为什么输给她?

答:假设你有本金10元,每次1元,一次你可能输1元, 也可能赢1元,概率各为50%。即输赢的概率各为1/2。假设你连输十次,连输10次的概率是2的十次方,1/1000 (千分之一)。也就是说,你有千分之一的概率连输十次,输完所有本金,没有资本来翻盘了,必须退场了。(而这也意味着, 你玩一千次,连输十次出现的概率等于1,也就是说,玩100次,你输完的数学期望等于100%)。

下面用matlab仿真来看看这个问题,每次产生随机数来判断输赢,大于0.5就算赢,硬币个数为10,如果硬币个数为0,就停止游戏,

代码语言:javascript复制clc

close all

clear

%%

MaxIters = 1000;

coins = 10;

for i = 1:MaxIters

flag = rand;

if flag>0.5

coins = coins+1;

else

coins = coins-1;

end

if coins<=0

break

end

end

disp(['游戏结束:', num2str(i)])仿真结果如下

代码语言:javascript复制>> dutuTest

游戏结束:202

>> dutuTest

游戏结束:1000

>> dutuTest

游戏结束:68

>> dutuTest

游戏结束:192

>> dutuTest

游戏结束:88

>> dutuTest

游戏结束:1000

>> dutuTest

游戏结束:262

>> dutuTest

游戏结束:108

>> dutuTest

游戏结束:50

>> dutuTest

游戏结束:224

>> dutuTest

游戏结束:76

>> dutuTest

游戏结束:1000

>> dutuTest

游戏结束:1000

>> dutuTest

游戏结束:672从结果看出来,也有1000次后游戏继续的,输出金币个数再看一下

代码语言:javascript复制% clc

close all

clear

%%

MaxIters = 1000;

coins = 10;

for i = 1:MaxIters

flag = rand;

if flag>0.5

coins = coins+1;

else

coins = coins-1;

end

if coins<=0

break

end

end

disp(['游戏结束:', num2str(i),',剩余金币个数为:',num2str(coins)])结果为

代码语言:javascript复制>> dutuTest

游戏结束:50,剩余金币个数为:0

>> dutuTest

游戏结束:68,剩余金币个数为:0

>> dutuTest

游戏结束:64,剩余金币个数为:0

>> dutuTest

游戏结束:1000,剩余金币个数为:58

>> dutuTest

游戏结束:104,剩余金币个数为:0

>> dutuTest

游戏结束:78,剩余金币个数为:0

>> dutuTest

游戏结束:328,剩余金币个数为:0

>> dutuTest

游戏结束:1000,剩余金币个数为:46

>> dutuTest

游戏结束:76,剩余金币个数为:0

>> dutuTest

游戏结束:184,剩余金币个数为:0

>> dutuTest

游戏结束:768,剩余金币个数为:0

>> dutuTest

游戏结束:1000,剩余金币个数为:44

>> dutuTest

游戏结束:62,剩余金币个数为:0增大仿真次数再来看下,仿真10000次来看下结果

代码语言:javascript复制loop = 100000;

stop_index = zeros(1,loop);

coin_left = zeros(1,loop);

MaxIters = 1000;

for j = 1:loop

coins = 10;

for i = 1:MaxIters

flag = rand;

if flag>0.5

coins = coins+1;

else

coins = coins-1;

end

if coins<=0

break

end

end

disp(['游戏结束:', num2str(i),',剩余金币个数为:',num2str(coins)])

stop_index(j) = i;

coin_left(j) = coins;

end

disp(['金币输光的个数:', num2str(length(find(coin_left==0)))])代码语言:javascript复制金币输光的个数:75101期望还有点靠不住,没有100%输光,

我们增加一下游戏的次数

代码语言:javascript复制MaxIters = 5000;代码语言:javascript复制金币输光的个数:88976再增加次数

代码语言:javascript复制MaxIters = 50000;代码语言:javascript复制金币输光的个数:96465假如这个游戏者永远不满足,想一直玩下去,那么MaxIters 的取值接着增大,输光的概率接近是100%,这就是我们所说的久赌无赢家。而人性的贪婪决定了赌性,抛开网络赌博的大数据猫腻不说,就算是最公平的对赌游戏,我们最终也是输光收场。