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

作者: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,那么男人出正面的概率越大,越容易赢到钱,因为这意味着在多数情况下,两人出的都是正面,看一下模拟结果:

证明完毕~

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


https://blog.csdn.net/l675015956l/article/details/81050649

http://btc.mom/8724/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇