1. 程式人生 > >羊車門問題python模擬

羊車門問題python模擬

提示 問題 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     if
choice==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模擬