gpt4 book ai didi

netlogo - 如何使用 Netlogo 中的行为空间获取海龟到达不同 10 个补丁的滴答时间?

转载 作者:行者123 更新时间:2023-12-05 07:18:44 27 4
gpt4 key购买 nike

有 100 block 绿地和 10 只海龟。每当乌龟来到一 block 绿色的地方时,它就会变成红色。所以过了很长一段时间,所有的绿色补丁都会在不同的时间点变成红色。我想使用 BehaviourSpace 将这 100 个不同的滴答时间写入 Excel 工作表。我也想运行这个 100 次。即我想要 100 组 100 个不同的滴答时间。

我编写了一个代码,当一只乌龟来到绿色补丁时,补丁变成红色,我在它下面写了“show ticks”。因此,当绿色补丁变成红色时,滴答时间会显示在屏幕底部的命令中心上。滴答时间示例:34,56,78,98,99,...,1234。有 100 个不同的时间。

breed [InfMosquitoes InfMosquito]

to setup
clear-all

set-default-shape InfMosquitoes "butterfly"
create-InfMosquitoes num-infected-mosquitoes-red
[
set color red
]

ask turtles [
set size 1
setxy random-xcor random-ycor
]

ask turtles[
ifelse coin-flip?
[ifelse coin-flip? [set heading 0][set heading 90]]
[ifelse coin-flip? [set heading 180][set heading 270]]
]

ask n-of num-humans patches [set pcolor green]

show num-infected-mosquitoes-red

reset-ticks
end

to go
ask turtles
[
right random 360
forward 1
ask InfMosquitoes[
if pcolor = green
[
set pcolor red
show ticks
]
]
]
tick
end


to-report coin-flip?
report random 2 = 0
end

我想知道我应该在 BehaviourSpace 表中写什么。我知道 Repititions:100。我想知道我应该在其他命令框上写什么。

最佳答案

您可以创建一个全局变量并将其初始化为一个列表。

globals [
...
ticks-recorder
...
]

to setup
...
set ticks-recorder []
...
end

然后,您将把它添加到列表中,而不是在命令中心打印刻度号:

to go
ask turtles
[
right random 360
forward 1
ask InfMosquitoes[
if pcolor = green
[
set pcolor red
set ticks-recorder lput ticks ticks-recorder ; this is the line I've changed
]
]
]
tick
end

您最终会得到 ticks-recorder,它是当补丁颜色变为红色时所有刻度的列表。

然后,您只需将 ticks-recorder 指定为 BehaviorSpace 中的 reporter。

请注意,使用此解决方案,您最终会得到一个被报告的列表。例如,假设您的列表包含值 1 和 2。在 NetLogo 中,这被视为 [1 2]。这意味着,如果您在 Excel 中打开输出文件,报告者所在的单元格将包含文本 [1 2],这意味着您将无法对其进行任何数学运算。你可能关心也可能不关心这个,我不知道(例如,你可能使用不同的编程语言处理你的输出,而你取消了记者的名单)。但我认为这会变成另一回事。

关于netlogo - 如何使用 Netlogo 中的行为空间获取海龟到达不同 10 个补丁的滴答时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58179228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com