gpt4 book ai didi

NetLogo:海龟的移动百分比

转载 作者:行者123 更新时间:2023-12-01 23:54:06 25 4
gpt4 key购买 nike

我在 NetLogo 中创建了 1000 只随机移动的海龟,但我希望其中只有百分之三十向前移动一步,而其他百分之七十向前移动五步。

to setup
ca
setup-turtles
setup-patches
reset-ticks
end

to go
move-turtles
tick
end

to setup-patches
ask patches [set pcolor brown]
end

to setup-turtles
create-turtles number
ask turtles [set shape "person" set size 1]
ask turtles [setxy random-xcor random-ycor] ;; posicionar las personas en un punto al azar
end

to move-turtles
ask turtles [
right random 360]
end

最佳答案

解决这个问题的一种简单而快速的方法是概率地进行:

ask turtles [ fd ifelse-value (random 100 <= 30) [ 1 ] [ 5 ] ]

...这样每只乌龟将以 30% 的概率移动一步,以 70% 的概率移动五步。但这并不能保证 恰好 30% 的海龟移动了一步。从长远来看,它只会平均达到 30%。

如果您想要确切的数字,一种方法是:

let small-movers n-of (count turtles * 0.3) turtles
let big-movers turtles with [ not member? self small-movers ]
ask small-movers [ fd 1 ]
ask big-movers [ fd 5 ]

但是由于 member? 检查,这会比较慢。

一种更快的方法是使用海龟变量。假设您有:

turtles-own [ step-size ]

然后你可以这样做:

ask turtles [ set step-size 5 ]
ask n-of (count turtles * 0.3) turtles [ set step-size 1 ]
ask turtles [ fd step-size ]

关于NetLogo:海龟的移动百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25022059/

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