溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何實(shí)現(xiàn)隨機(jī)游走

發(fā)布時(shí)間:2021-03-30 09:32:04 來(lái)源:億速云 閱讀:335 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了Python如何實(shí)現(xiàn)隨機(jī)游走,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1、單一的500步隨機(jī)游走的例子,從0開(kāi)始,步長(zhǎng)為1和-1,且以相等的概率出現(xiàn)。

注:需要python的內(nèi)置函數(shù)random,不需安裝,直接導(dǎo)入即可

import random

 -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import random

position=0#設(shè)置初始位置
walk=[]#保存位置
steps=500#設(shè)置步數(shù)為500步
for i in range(steps):
  step=1 if random.randint(0,1) else -1#如果隨機(jī)值等于0則step為1,反之為0
  position+=step#改變位置(正,負(fù))
  walk.append(position)
fig=plt.figure()#生成窗口
ax=fig.add_subplot(211)#返回一個(gè)axes對(duì)象,里面的參數(shù)abc表示在一個(gè)figure窗口中,有a行b列個(gè)小窗口,然后本次plot在第c個(gè)窗口中
ax.plot(walk)

ax=fig.add_subplot(223)
ax.plot(walk)

ax=fig.add_subplot(224)
ax.plot(walk)
plt.show()
#print walk#打印每一次的累積步數(shù)

運(yùn)行如下:

Python如何實(shí)現(xiàn)隨機(jī)游走

2、實(shí)現(xiàn)多個(gè)隨機(jī)游走

需要用到numpy庫(kù)

#-*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np

nwalks = 8
nsteps = 500
draws = np.random.randint(0, 2, size=(nwalks, nsteps)) # 0 or 1
steps = np.where(draws > 0, 1, -1)#每一次的步長(zhǎng)
walks = steps.cumsum(1)#累積步數(shù)

fig = plt.figure()
ax = fig.add_subplot(111)
for i in range(nwalks):
  ax.plot(walks[i])

plt.show()

Python如何實(shí)現(xiàn)隨機(jī)游走

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python如何實(shí)現(xiàn)隨機(jī)游走”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI