【发布时间】:2016-04-04 18:16:41
【问题描述】:
我对编码很陌生,但遇到了一些麻烦。我正在尝试根据设置时每个年龄的概率在 netlogo 中进行年龄分布。我设置了一个随机数变量来帮助计算概率。年龄概率如下:
天 |概率
_0 ____0.476
_365__ 0.229
_730 __0.142
_1095 _0.081
_1460 _0.044
_1825 _0.019
_2190 _0.007
_2555 _0.002
我还需要 2 个 pDogs 才能达到 2920 岁
这是我目前所拥有的,但我不确定是否有更好的方法来做到这一点。
pDogs-own[family age health random-number]
ask pDogs [
set random-number random 1000.5]
ask pDogs
[if random-number <= 476 [set age 0]]
ask pDogs
[if ((random-number > 476) and (random-number <= 705)) [set age 365]]
ask pDogs
[if ((random-number > 705) and (random-number <= 847)) [set age 730]]
ask pDogs
[if ((random-number > 847) and (random-number <= 928)) [set age 1095]]
ask pDogs
[if ((random-number > 928) and (random-number <= 972)) [set age 1460]]
ask pDogs
[if ((random-number > 972) and (random-number <= 991)) [set age 1825]]
ask pDogs
[if ((random-number > 991) and (random-number <= 998)) [set age 2190]]
ask pDogs
[if ((random-number > 998) and (random-number <= 1000)) [set age 2555]]
我也在尝试另一种方法来完成同样的事情。首先,我要求 2619 pDogs 的年龄 = 0。我正在尝试编写一个代码:
ask n-of 2619 pDogs [
set age 0]
ask pDogs [
if age != 0 [
ask n-of 1262 pDogs [
set age 365]]]
...但它不起作用。我最终想要一些我可以说的东西,如果年龄不是先前定义的 0、365、730 等之一,则应用下一年/年龄值。
【问题讨论】:
-
那么问题是什么?您是否只是在寻找有关如何根据您现在拥有的信息来表示此分布的反馈?
-
好吧,我当前的代码没有给出我正在寻找的数字。数字很接近,但每个设置的差异约为 50。我正在寻找一种更精确的方法来进行年龄分布。例如:我需要 2619 个年龄为 0 的 pDogs。
标签: distribution netlogo