Но это возможно сделать по существу так, как вы предлагаете. Я к этому здесь, но было бы лучше использовать явные аргументы.
азначить строковую или целочисленную переменную черепахе, используя вероятности переменных в группе / списке? Например, вероятность 0,4, что одна конкретная переменная используется из конкретной группы / списка. Функция случайным образом выбирает переменную на основе вероятности. Мне нужно использовать тот же метод впоследствии, чтобы выбрать переменную (строку) из списка в соответствии с вероятностью. В питоне это должно быть:
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
Я попробовал это в Netlogo, как показано ниже (получить ошибку, индекс равен -1), но есть ли лучший способ?
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