064 隨機遊走

2021-10-06 19:26:07 字數 2512 閱讀 2655

;隨機遊走模擬

;模擬醉漢隨機遊走,醉漢的起點在(25

,25),並且在周圍徘徊

include irvine32.inc

walkmax =

50startx =

25starty =

25;定義結構體

drunkardwalk struct

path coord walkmax dup

(<0,

0>

) pathsused word 0

drunkardwalk ends

displayposition proto currx:word,curry:word

.data

awalk drunkardwalk <

>

.code

main proc

mov esi,offset awalk

call takedrunkenwalk

call waitmsg

exit

main endp;--

----

----

----

----

----

----

----

----

----

----

takedrunkenwalk proc

local currx:word,curry:word ;自定義臨時變數

;向隨機方向行走(東西南北)

;接收:esi為drunkardwalk的結構指標

;返回:結構初始化為隨機數 ;這裡沒有傳引數所以需要儲存暫存器;--

----

----

----

----

----

----

----

----

----

----

pushad

;用offset運算子獲取path--

---coord物件陣列的位址,將其複製到edi

mov edi, esi

add edi, offset drunkardwalk.path

mov ecx, walkmax ;迴圈計數器

mov currx, startx ;當前x的位置

mov curry, starty ;當前y的位置

again:

;把當前位置插入陣列

mov ax, currx

mov (coord ptr [edi]

).x,ax

mov ax, curry

mov (coord ptr [edi]

).y,ax

invoke displayposition,currx,curry

mov eax,

4;選擇乙個方向(0-

3)call randomrange

.if eax==0;北

dec curry

.elseif eax==1;南

inc curry

.elseif eax==2;西

dec currx

.else

inc currx ;東

.endif

add edi,type coord ;指向下乙個coord

loop again

finish:

mov (drunkardwalk ptr [esi]

).pathsused,walkmax

popad

rettakedrunkenwalk endp;--

----

----

----

----

----

----

----

----

----

----

----

displayposition proc currx:word,curry:word

;顯示當前x和y的位置;--

----

----

----

----

----

----

----

----

----

----

----

.data

commastr byte ",",0

.code

pushad

movzx eax ,currx ;當前x的位置

call writedec

mov edx,offset commastr

call writestring

movzx eax ,curry

call writedec

call crlf

popad

retdisplayposition endp

end main

初識隨機遊走

隨機遊走 random walk 又稱隨機游動或隨機漫步。在我們生活中處處都存在著與random walk有關的自然現象,例如氣體分子的運動,滴入水中的墨水,氣味的擴散等 如圖1.4 random walk是擴散過程的基礎,因此它被廣泛地用於對物理和化學等擴散現象的模擬上。此外,random wal...

隨機遊走演算法

隨機遊走 random walk,縮寫為 rw 又稱隨機游動或隨機漫步,是一種數學統計模型,它是一連串的軌跡所組成,其中每一次都是隨機的。它能用來表示不規則的變動形式,如同乙個人酒後亂步,所形成的隨機過程記錄。因此,它是記錄 隨機活動 的基本統計模型。random walk 是隨機過程 stocha...

0018 隨機遊走

題目大意 考慮給定乙個n個節點的數,每個時刻走到相鄰節點是等概率的,m次詢問,求u到v的期望次數 n,m 1e5 題目解法 根據期望的線性性質,u到v的期望結果是該條路徑上每條邊的乙個端點跳到另乙個端點的期望次數。考慮往父親跳的情況。對於乙個點u,令fu為從u到u的父親節點需要的期望次數。同理,對於...