我有一个模型,其中人口通常分布在补丁中。我使用以下代码来做到这一点:
ask patches [
let x1 (pxcor - mean1) / sd-pop1
let y1 (pycor - mean2) / sd-pop1
set popualation ( (pop1) * exp (-0.5 * ( x1 ^ 2 + y1 ^ 2)) / (2 * pi * sd-pop1 ^ 2))
]
我想以类似的方式分发10只乌龟。在附图中,正如人口的主要部分如何分布在靠近网格空间中心的补丁中。类似于要创建的10只乌龟,我希望一大块随机分布在人口丰富的斑块上,还有一些斑块遍布周边。
to setup-parties
create-parties Num-of-parties
let sp sqrt((((sd-pop1 ^ 2) * (pop1 - 1)) + ((sd-pop2 ^ 2) * (pop2 - 1))) / (pop1 + pop2 - 2))
ask parties [
ifelse (pop2 > 0) [ set heading random-float 360 jump random-float sp ] [ set heading random-float 360 jump random-float sd-pop1 ]
set size 3
set color random 130
set label who + 1
set label-color red
set my-old-size 1
set shape "default"
set old-x xcor
set old-y ycor
update-rule
]
end
答案 0 :(得分:1)
我会使用rnd
扩展名来选择10个补丁(按人口加权)来发芽一只乌龟。像ask rnd:weighted-n-of 10 patches [ population ] [ sprout 1 ]
这样的东西。如果您使用此方法,则代码顶部还需要extensions [rnd]
。