NetLogo: ¿Cómo asegurarse de que una variable se mantenga en un rango definido?
Tengo algunas variables que pueden heredarse de agentes secundarios mediante una variación de + 0.1 y -0.1 o sin ningún cambio, o aleatoriamente de nuevo. Lo que he hecho es así: (El código es solo un ejemplo)
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
Actualmente tengo que verificar si X de tortuga infantil está siempre dentro del alcance por algo como esto:
if X > 1 [set X X - 0.2]
if X < 0 [set X X + 0.2]
¿Cuál podría ser una mejor manera de hacerlo?
¿Qué pasa si tengo que usar 0.5 normal aleatorio? 0.1 ¿Cómo puedo limitar eso a valores entre 0 y 1? He hecho muchas repeticiones para generar tales números aleatorios. veces que necesito comprobar si está fuera del rango.
por ejemplo :
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
SALIDA es *67 tiempos fuera de 100000000 Tiempo* 67 es el más grande que tengo, tengo 58, 51, ...