擲硬幣的概率問題
一、課堂內(nèi)容
1.randint的用法
randint(low, high=None, size=None, dtype='l')
- low,high表示隨機(jī)結(jié)果的取值范圍蝠嘉;所有結(jié)果出現(xiàn)的概率想等。
- size表示結(jié)果的矩陣表達(dá)形式庄呈,size(a蠢涝,b)其中a表示行數(shù),b表示列數(shù)跋涣;其中a缨睡,b是int形式,或者tuple陈辱,不能是float奖年。
例子1:randint(2, size = 10000)
返回:[0, 1沛贪, 0 ……陋守, 1,1]
說明:取值結(jié)果為2以內(nèi)的int利赋,0或者1水评;一共顯示10000個(gè)結(jié)果。
例子2:randint(2, size = (int(1e6), 2))
返回:
[0, 1]
[1, 0]
[1, 1]
……
[1, 0]
說明:取值結(jié)果為2以內(nèi)的int媚送,0或者1中燥;一共顯示1e6行X2列的矩陣結(jié)果。
2.choice的用法
choice(a, size=None, replace=True, p=None)
- 與randint的區(qū)別在于季希,可以設(shè)置每個(gè)結(jié)果出現(xiàn)的概率
二褪那、練習(xí)內(nèi)容
在學(xué)習(xí)完(一)的內(nèi)容之后幽纷,Udacity提供的計(jì)算概率練習(xí)內(nèi)容如下:
1.兩次均衡擲硬幣得到兩次正面
2.三次均衡擲硬幣得到一次正面
3.P(H) = 0.6 時(shí)三次非均衡擲硬幣得到一次正面
4.一次擲骰子得到偶數(shù)
5.兩次擲骰子得到相同值
1.兩次均衡擲硬幣得到兩次正面
思考路徑如下:
(1)如何生成兩次均衡擲硬幣的結(jié)果式塌?
numpy.random.randint函數(shù);
(2)如何將兩次擲硬幣的結(jié)果組合在一起友浸?
可以想象成每組擲兩次硬幣峰尝,一共擲1000000組
or:
每組擲硬幣的結(jié)果看成一列數(shù)據(jù),兩組的結(jié)果就是兩列數(shù)據(jù)收恢。形成一個(gè)N*2的矩陣
test_1 = numpy.random.randint(2, size = (int(1e6), 2))
(3)如何表達(dá)兩次都是正面武学?
每次正面的結(jié)果是0祭往,兩次都是正面之和將仍然是0。所以可以考慮先求和火窒。求和時(shí)每行的兩個(gè)值相加硼补,用axis=1來表達(dá)沿行計(jì)算。
test_sum = test_1.sum(axis = 1)
(4)兩次都是正面的概率如何表達(dá)呢熏矿?
先挑出所有符合test_sum=0的值已骇,每個(gè)符合的值表達(dá)為ture,然后將所有ture的值求個(gè)平均數(shù)即代表概率票编。
(test_sum == 0).mean()
2.三次均衡擲硬幣得到一次正面
這個(gè)問題的思考路徑和1.相同褪储,只要將列數(shù)改為3;一次正面即數(shù)值之和為2慧域。
test_2 = numpy.random.randint(2, size = (int(1e6), 3))
test_sum = test_2.sum(axis = 1)
(test_sum == 2).mean()
3.P(H) = 0.6 時(shí)三次非均衡擲硬幣得到一次正面
同上兩個(gè)問題鲤竹,只需將randint改成choice,同時(shí)加上概率即可昔榴。
test_3 = numpy.random.choice([0, 1], p = [0.6, 0.4], size = (int(1e6), 3))
test_sum = test_3.sum(axis = 1)
(test_sum == 2).mean()
4.一次擲骰子得到偶數(shù)
該問題的思考路徑:
(1)如何表達(dá)骰子6個(gè)結(jié)果的數(shù)列辛藻?
以前用的是2,現(xiàn)在改成1~7互订。
test_4 = numpy.random.randint(1, 7, size = 100000)
(2)如何表達(dá)偶數(shù)的意思揩尸?
%2 == 0
(test_4 % 2 == 0).mean()
5.兩次擲骰子得到相同值
該問題的思考路徑:
(1)如何表達(dá)擲骰子的結(jié)果?
tests_1 = numpy.random.randint(1, 7, size = 100000)
(2)如何表達(dá)兩次擲骰子結(jié)果相同屁奏?
可以考慮為每次結(jié)果單獨(dú)設(shè)為一列岩榆,然后讓兩列結(jié)果相等。
tests_2 = numpy.random.randint(1, 7, size = 100000)
(tests_1 == tests_2).mean()
三坟瓢、總結(jié)
作為初學(xué)者勇边,我最開始看第一道題目時(shí)整個(gè)人是蒙圈的,感覺在視頻里學(xué)過的兩個(gè)函數(shù)完全無法解決當(dāng)前的問題折联。思考無解后不得不去看答案粒褒,然后開始琢磨:為什么這么表達(dá)?這么表達(dá)的思考路徑是什么呢诚镰?答案里的表達(dá)能不能換一種方式呢奕坟?
在長(zhǎng)時(shí)間的琢磨后,我想也許還有其他的初學(xué)者可能遇到和我一樣的困惑清笨,于是在簡(jiǎn)書上寫了這樣一篇學(xué)習(xí)筆記月杉,興許能為其他的初學(xué)者提供一些幫助。
這是Udacity數(shù)據(jù)分析(入門)課程的統(tǒng)計(jì)學(xué)lesson8的學(xué)習(xí)筆記一
轉(zhuǎn)載請(qǐng)注明出處