在 Netlogo 中设置标题的概率范围
Set probability range for heading in Netlogo
我的问题包括两件事:
如何为标题编码 4 个不同的范围
- 一个。 315 - 45
- b。 46 - 135
- c。 136 - 225
- d。 226- 314
2.how 编码选择此范围的概率。
(我在下面附上图片以使其清楚)
我想做的是:
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
不能在这里使用。
提前致谢。
您不需要 rnd
扩展,您使用 random-float
的方法很好。但是,您需要使用 if-else
而不是 if
,因为返回的随机数 'p' >85 也将 >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
.
方面的帮助,您应该问一个新问题
我的问题包括两件事:
如何为标题编码 4 个不同的范围
- 一个。 315 - 45
- b。 46 - 135
- c。 136 - 225
- d。 226- 314
2.how 编码选择此范围的概率。 (我在下面附上图片以使其清楚)
我想做的是:
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
不能在这里使用。
提前致谢。
您不需要 rnd
扩展,您使用 random-float
的方法很好。但是,您需要使用 if-else
而不是 if
,因为返回的随机数 'p' >85 也将 >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
.