羊車門問題python模擬
阿新 • • 發佈:2018-11-25
提示 問題 and 是什麽 def 風格 設有 編輯 第一次
題目描述:有3扇關閉的門,一扇門後面停著汽車,其余門後是山羊,只有主持人知道每扇門後面是什麽。參賽者可以選擇一扇門,在開啟它之前,主持人會開啟另外一扇門,露出門後的山羊,然後允許參賽者更換自己的選擇。
作業要求如下,需在博文中回答如下問題,回答問題時,先復制題目,然後再換行書寫答案:
1、按照你的第一感覺回答,你覺得不換選擇能有更高的幾率獲得汽車,還是換選擇能有更高的幾率獲得汽車?或幾率沒有發生變化?
答:我感覺和買彩票是否中將一樣,幾率都是三分之一,沒變化。
2、請自己認真分析一下“不換選擇能有更高的幾率獲得汽車,還是換選擇能有更高的幾率獲得汽車?或幾率沒有發生變化?” 寫出你分析的思路和結果。
答:換 得??的幾率更高。采用窮舉法。假設有??1,??2,??。如果不換,中??的概率是三分之一。如果換,假設我們第一次選中的是??,剩下的是??1??2,主持人開一扇??門,我們換會得到??2;假設我們第一次選中的是??1,剩下??2,??,主持人開一扇??門,我們必定會換得??;假設我們第一次選到??2,情況與選到??1一樣,所以,如果換的話,我們得?? 的概率是三分之二。
3、請設法編寫程序驗證自己的想法,驗證的結果支持了你的分析結果,還是沒有支持你的分析結果,請寫出程序運行結果,以及其是否支持你的分析。(提示:可以借助隨機數函數完成此程序)
答:程序運行結果如圖所示,結果支持我的分析。
4、請附上你的代碼。(提示:使用編輯器中的插入代碼功能,將代碼顯示為 Python 風格)
代碼如下:
1 # -*- coding: utf-8 -*- 2 """ 3 Created on Wed Nov 14 09:18:45 2018 4 5 @author: kk 6 """ 7 8 def unchange(car,choice): 9 if car==choice: 10 return 1; 11 else: 12 return 0; 13 def change(car,choice): 14 ifchoice==car: 15 return 0; 16 else: 17 return 1; 18 19 20 import random 21 sum1=sum2=0; 22 a=[1,2,3] 23 for i in range(0,10000): 24 car=random.choice(a) 25 choice=random.choice(a) 26 if unchange(car,choice): 27 sum1=sum1+1 28 if change(car,choice): 29 sum2=sum2+1 30 print(‘共進行了10000次隨機測試,結果如下:‘) 31 print(‘選擇不換時,得車的次數為{},概率為{}‘.format(sum1,sum1/10000)) 32 print(‘選擇換時,得車的次數為{},概率為{}‘.format(sum2,sum2/10000))
羊車門問題python模擬