蒙提霍尔游戏 python 模拟
生活随笔
收集整理的這篇文章主要介紹了
蒙提霍尔游戏 python 模拟
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文使用蒙特卡羅方法驗證蒙提霍爾游戲的結(jié)論。
以下代碼,本人原創(chuàng)!
完整代碼
import random# 蒙提霍爾游戲 def play_game(strategy='nonchange'):# 門牌編號doors = [0,1,2]# 門后的獎品gifts = ['goat', 'goat', 'car']random.shuffle(gifts)# 觀眾挑選一扇門(編號)viewer_choice = random.choice(doors)# 主持人從剩下的兩扇門中,打開門后是是山羊的某一扇門(編號)host_open = random.choice(list(filter(lambda x:gifts[x]=='goat' and x!=viewer_choice, doors)))# 順便,也標(biāo)記剩下的一扇門(編號)viewer_lift = list(filter(lambda x:x!=viewer_choice and x!=host_open, doors))[0]# 觀眾根據(jù)策略獲得的獎品viewer_gift = [gifts[viewer_choice], gifts[viewer_lift]][strategy=='change']# 根據(jù)策略成功與否,返回 1、0 (為方便計數(shù))return [0, 1][viewer_gift=='car']# 游戲次數(shù) n = 10000# 蒙特卡羅方法,模擬 n 次游戲 # 策略一:不改變選擇 p = sum((play_game('nonchange') for _ in range(n))) / n # 頻率 ≈ 概率 print('nonchange:', p)# 蒙特卡羅方法,模擬 n 次游戲 # 策略二:改變選擇 p = sum((play_game('change') for _ in range(n))) / n # 頻率 ≈ 概率 print('change:', p)效果圖
本文轉(zhuǎn)自羅兵博客園博客,原文鏈接:http://www.cnblogs.com/hhh5460/p/6713994.html,如需轉(zhuǎn)載請自行聯(lián)系原作者總結(jié)
以上是生活随笔為你收集整理的蒙提霍尔游戏 python 模拟的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive基础
- 下一篇: IO多路复用原理剖析