选哪扇门得奖金的算法
生活随笔
收集整理的這篇文章主要介紹了
选哪扇门得奖金的算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一道題目:臺上有三扇門,其中一扇門后藏有現金100萬,主持人叫你選擇其中一扇門后,然后主持人在余下的門中排除一個,這時問你要不要更換選擇?
下面給出數學說明
不換門是很簡單的古典概型
換門中獎等價于第一步要選錯等價于p=2/3
同理四扇門和更一般 的n扇門結果如下:
下面提供兩種算法,第一種是我做的,第二種來自網上原文鏈接,計算百萬次.
import numpy as np import random batch_size=1000000print('sample:{}'.format(batch_size))A=np.zeros((batch_size,3))A[range(batch_size),np.random.choice(3,batch_size)]=1count=[] for k in A:m=list(k)e=[0,1,2]random.shuffle(e)h=e[0]t=m[h]if t==0:count.append(1)acco=len(count)/ batch_size print('換個門后獲勝的概率為=',round(acco,3))count=[] for k in A:m=list(k)e=[0,1,2]random.shuffle(e)h=e[0]t=m[h]if t==1:count.append(1)acc1=len(count)/ batch_size print('不換門獲勝的概率為=',round(acc1,3)) sample:1000000 換個門后獲勝的概率為= 0.666 不換門獲勝的概率為= 0.334 import bumpy as np batch_size=100000print('sample:{}'.format(batch_size))A=np.zeros((batch_size,3))A[range(batch_size),np.random.choice(3,batch_size)]=1B=np.zeros((batch_size,3))B[range(batch_size),np.random.choice(3,batch_size)]=1acco=np.sum(A+B==2)/batch_size print('acc0:{}'.format(acco)) I=np.argmin(A+B,axis=1) C=np.zeros((batch_size,3))C[range(batch_size),I]=1F=1-(C+B) acc1=np.sum(A+F==2)/batch_sizeprint('acc1:{}'.format(acc1)) sample:100000 acc0:0.33311 acc1:0.66689總結
以上是生活随笔為你收集整理的选哪扇门得奖金的算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tushare 新功能(导入股票和大盘历
- 下一篇: 矩阵微分资料