将全局添加到前一个报价单的值,每个报价单
Add a global to the value of the previous tick, every tick
我在做一个项目,需要我分补贴。我有两个品种,工业和港口。现在,我希望每个滴答声都将补贴添加到之前的金额中,而不是仅仅选择那个特定滴答声的值。我得到这个:
to go
if file-at-end? [ stop ]
file-open "oil price.csv"
set oil-price csv:from-row file-read-line
file-open "co2 price.csv"
set co2-price csv:from-row file-read-line
file-open "electricity price.csv"
set electricity-price csv:from-row file-read-line
;; model update goes here
distribute-subsidies
ask industries [update-profit]
if ticks >= 32 [stop]
tick
end
to distribute-subsidies
ask industries [set subsidy-industry (15000000 - 150000 * subsidy-to-port) / 25]
ask ports [set subsidy-port 150000 * subsidy-to-port]
end
欢迎大家的帮助!提前致谢:)
最大
您需要一个变量来存储补贴。我认为您正在为每个行业和港口提供补贴。所以你需要 industries-own
和 ports-own
来为每只海龟定义一个变量。然后你可以简单地把新的补贴加到之前的补贴上。
从你的代码来看,我相信你已经有了这些变量。您还没有向我们展示 own
语句。将您的分发程序替换为:
to distribute-subsidies
ask industries
[ set subsidy-industry subsidy-industry + (15000000 - 150000 * subsidy-to-port) / 25
]
ask ports
[ set subsidy-port subsidy-port + 150000 * subsidy-to-port
]
end
或者,如果担心效率,就计算一次,然后全部相加。
to distribute-subsidies
let new-subsidy-industry (15000000 - 150000 * subsidy-to-port) / 25
let new-port-subsidy 150000 * subsidy-to-port
ask industries
[ set subsidy-industry subsidy-industry + new-subsidy-industry
]
ask ports
[ set subsidy-port subsidy-port + new-port-subsidy
]
end
我在做一个项目,需要我分补贴。我有两个品种,工业和港口。现在,我希望每个滴答声都将补贴添加到之前的金额中,而不是仅仅选择那个特定滴答声的值。我得到这个:
to go
if file-at-end? [ stop ]
file-open "oil price.csv"
set oil-price csv:from-row file-read-line
file-open "co2 price.csv"
set co2-price csv:from-row file-read-line
file-open "electricity price.csv"
set electricity-price csv:from-row file-read-line
;; model update goes here
distribute-subsidies
ask industries [update-profit]
if ticks >= 32 [stop]
tick
end
to distribute-subsidies
ask industries [set subsidy-industry (15000000 - 150000 * subsidy-to-port) / 25]
ask ports [set subsidy-port 150000 * subsidy-to-port]
end
欢迎大家的帮助!提前致谢:)
最大
您需要一个变量来存储补贴。我认为您正在为每个行业和港口提供补贴。所以你需要 industries-own
和 ports-own
来为每只海龟定义一个变量。然后你可以简单地把新的补贴加到之前的补贴上。
从你的代码来看,我相信你已经有了这些变量。您还没有向我们展示 own
语句。将您的分发程序替换为:
to distribute-subsidies
ask industries
[ set subsidy-industry subsidy-industry + (15000000 - 150000 * subsidy-to-port) / 25
]
ask ports
[ set subsidy-port subsidy-port + 150000 * subsidy-to-port
]
end
或者,如果担心效率,就计算一次,然后全部相加。
to distribute-subsidies
let new-subsidy-industry (15000000 - 150000 * subsidy-to-port) / 25
let new-port-subsidy 150000 * subsidy-to-port
ask industries
[ set subsidy-industry subsidy-industry + new-subsidy-industry
]
ask ports
[ set subsidy-port subsidy-port + new-port-subsidy
]
end