Passeggiate casuali

Senza memoria, a passo costante in più direzioni, simmetriche e non: simulazioni.

Consideriamo il caso in cui l’ubriaco si muove, eventualmente con diversa probabilità, a passo costante, in più direzioni e versi in cui si può suddividere equamente l'angolo giro.

Se è l'elenco delle probabilità di scegliere uno degli angoli 0.00,1.05,2.09,3.14,4.19,5.24 radianti, una passeggiata di passi potrà avere un tragitto come il seguente.


Per creare una lista di queste scelte, considerando ordinati in verso antiorario gli angoli associati alla lista p delle probabilità, con Javascript si può procedere nel modo seguente.
pCum = p.map((sum => value => sum += value)(0)); scelte = new Array(n).fill().map(x => {aCaso=Math.random(); k=0; while (aCaso>pCum[k]) k++; return k} )
Se le varie direzioni sono scelte con probabilità , con passi si potrà ottenere una sequenza di scelte come ad esempio:

mentre le posizioni occupate successivamente per effetto di queste scelte

che possono essere calcolate come somma cumulata

p = v.reduce( (total,x,i)=> [...total,[total[i][0]+Math.cos(2*x*Math.PI/n),total[i][1]+Math.sin(2*x*Math.PI/n)]], [[0,0]] )
o anche, solo la posizione finale
posFin=v.reduce((total,x)=> [total[0]+ Math.cos(2*x*Math.PI/n),total[1]+Math.sin(2*x*Math.PI/n)],[0,0])

Se invece consideriamo che la direzione-verso tra cui effettuare la scelta sia relativa a quella precedentemente seguita per raggiungere la posizione attuale abbiamo una variante di passeggiata casuale in particolare quando non vi è equiprobabilità nella scelta.

Se la passeggiata è di passi compiuti nelle varie direzioni, ciascuna con probabilità di essere scelta, avremo percorsi come il seguente.


❯❯