NetLogo: Como garantir que uma variável permaneça em um intervalo definido?
Eu tenho algumas variáveis que podem ser herdadas para agentes filhos por uma variação de + 0.1 e -0.1 ou sem quaisquer alterações ou aleatórias novamente, o que eu fiz é assim: (O código é apenas um exemplo)
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
Atualmente eu tenho que verificar se X da tartaruga criança está sempre dentro do alcance por algo como isto:
if X > 1 [set X X - 0.2]
if X < 0 [set X X + 0.2]
Qual poderia ser a melhor maneira de fazer isso?
E se eu tiver que usar random-normal 0.5 0.1, como posso limitar isso a valores entre 0 e 1, eu fiz muitas repetições de gerar tais números aleatórios Eu acho que a qualidade de random-normal é boa e não há muitos vezes que preciso verificar se está fora do intervalo.
por exemplo :
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
SAÍDA é *67 vezes fora do tempo de 100000000* 67 é o maior que eu tenho, eu tenho 58, 51, ...