我对Netlogo很陌生,现在我一直在为这个句子编写代码:
应该有10%的机会除以海龟孵化一个孩子的海龟总数。
海龟的初始总数是1只。
所以我的代码是:
let p (0.1 / 1)
ask n-of (0.1 / 1) turtles
[hatch 1]但在我看来,我的代码可能不正确。有谁想过怎么改变吗?
任何帮助我都会感激的。事先非常感谢!
发布于 2021-05-10 17:38:33
“问n-of”显然是错误的,如果只有一只乌龟。random函数只返回整数,所以我们选择一个从0到10倍的随机数,而不是检查0.1。像这样的东西应该管用。
if random 10 < 1 [
ask one-of turtles
[hatch 1]
]这是我的理由。任何给定的海龟有10%/N的机会孵化。这意味着,10%的时间里,一只随机海龟的几率是100%。
假设有5只海龟。根据规范,每只海龟孵化的几率为2% (10%/5)。90%的时间,没有人孵化。在其余10%的个案中,5宗个案中有1宗肯定会有机会。这意味着每只海龟的几率是10% x 20%,也就是2%,正如规范所说的那样。
密码就是这么做的。“随机10”选择一个从0到9的随机数。如果这个数字是"< 1“(意思是0),那么我们随机选择一只海龟孵化。
发布于 2021-05-10 19:00:26
怎么样,把随机的机会放进ask
ask turtles
[ if random-float 1 < 0.1
[ hatch 1
]
]问题的一部分是这个问题表达得很糟糕。"10%除以海龟总数“是没有道理的,所以我解释说,大约有10%的海龟孵化出一只海龟。
https://stackoverflow.com/questions/67474849
复制相似问题