基于列表中概率的NetLogo随机值

基于列表中概率的NetLogo随机值,netlogo,Netlogo,我试图弄明白,如何在随机样本上创建具有相等分布的输出。基于下面的代码片段,函数为列表中的三个项目创建三个随机数。这些值相互比较后得到,它们的最大值得到count。然而,我试图找出如何通过概率控制随机性,例如50%50 25%25%25 N=100 to numberGenerator let i 0 set counter_red 0 set counter_blue 0 set counter_green 0 while [i < 100] [ let n

我试图弄明白,如何在随机样本上创建具有相等分布的输出。基于下面的代码片段,函数为列表中的三个项目创建三个随机数。这些值相互比较后得到,它们的最大值得到count。然而,我试图找出如何通过概率控制随机性,例如50%50 25%25%25 N=100

to numberGenerator

  let i 0
  set counter_red 0
  set counter_blue 0
  set counter_green 0

  while [i < 100] [
    let numberS_red1 random-float 1
    let numberS_blue1 random-float 1
    let numberS_green1 random-float 1

    let usedcolors [red blue green]
    let OPstrength1 ( list numberS_red1 numberS_blue1 numberS_green1)
    let strategies (map list usedcolors OPstrength1)

    print strategies

    if (numberS_red1 > numberS_blue1) and (numberS_red1 > numberS_green1)
    [set counter_red counter_red + 1]

    if (numberS_blue1 > numberS_red1) and (numberS_blue1 > numberS_green1)
    [set counter_blue counter_blue + 1]

    if (numberS_green1 > numberS_red1) and (numberS_green1 > numberS_blue1)
    [set counter_green counter_green + 1]

    set i i + 1
    ]

  print counter_red
  print counter_blue
  print counter_green 

end
计数器红色=26

计数器蓝色=36

计数器_绿色=38


您可以使用netlogo random normal命令实现一个新功能,该命令指定一种颜色。函数的文档位于

当试图为这样的固定比例创建函数时,使用随机法线通常是一个非常糟糕的主意,因为很难控制不同范围内的比例。相反,如果OP不想使用rnd扩展,您应该推荐随机浮点均匀分布。通过实际构造一个示例函数,可以改进这个答案。