小编Net*_*ety的帖子

Netlogo:使用概率分配变量

如何使用组/列表中变量的概率将字符串或整数变量分配给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
Run Code Online (Sandbox Code Playgroud)

我在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 …
Run Code Online (Sandbox Code Playgroud)

random variables list probability netlogo

7
推荐指数
1
解决办法
754
查看次数

标签 统计

list ×1

netlogo ×1

probability ×1

random ×1

variables ×1