问海龟 - 代理集的排序
ask turtles - ordering of agentset
我想随机应用一些过程,但顺序很重要,或者更确切地说,它应该随机完成,我怎么能 select 一组相同的海龟来“治疗”但要做到这一点这样每个价格变动的顺序都是随机的?
ask turtles [
;; apply a process to turtles, but not all turtles will get something as the pool of energy may have run out by the time they are selected.
]
代理集的元素(例如turtles
)总是以随机顺序返回。每次您对代理集使用 ask
时,它都会以新的随机顺序询问他们。来自 the docs on agentsets:
An agentset is not in any particular order. In fact, it’s always in a random order. And every time you use it, the agentset is in a different random order. This helps you keep your model from treating any particular turtles, patches or links differently from any others (unless you want them to be). Since the order is random every time, no one agent always gets to go first.
这里有一个简单的例子来演示。如果你 运行 它在命令中心你会看到 who
每次你 ask
显示的数字都会不同。
to test
clear-all
create-turtles 10
show "Asking once..."
ask turtles [ show who ]
show "Asking a second time..."
ask turtles [ show who ]
end
这是一个示例,显示了一个能量池,该能量池将被随机使用,直到用完为止。请注意,将开始使用它的海龟是 ask
:
的代理集中最先出现的那个
to test-pool
clear-all
let energy-pool 1000
create-turtles 100
ask turtles [
; can only act if some energy is left...
ifelse energy-pool > 0 [
let energy-use (min (list random 100 energy-pool))
set energy-pool (energy-pool - energy-use)
show (word "I used up " energy-use " energy points! " who " Only " energy-pool " points left")
] [
show (word "No energy left for me! " who)
]
]
end
我想随机应用一些过程,但顺序很重要,或者更确切地说,它应该随机完成,我怎么能 select 一组相同的海龟来“治疗”但要做到这一点这样每个价格变动的顺序都是随机的?
ask turtles [
;; apply a process to turtles, but not all turtles will get something as the pool of energy may have run out by the time they are selected.
]
代理集的元素(例如turtles
)总是以随机顺序返回。每次您对代理集使用 ask
时,它都会以新的随机顺序询问他们。来自 the docs on agentsets:
An agentset is not in any particular order. In fact, it’s always in a random order. And every time you use it, the agentset is in a different random order. This helps you keep your model from treating any particular turtles, patches or links differently from any others (unless you want them to be). Since the order is random every time, no one agent always gets to go first.
这里有一个简单的例子来演示。如果你 运行 它在命令中心你会看到 who
每次你 ask
显示的数字都会不同。
to test
clear-all
create-turtles 10
show "Asking once..."
ask turtles [ show who ]
show "Asking a second time..."
ask turtles [ show who ]
end
这是一个示例,显示了一个能量池,该能量池将被随机使用,直到用完为止。请注意,将开始使用它的海龟是 ask
:
to test-pool
clear-all
let energy-pool 1000
create-turtles 100
ask turtles [
; can only act if some energy is left...
ifelse energy-pool > 0 [
let energy-use (min (list random 100 energy-pool))
set energy-pool (energy-pool - energy-use)
show (word "I used up " energy-use " energy points! " who " Only " energy-pool " points left")
] [
show (word "No energy left for me! " who)
]
]
end