Realtime Price(实时价格):

美女和男人博弈过程的模拟(庄家和散户的博弈)

作者:l675015956l

时间:2018年7月15日

来源:CSDN

在网上看到了一个有意思的话题”中国股市适合散户吗?”,有人举了一个美女和男士博弈的例子,这个例子表面看上去,胜负的概率各占50%,但是经过一些数学推算,发现经过多次博弈后,美女总是能够稳赢!

这个结论对我的冲击比较大,让我对自己的直觉产生了怀疑.理论归理论,我们能不能使用事实来模拟证明一下呢?找人来模拟这个博弈貌似不现实,作为程序员,很快就想到了使用程序来模拟.

我们分三步走,第一步:分析例子. 第二步:书写代码. 第三步:测试模拟.

 

第一步,分析例子:美女和男士玩硬币的故事.

规则是这样的,美女和男士各自有一个硬币,两人可以选择出硬币的正面或反面.如果两人的硬币都是正面,男士将获得3元,如果两人的硬币都是反面,男士将获得1元.如果两人的硬币一正一反,那么男士将失去2元.男士的收益图如下图所示

表面一看,上面每种情况出现的概率都是1/4, 所以最终男士得到的奖励为 0.25 * 3 + 0.25 * 1 – 0.25 * 2 -0.25 *2 = 0, 不赢不输嘛~

但是经过分析,如果美女把控好出硬币正面的概率,那么不管男士怎么调整出硬币正面的概率,经过多次博弈后,男士都会输! 这个分析过程略复杂,也不是本次要关注的重点,感兴趣的话,可以看视频里面的分析过程.我们暂且先记住结论:只要美女出正面的概率在(1/3,2/5)之间,那么男士就会一直输钱. (貌似好神秘的样子)

 

第二步 , 书写代码 :

因为过程比较简单,使用C,java,python都可以进行模拟.那就选择开发比较快的python吧.

# -*- coding: utf-8 -*-

import random

 

def girl_result(probality_of_girl):

probality=random.random()

if probality < probality_of_girl:

return “正面”

else :

return “反面”

def boy_result(probility_of_boy):

 

probality=random.random()

# print(probality)

if probality < probility_of_boy:

return “正面”

else:

return “反面”

def game_gambing(times,probility_of_boy,probality_of_girl):

money = 0

for i in range(times):

temp_result =girl_result(probality_of_girl)

if temp_result == boy_result(probility_of_boy):

if temp_result == “正面”:

money += 3

else :

money += 1

else :

money += -2

return money

if __name__ == ‘__main__’:

for j in range(1,10):

game_times = 10000

probality_of_girl = round(0.9,2)

result_money =game_gambing(game_times,round(0.1*j,2),probality_of_girl)

print(“女人出正面的概率为 “+str(probality_of_girl)+”,第”+str(j)+”个男人出正面的概率为”+str(round(0.1*j,2))+”,博弈次数为: “+str(game_times)+” 他赢得的钱为: “+str(result_money))

 

第三步 , 测试 : 

按照结论,我们在1/3和2/5之间取一个数,比如0.37,如果美女一直以这个概率来出正面,那么多次博弈后,应该会稳赢.

假设有9个不同概率偏好的男士来进行博弈,他们出正面的的概率分别为0.1到0.9,分别博弈10000次.博弈结果如下:

为了进一步验证程序的正确性,我们可以调整美女出正面的概率,比如调成0.1,那么理论上来说,男人出正面的概率越低,,越容易赢到钱,因为这意味着在多数情况下,两人出的都是反面,看一下模拟的结果:

如果美女出正面的概率偏大,比如0.9,那么男人出正面的概率越大,越容易赢到钱,因为这意味着在多数情况下,两人出的都是正面,看一下模拟结果:

 

证明完毕~

感触:学好数学真的很重要.

相关文章:

比特币布道者

比特币的坚定信仰者!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注