【问题标题】:Does netlogo extension rngs work in the new version?netlogo 扩展 rngs 可以在新版本中使用吗?
【发布时间】:2019-12-07 11:05:19
【问题描述】:

在我上一篇文章的基础上,我尝试使用 netlogo 的 rngs 扩展来绘制随机 beta 分布,但似乎没有一个原语对我有用。这个扩展(为 netlogo 4.1 构建)是否适用于新版本?如果没有,是否有新的扩展可以帮助我绘制分布?

如果是这样,那么我必须假设这是我的代码错误。根据指南:https://github.com/NetLogo/NetLogo/wiki/Extensions 我的代码目前是:

extensions [rngs]

to setup
make_turtles
end

to make_turtles
create-turtles 10000


ask turtles 
[
 rngs: init
 rngs: set-seed
 let dist rngs: rnd-beta random-float 999 0.9 0.5
 set target_Factor dist
]
end

这是我第一次使用扩展程序,所以我很可能对它们的工作方式感到困惑,即使我有 RTFM,但对我来说,这就是指南所说的......

错误总结: 对于上面的代码,我得到“没有定义任何名为 RNGS” 如果我删除“:”,我会得到“没有定义任何名为 init 的东西”,所以在我看来它没有正确读取原语,还是我使用错误?

【问题讨论】:

标签: netlogo


【解决方案1】:

您似乎有语法错误:

rngs: init 应该是 rngs:init。注意冒号后面没有空格。

all 扩展在调用其过程(即table:makearray:item)时应遵循“冒号后无空格规则”。

【讨论】:

  • 总是小事!
【解决方案2】:

对于那些将来尝试这样做的人,这里是正确的代码(我已经使用直方图插图仔细检查了它)。我希望随机数种子和流 ID 有所不同,所以我将它们设置为一些任意大数的随机浮点数。

extensions [rngs]

turtles-own [target_factor]
to setup
  clear-all
make_turtles
end

to make_turtles
create-turtles 1000

ask turtles 
[
 rngs:init
 let stream_id random-float 999
 let seed random-float 999
 rngs:set-seed stream_id seed
 let dist rngs:rnd-beta  stream_id 0.8 0.5
 set target_Factor dist
]
set-current-plot "plot 1"
histogram [target_factor] of turtles
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2011-07-11
    • 2020-04-01
    • 1970-01-01
    • 2021-12-23
    • 2011-04-27
    • 1970-01-01
    相关资源
    最近更新 更多