NetLogo: Wie kann sichergestellt werden, dass eine Variable in einem definierten Bereich bleibt?
Ich habe ein paar Variablen, die durch eine Variation von + 0.1 und -0.1 oder ohne Änderungen an untergeordnete Agenten vererbt werden können, oder wieder zufällig. Was ich getan habe, ist wie folgt: (Der Code ist nur ein Beispiel)
to reproduce
ask turtle 1
[
let X-Of-Mother X
hatch 1
[
set X one-of (list (X-Of-Mother) (X-Of-Mother + 0.1) (X-Of-Mother - 0.1) (random-float 1))
]
]
end
Momentan muss ich überprüfen, ob X der Kinderschildkröte immer in Reichweite ist:
if X > 1 [set X X - 0.2]
if X < 0 [set X X + 0.2]
Was könnte ein besserer Weg sein, dies zu tun?
Was ist, wenn ich Random-Normal 0.5 0.1 verwenden muss, wie kann ich das auf Werte zwischen 0 und 1 beschränken? Ich habe viele Wiederholungen der Erzeugung solcher Zufallszahlen durchgeführt. Ich denke, die Qualität von Random-Normal ist gut und es gibt nicht so viele Mal, dass ich überprüfen muss, ob es außerhalb des Bereichs ist.
zum Beispiel :
to test
Let c 0
let b 0
repeat 100000000
[Set b random-normal 0.5 0.1
if b > 1 [set C C + 1]
If b < 0 [set C C + 1]
]
print c
end
AUSGABE ist *67 Zeiten außerhalb von 100000000 Zeit* 67 ist die größte, die ich bekommen habe, ich habe 58, 51, ...