Passeggiate casuali

Senza memoria, a passo costante in due direzioni ortogonali, simmetriche: simulazioni.

Per primo analizziamo il caso in cui l’ubriaco si muove, con uguale probabilità e passo costante, nei due versi di due direzioni ortogonali.

Siano ad esempio i passi da compiere.


Per creare una lista di queste scelte con Javascript
dP = new Array(n).fill().map( () => (Math.random() < 0.5)? [2*Math.round(Math.random()) - 1, 0]: [0, 2*Math.round(Math.random()) - 1] )
oppure, più semplicemente:
dP_0 = [[1,0],[0,1],[-1,0],[0,-1]]; dP = new Array(n).fill().map(() => dP_0[Math.floor(Math.random()*4)])
Così ad esempio per passi si ottiene:


Le posizioni occupate successivamente per effetto di queste scelte può così essere calcolato come somma cumulata ottenendo

Le cumulate si ottengono ad esempio nel modo seguente

P = v.reduce((P,dP,i) => [...P, [P[i][0] + dP[0], P[i][1] + dP[1]] ] ,[[0,0]] )
La sola posizione finale si può ottenere nel modo seguente.
P_fin = v.reduce((P,dP) => [P[0]+ dP[0], P[1]+dP[1]], [0,0])

Possiamo avere una valutazione approssimata del numero di modi di raggiungere un certo punto in passi ripetendo passeggiate e moltiplicando per $4^\text{numero di passi}$ la frequenza relativa con cui si raggiunge una posizione finale.

❯❯