我有一种逃税模式,应该每周缴纳税款,例如:每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]
在SQL中,我会设置类似的东西:
FOR I IN 1..3000 LOOP 向交易者询问ticks = I * 1000
Netlogo中是否有类似的功能?关于如何使每1000个蜱发生一些事情的任何其他提示?
答案 0 :(得分:4)
您自己的解决方案可行,但不是最佳解决方案。
由于ticks
是全局NetLogo报告者,而不是traders
变量,因此ticks mod 1000 = 0
返回的值不会因每个交易者而异。对于所有这些,它将是true
或者对于所有这些都是false
,所以没有使用with
子句(将为每个交易者重新评估它) )。
这样做会更快(更清晰):
if ticks mod 1000 = 0 [
ask traders [
do-something
]
]
答案 1 :(得分:2)
最后把头包裹在一个简单的溶液中:
ask traders with [ticks mod 1000 = 0]
答案 2 :(得分:1)
这个问题的一个非常简单的解决方案,甚至可以在以后跟踪,就像这样的代码
turtles-own [tradetime] ;;用于计算时间或可以更改任何变量
去;;或者去哪里 设置交易时间交易时间+ 1 询问交易员[if(tradetime = 1000)[do-something] 端
或者如果您只想为交易者提供该值,那么您可以这样做
海龟自己[交易时间] 去吧 询问交易员[设置交易时间交易时间+ 1] 询问交易员[if(tradetime = 1000)[do-something] 结束 希望这有帮助