如何分配类似于分布在整个补丁中的人口的海龟

时间:2016-03-16 00:03:10

标签: netlogo

我有一个模型,其中人口通常分布在补丁中。我使用以下代码来做到这一点:

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

1 个答案:

答案 0 :(得分:1)

我会使用rnd扩展名来选择10个补丁(按人口加权)来发芽一只乌龟。像ask rnd:weighted-n-of 10 patches [ population ] [ sprout 1 ]这样的东西。如果您使用此方法,则代码顶部还需要extensions [rnd]