112、復(fù)盤:隨機(jī)漫步

案例:從0開始,步長1和-1出現(xiàn)的概率相等。通過內(nèi)置的random模塊以純python的方式實(shí)現(xiàn)1000步的隨機(jī)漫步:

圖片發(fā)自簡書App

圖片發(fā)自簡書App

在In[1]:中代碼random.randint()表示隨機(jī)生一個(gè)整數(shù)int類型,可以指定這個(gè)整數(shù)的范圍,同樣有上限和下限值。

從代碼運(yùn)行的結(jié)果看出,隨機(jī)漫步就是把各步數(shù)的累計(jì)和用一個(gè)數(shù)組運(yùn)算來實(shí)現(xiàn)。

我用np.random模塊一次性隨機(jī)產(chǎn)生1000個(gè)“擲硬幣的結(jié)果,將其分別設(shè)置為1或-1,然后計(jì)算累計(jì)和:

圖片發(fā)自簡書App
圖片發(fā)自簡書App
可以求出walk_2中的最大值和最小值:
圖片發(fā)自簡書App
假設(shè)我們要知道本次隨機(jī)漫步需要多久才能距離初始0點(diǎn)至少10步遠(yuǎn)(任一方向均可)。np.abs(walk_2) >= 10 可以得到一個(gè)布爾型數(shù)組,它表示的是距離是否達(dá)到或超過10,使用argmax函數(shù)獲取第一個(gè)10或-10的索引。argmax返回的是該布爾型數(shù)組第一個(gè)最大值的索引(True就是最大值):
圖片發(fā)自簡書App

一次模擬多個(gè)隨機(jī)漫步

使用numpy.random函數(shù)傳入一個(gè)二元元組生成一個(gè)二維數(shù)組,然后一次性計(jì)算5000個(gè)隨機(jī)漫步過程(一行一個(gè))的累積和:

圖片發(fā)自簡書App
圖片發(fā)自簡書App
計(jì)算所有漫步過程的最大值和最小值:
圖片發(fā)自簡書App
計(jì)算30或-30的最小穿越時(shí)間,使用any函數(shù)檢查是否5000個(gè)過程都達(dá)到30:
圖片發(fā)自簡書App
利用布爾型數(shù)組選出穿越30或-30的隨機(jī)漫步(行),并調(diào)用argmax函數(shù)在軸1上獲取穿越時(shí)間:
圖片發(fā)自簡書App

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容