我有一个逃税模型,每轮都应该缴纳税款,例如每 1000 个滴答声。作为占位符,我有这个代码
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]
Run Code Online (Sandbox Code Playgroud)
在 SQL 中,我会做这样的事情:
FOR I IN 1..3000 LOOP 用报价单询问交易者 = I*1000
Netlogo 中是否有类似的功能?关于如何每 1000 滴答发生一次的任何其他提示?
您自己的解决方案将起作用,但不是最佳的。
由于ticks是全局 NetLogo 报告器,而不是traders变量,返回的值ticks mod 1000 = 0不会因每个交易者而异。它要么true适用于所有交易者,要么false适用于所有交易者,因此放入with条款是没有用的(它将为每个交易者重新评估)。
这样做会更快(更清晰):
if ticks mod 1000 = 0 [
ask traders [
do-something
]
]
Run Code Online (Sandbox Code Playgroud)