首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将乌龟移动到Netlogo中最近的空地上

将乌龟移动到Netlogo中最近的空地上
EN

Stack Overflow用户
提问于 2018-12-13 04:19:20
回答 1查看 461关注 0票数 0

目前,我有一个包含许多参数的模型,其中一个模型是将一岁公鹿按照一定的标准进行分散。从对数正态分布中拉出每个雄性一岁幼仔的分散距离。这是我到目前为止所知道的:

代码语言:javascript
复制
to move-dispersing-maleyearlings
 ask maleyearlings [
 let chance-disperse random-float 1.001
 if chance-disperse < .62 [  ;;average dispersal rates in Long et. al paper
 let mu 7.5
 let sigma 6.1
 let beta ln (1 + (sigma * sigma) / (mu * mu))
 let S (sqrt beta)
 let M (ln mu) - (beta / 2)
 let new-distance exp (random-normal M S)
 while [any? other turtles-here and dispersal-distance < new-distance]
 [right random 360
   fd 1
    set dispersal-distance dispersal-distance + 1]]]
end

所以这个代码应该有62%的雄性一周岁的鹿被驱散,它们将驱散“新距离”的距离。如果我正确理解了我的while循环,它们将一直移动,直到它们到达“新距离”,直到它们落在一个空闲的地方。

但现在我想要做的是让每一只雄性一岁鹿分散它们各自的“新距离”,但如果它们落在一块被占用的地块上,我想让它们转移到最近的空地。如果他们在移动“新距离”后着陆的补丁没有被占用,那么他们将停留在该补丁上。

你有什么办法吗?谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2018-12-13 18:12:09

如果我对您的请求理解正确,您想要替换:

代码语言:javascript
复制
while [any? other turtles-here and dispersal-distance < new-distance]
 [right random 360
   fd 1
    set dispersal-distance dispersal-distance + 1]]]

使用移动到最近的空补丁的代码。尝试如下所示(未经过测试):

代码语言:javascript
复制
if any? other turtles-here
[ move-to min-one-of (patches with [not any? turtles-here]) [distance myself]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53750737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档