NetLogo不以随机间隔创建海龟

NetLogo不以随机间隔创建海龟,netlogo,Netlogo,我试图在NetLogo中创建一个过程,每0-60秒创建一个海龟代理。使用以下代码,然后在循环中运行该过程,似乎随机生成器不工作。图表(代理到刻度)是线性的 to go every random 60 [crt 1 [ set xcor random 20 - 10 set ycor random 20 - 10 ] ] plot count turtles end 但如果我要这样做: to go every 2 [crt 1 [ set xcor ran

我试图在NetLogo中创建一个过程,每0-60秒创建一个海龟代理。使用以下代码,然后在循环中运行该过程,似乎随机生成器不工作。图表(代理到刻度)是线性的

to go
  every random 60 [crt 1 [
    set xcor random 20 - 10
    set ycor random 20 - 10
  ]
]
  plot count turtles
end
但如果我要这样做:

to go
  every 2 [crt 1 [
    set xcor random 20 - 10
    set ycor random 20 - 10
  ]
]
  plot count turtles
end
它似乎像预期的那样工作。每2秒就有一只新海龟诞生


我做错什么了吗?

您的第一段代码正在做它应该做的事情,几乎每一刻都在创建一只乌龟

这可能不是直观的,但请注意,“go”每秒被调用数千次(取决于您的机器速度)。每次调用它时,它都会生成一个介于0和60之间的新随机数。所以,它很有可能会生成数字0。如果是这样的话,那么它在那一刻创造了一只乌龟

例如,从“永远”按钮运行此代码,查看打印出的内容:

to go
  every random 60 [
    show timer ;shows how long its been since last reset-timer
    reset-timer
  ]
end
我得到:

observer: 0.016
observer: 0.0060
observer: 0.016
observer: 0
observer: 0
observer: 0
observer: 0.0050
observer: 0
observer: 0
observer: 0

在我的笔记本电脑上。

你的第一段代码就是做它应该做的事情,几乎每一刻都在创造一只乌龟

这可能不是直观的,但请注意,“go”每秒被调用数千次(取决于您的机器速度)。每次调用它时,它都会生成一个介于0和60之间的新随机数。所以,它很有可能会生成数字0。如果是这样的话,那么它在那一刻创造了一只乌龟

例如,从“永远”按钮运行此代码,查看打印出的内容:

to go
  every random 60 [
    show timer ;shows how long its been since last reset-timer
    reset-timer
  ]
end
我得到:

observer: 0.016
observer: 0.0060
observer: 0.016
observer: 0
observer: 0
observer: 0
observer: 0.0050
observer: 0
observer: 0
observer: 0

在我的笔记本电脑上。

这里有一个想法,不要每次都重新生成一个新的随机数,在达到计时器后重新生成它。代码:

globals [t]
to setup
  set t random 60
end
to go
  every t [
    set t random 60
    crt 1 [
      set xcor random 20 - 10
      set ycor random 20 - 10
    ]
  ]
end

我没有测试它,但它应该解决Jose提出的问题。

这里有一个想法,不要每次都重新生成一个新的随机数,在达到计时器后重新生成它。代码:

globals [t]
to setup
  set t random 60
end
to go
  every t [
    set t random 60
    crt 1 [
      set xcor random 20 - 10
      set ycor random 20 - 10
    ]
  ]
end

我还没有测试它,但它应该解决Jose提出的问题。

你说的“每0-60秒创建一只海龟”是什么意思?是每x秒创建一个0我正在尝试创建一个均匀分布的随机变量。要在0秒内每x秒创建一只乌龟,您所说的“每0-60秒创建一只乌龟”是什么意思?是每x秒创建一个0我正在尝试创建一个均匀分布的随机变量。要为0Hi Jose每x秒创建一只海龟,感谢您的漂亮命令。有没有办法修复代码,使其具有更统一的随机数?嗨,Jose,谢谢你的漂亮命令。有没有办法修复代码,使其具有更统一的随机数?这正是我要寻找的。很高兴它奏效了。没有像我提到的那样测试它,但是逻辑对我来说是有意义的。祝你的NetLogo项目好运!这正是我想要的。很高兴它成功了。没有像我提到的那样测试它,但是逻辑对我来说是有意义的。祝你的NetLogo项目好运!