Python實現(xiàn)隨機游走的示例代碼
隨機游走是一個數(shù)學對象,稱為隨機或隨機過程,它描述了一條路徑,該路徑由一些數(shù)學空間(如整數(shù))上的一系列隨機步驟組成。隨機游走的一個基本例子是整數(shù)線上的隨機游走,它從0開始,每一步以相等的概率移動+1或-1。其他例子包括分子在液體或氣體中行進時的路徑,覓食動物的搜索路徑,波動股票的價格和賭徒的財務狀況都可以通過隨機行走模型來近似,即使它們在現(xiàn)實中可能不是真正的隨機。
如這些例子所示,隨機游走在許多科學領域都有應用,包括生態(tài)學、心理學、計算機科學、物理學、化學、生物學以及經(jīng)濟學。隨機游走解釋了在這些領域中觀察到的許多過程的行為,因此可以作為記錄隨機活動的基本模型。作為更數(shù)學的應用,pi的值可以通過在基于代理的建模環(huán)境中使用隨機游走來近似。
別再說無聊的理論了。讓我們休息一下,同時了解一些代碼知識。所以,為了編碼隨機游走,我們基本上需要一些Python庫,一些用來做數(shù)學,另一些用來繪制曲線。
所需庫
random
numpy
matplotlib
一維隨機游走
一維隨機游走的一個基本例子是整數(shù)線上的隨機游動,它從0開始,每一步移動+1或-1、概率相等。
# Python code for 1-D random walk. import random import numpy as np import matplotlib.pyplot as plt # Probability to move up or down prob = [0.05, 0.95] # statically defining the starting position start = 2 positions = [start] # creating the random points rr = np.random.random(1000) downp = rr < prob[0] upp = rr > prob[1] for idownp, iupp in zip(downp, upp): down = idownp and positions[-1] > 1 up = iupp and positions[-1] < 4 positions.append(positions[-1] - down + up) # plotting down the graph of the random walk in 1D plt.plot(positions) plt.show()
輸出
二維隨機游走
在高維數(shù)中,隨機游走點的集合具有有趣的幾何性質。事實上,人們得到了一個離散的分形,即在大尺度上表現(xiàn)出隨機自相似性的集合。在小尺度上,可以觀察到由執(zhí)行行走的網(wǎng)格產(chǎn)生的“鋸齒狀”。隨機游走的軌跡是所訪問的點的集合,被認為是一個集合,而不考慮游走何時到達該點。在一個維度中,軌跡只是行走所達到的最小高度和最大高度之間的所有點。
# Python code for 2D random walk. import numpy import pylab import random # defining the number of steps n = 100000 #creating two array for containing x and y coordinate #of size equals to the number of size and filled up with 0's x = numpy.zeros(n) y = numpy.zeros(n) # filling the coordinates with random variables for i in range(1, n): val = random.randint(1, 4) if val == 1: x[i] = x[i - 1] + 1 y[i] = y[i - 1] elif val == 2: x[i] = x[i - 1] - 1 y[i] = y[i - 1] elif val == 3: x[i] = x[i - 1] y[i] = y[i - 1] + 1 else: x[i] = x[i - 1] y[i] = y[i - 1] - 1 # plotting stuff: pylab.title("Random Walk ($n = " + str(n) + "$ steps)") pylab.plot(x, y) pylab.savefig("rand_walk"+str(n)+".png",bbox_inches="tight",dpi=600) pylab.show()
輸出
應用領域
在計算機網(wǎng)絡中,隨機游走可以對在服務器處緩沖的傳輸分組的數(shù)量進行建模。
在群體遺傳學中,隨機游走描述了遺傳漂變的統(tǒng)計特性。
在圖像分割中,隨機游走被用于確定標簽(即,“對象”或“背景”)以與每個像素相關聯(lián)。
在大腦研究中,隨機游走和強化隨機游走被用來模擬大腦中神經(jīng)元放電的級聯(lián)。
隨機游走也被用于對諸如在線社交網(wǎng)絡之類的大規(guī)模在線圖進行采樣。
到此這篇關于Python實現(xiàn)隨機游走的示例代碼的文章就介紹到這了,更多相關Python隨機游走內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python的Tornado框架的異步任務與AsyncHTTPClient
Tornado的奧義就在于異步處理來提高單線程的Python程序執(zhí)行性能,這里我們就來詳解Python的Tornado框架的異步任務與AsyncHTTPClient,需要的朋友可以參考下2016-06-06Tornado協(xié)程在python2.7如何返回值(實現(xiàn)方法)
下面小編就為大家?guī)硪黄猅ornado協(xié)程在python2.7如何返回值(實現(xiàn)方法)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06Python+Appium實現(xiàn)自動化清理微信僵尸好友的方法
這篇文章主要介紹了Python+Appium實現(xiàn)自動化清理微信僵尸好友的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02