首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Netlogo如何让每1000次滴答发生一些事情?

Netlogo如何让每1000次滴答发生一些事情?
EN

Stack Overflow用户
提问于 2013-12-18 19:18:19
回答 3查看 3.1K关注 0票数 4

我有一个逃税模型,每一轮都要交税,例如每1000个刻度。作为占位符,我有以下代码

代码语言:javascript
运行
复制
ask traders with [ticks  = 1000 or ticks = 2000 or ticks = 3000];; Can this be set using a seed?
    [reset-parameters
       pay-taxes
       revise-behavior
       reset-turnover]

在SQL中,我会设置这样做:

对于i IN 1..3000循环,请使用ticks = I*1000询问交易员。

Netlogo中有没有类似的功能?关于如何让某件事每1000个滴答发生一次,还有其他的提示吗?

EN

回答 3

Stack Overflow用户

发布于 2013-12-19 05:09:08

您自己的解决方案可以工作,但不是最优的。

由于ticks是全局NetLogo报告器,而不是traders变量,因此ticks mod 1000 = 0返回的值不会因每个交易者而异。它要么是所有交易者的true,要么是所有交易者的false,所以在with子句中放入没有任何用处(将为每个交易者重新计算它)。

这样做会更快(也更清晰):

代码语言:javascript
运行
复制
if ticks mod 1000 = 0 [
  ask traders [
    do-something
  ]
]
票数 6
EN

Stack Overflow用户

发布于 2013-12-18 19:28:45

最后我想出了一个简单的解决方案:

代码语言:javascript
运行
复制
 ask traders with [ticks mod 1000 = 0]
票数 2
EN

Stack Overflow用户

发布于 2016-02-26 01:10:45

这个问题的一个非常简单的解决方案,甚至可以在以后跟踪,就是这样的代码

海龟-自己的交易时间;;用于计算时间或可以更改任何变量

to go;;或者在哪里设置交易时间tradetime +1询问交易员[if (tradetime =1000)做某事结束

或者,如果您只想为交易员提供该值,那么您可以这样做

乌龟-自己的交易时间

去询问交易员设置交易时间tradetime +1询问交易员[if (tradetime =1000)做点什么结束希望这会有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20656679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档