【问题标题】:Set probability range for heading in Netlogo在 Netlogo 中设置航向的概率范围
【发布时间】:2018-01-11 07:20:36
【问题描述】:

我的问题包括两件事:

  1. 如何为标题编码 4 个不同的范围

    • 一个。 315 - 45
    • 乙。 46 - 135
    • c。 136 - 225
    • d. 226- 314

2.如何编码选择这个范围的概率。 (我在下面附上图片以使其清楚)

我想做的是:

a) 用于标题 a;海龟选择这个范围的概率应该是85%

b) 对于标题 b、c 和 b,将有 5% 的海龟选择该标题的任何一侧

由于我不善于用文字解释,所以我附上了我打算做什么的图片

这是我的代码

to random-behave

  let p random-float 100

  if (p >= 85)
  [set  heading heading + 45
    set heading heading - 45]

  if (p >= 15)
   [set  heading other heading + 45
    set heading other heading - 45]

    if not can-move? 1 [ rt 180 ]

   fd 1
  ]
end

我尝试实现rnd extension,但我不知道应该把它放在哪里。如果可能的话,有没有办法根据标题的程度对标题进行编码,而不是if (p >=15)?由于other 不能在这里使用。

提前谢谢你。

【问题讨论】:

    标签: range probability netlogo heading


    【解决方案1】:

    您不需要rnd 扩展,您使用random-float 的方法很好。但是,您需要使用if-else 而不是if,因为返回的>85 的随机数“p”也将>15。相反,您需要将 0 到 100 的区间分解为适当长度的片段。这未经测试。

    to random-behave
    
      let p random-float 100
    
      if-else p <= 85
      [ print "got up to 85" ]
      [ if-else p <= 90
        [ print "got 85 to 90"]
        [ if-else p <= 95
          [ print "got 90 to 95" ]
          [ print "got 95 to 100" ]
        ]
      ]
    
      if not can-move? 1 [ rt 180 ]
      fd 1
    end
    

    您的heading 计算也有错误。我只回答了概率部分,因为那是你特别问的。但是,如果您需要有关 heading 的帮助,您应该提出一个新问题。

    【讨论】:

    • 非常感谢您帮助我。这段代码适用于我计划做的事情。我将创建有关标题的新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    相关资源
    最近更新 更多