Matplotlib 隨機漫步

2021-10-08 03:46:10 字數 2560 閱讀 8178

隨機漫步是這樣行走得到的路徑:每次行走都完全是隨機的,沒有明確的方向,結果是由一系列隨即決策決定的。舉個比較生動的例子:隨機漫步就是螞蟻在暈頭轉向的情況下,每次都沿隨機的方向前行所經過的路徑。

在自然界、物理學、生物學、化學和經濟領域,隨機漫步都有其實際用途。例如:漂浮在水滴上的花粉因不斷受到水分子的擠壓而在水面上移動。水滴中的分子運動是隨機的,因此花粉在水面的運動路徑猶如隨機漫步。好了,接下來我們就做乙個實際的例子來感受一下吧。

random_walk.py

from random import choice

class

randomwalk()

:"""乙個生成隨機漫步資料的類"""

def__init__

(self,num_points=

5000):

"""初始化隨機漫步的屬性"""

#儲存隨機漫步次數的變數

self.num_points=num_points

#所有隨機漫步都始於(0,0)

#兩個列表,分別儲存隨機漫步經過的每個點的x和y的座標

self.x_values =[0

] self.y_values =[0

]def

fill_walk

(self)

:"""計算隨機漫步包含的所有點"""

#不斷漫步,直到列表達到指定的長度

while

len(self.x_values)

< self.num_points:

#決定前進方向以及沿這個方向前進的距離

x_direction = choice([1

,-1]

) x_distance = choice([0

,1,2

,3,4

])x_step = x_direction * x_distance

y_direction = choice([1

,-1]

) y_distance = choice([0

,1,2

,3,4

])y_step = y_direction * y_distance

#拒絕原地踏步

if x_step ==

0and y_step ==0:

continue

#計算下乙個點的x和y值

next_x = self.x_values[-1

]+ x_step

next_y = self.y_values[-1

]+ y_step

rw_visual.py

import matplotlib.pyplot as plt

from random_walk import randomwalk

#只要程式處於活動狀態,就不斷地模擬隨機漫步

while

true

:#建立乙個randomwalk例項,並將其包含的點都繪製出來

rw = randomwalk(

50000

) rw.fill_walk(

)# plt.scatter(rw.x_values,rw.y_values,s=15)

#設定繪圖視窗的尺寸

plt.figure(figsize=(10

,6))

#range生成了乙個數字列表,其中包含的數字個與漫步包含的點數相同

point_numbers =

list

(range

(rw.num_points)

)#edgecolor=none以刪除每個點周圍的輪廓,最終的隨機漫步圖從淺藍色漸變為深藍色

plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.blues,edgecolor=

'none'

,s=1

)#突出起點和終點

plt.scatter(0,

0,c=

'green'

,edgecolors=

'none'

,s=100

) plt.scatter(rw.x_values[-1

],rw.y_values[-1

],c=

'red'

,edgecolors=

'none'

,s=100

)#隱藏座標軸

plt.axes(

).get_xaxis(

).set_visible(

false

) plt.axes(

).get_yaxis(

).set_visible(

false

) plt.show(

) keep_running =

input

("make another walk?(y/n):"

)if keep_running ==

'n':

break

python隨機漫步 Python 隨機漫步

建立randomwalk 類 我們將使用python來生成隨機漫步資料,再使用matplotlib以引入矚目的方式將這些資料呈現出來 首先建立類randomwalk from random importchoiceclassrandomwalk 乙個生成隨機漫步資料的類 def init self,...

隨機漫步 random walk

有一類問題總稱為 隨機漫步 random walk 問題,這類問題長久以來吸引著數學界的興趣。所有這些問題即使是最簡單的解決起來也是極其困難的。而且它們在很大程度上還遠沒有得到解決。乙個這樣的問題可以描述為 在矩形的房間裡,鋪有n m塊瓷磚,現將乙隻 醉酒的 蟑螂放在地板中間乙個指定方格裡。蟑螂隨機...

Python matplotlib隨機漫步

隨機漫步的最大距離 self.num poimts num points 隨機漫步的 腳步 self.x 0 self.y 0 def fill walk self 生成隨機漫步的腳印 while len self.x self.num poimts 前進方向 x direction choice ...