2017-02-25 5 views
0

sagen wir, ich ListeNetLogo jedes Mal unterschiedliche Zufallszahl aus bestimmten Liste erhalten

let mylist [0 1 2 3] 

haben, und ich möchte aus diesem Array Zufallszahl erzeugen, die in jeder als vorherige ticken anders.

Beispiel: ein Tick - erzeugt 0 Tick zwei - erzeugt 2 Tick drei - erzeugt 1 Tick vier - erzeugt 3

Jetzt habe ich

let mylist [0 1 2 3] 
let x one-of mylist 

Aber das gibt zum Beispiel für zwei aufeinanderfolgende Ticks Nummer 0.

Irgendwelche Tipps? Vielen Dank.

Antwort

0

Eine Möglichkeit besteht darin, die Nummer zu speichern, die im letzten Häkchen verwendet wurde, sie mit der im aktuellen Häkchen verwendeten Zahl zu vergleichen und eine andere zu wählen, wenn sie identisch ist.

globals [ 
    previous_number 
] 

to generate 

    let current_number previous_number 
    let mylist [ 0 1 2 ] 
    while [ current_number = previous_number ] [ 
    set current_number one-of mylist 
    ] 
    set previous_number current_number 
    print current_number 

end 
Verwandte Themen