【发布时间】:2017-06-13 13:38:24
【问题描述】:
如何使用组/列表中变量的概率将字符串或整数变量分配给turtle?例如,从特定组/列表中使用一个特定变量的概率为 0.4。该函数根据概率随机选择变量。之后我需要使用相同的方法根据概率从列表中选择一个变量(字符串)。 在python中应该是:
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
【问题讨论】:
-
一些一般性建议:如果你发现自己搞乱了索引和 while 循环,你可能做错了;几乎总有更好的、更类似于 NetLogo 的方式。
标签: list variables random probability netlogo