Netlogo: Atribuir variável usando probabilidades
Como atribuir uma string ou variável inteira à tartaruga, usando probabilidades das variáveis em um grupo / lista? Por exemplo, é 0,4 de probabilidade de que uma variável específica seja usada de um grupo / lista específico. A função seleciona aleatoriamente a variável com base na probabilidade. Preciso usar o mesmo método depois para escolher uma variável (string) de uma lista de acordo com a probabilidade. Em python, deve ser:
import random
def random_value(probability_list, values):
r = random.random()
index = 0
while(r >= 0 and index < len(probability_list)):
r -= probability_list[index]
index += 1
value=values[index - 1]
value_index=index-1
return value,value_index
Eu tentei no Netlogo como abaixo (obtém erro que o índice é -1), mas existe uma maneira melhor?
globals [random_nr probabilities some_list index]
to initialize-variables
set some_list[]
set probabilities[]
end
to random_pick
set random_nr random-float 1
set probabilities [0.1 0.2 0.4 0.3]
set some_list ["String1" "String2" "String3" "String4"]
set index 0
while [(random_nr >= 0) and (length probabilities < index)] [
set random_nr random_nr - item index probabilities
set index index + 1 ]
set index index - 1
end