Nessuna coordinata ripetuta nel complesso di walker casuale

0

Sto simulando un insieme di camminatori casuali in 2D in python, ho impostato le coordinate [x, y] dei miei camminatori in modo da essere gaussiani in una griglia 2D, quindi utilizzare un array rand di -1 e +1 per spostarsi verso l'alto in basso a sinistra:

N=20 #number of walkers

Coor[:,1]=100*random(N) #X's coordinates
Coor[:,2]=100*random(N) #Y's coordinates

Per rendere la simulazione più realistica voglio imporre che nessuno dei walker possa avere le stesse coordinate XY di un altro allo stesso tempo, così come ad esempio se in un determinato momento dopo le mosse casuali il mio array di coordinate appare così:

Coor[:,1]=([1,3,5,7,7,8,....]) 
Coor[:,2]=([4,8,3,2,2,9,....]) 

allora il 4 ° e il 5 ° elemento hanno le stesse coordinate in X e Y, quindi Come trovo quando ciò accade e cambi uno dei valori in modo che non sia in quella situazione?

    
posta Jared Lo 27.10.2014 - 16:47
fonte

1 risposta

1

Invece di aggiornare le coordinate aggiungendo un vettore randomizzato di -1 e +1, puoi semplicemente scorrere su chi cammina e selezionare una direzione casuale da quelle attualmente disponibili. In questo modo il tuo sistema non entra mai in stato non valido, quindi non sono necessari controlli aggiuntivi. Non posso provarlo, ma sospetto che la soluzione vettoriale pura per il problema potrebbe anche non esistere.

Inoltre, la tua soluzione attuale dà ai camminatori solo 4 possibili direzioni (le diagonali) per spostarsi. Non sono sicuro che questa fosse l'intenzione.

    
risposta data 27.10.2014 - 20:41
fonte

Leggi altre domande sui tag