NetLogo: Jak upewnić się, że zmienna pozostaje w zdefiniowanym zakresie?
Mam kilka zmiennych, które można odziedziczyć do agentów podrzędnych przez odmianę + 0,1 i -0,1 lub bez żadnych zmian, lub ponownie losowo, co zrobiłem, jest następujące: (Kod jest tylko przykładem)
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
Obecnie muszę sprawdzić, czy X dziecięcego żółwia zawsze znajduje się w zasięgu podobnym do tego:
if X > 1 [set X X - 0.2]
if X < 0 [set X X + 0.2]
Co może być lepszym sposobem na zrobienie tego?
Co zrobić, jeśli muszę użyć losowej normalnej wartości 0,5 0,1, jak mogę ograniczyć to do wartości z przedziału od 0 do 1, wykonałem wiele powtórzeń generowania takich liczb losowych. razy, które muszę sprawdzić, czy jest poza zasięgiem.
na przykład :
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
WYJŚCIE to *67 razy na 100000000 czasu* 67 to największy, jaki dostałem, mam 58, 51, ...