NetLogo:如何将随机伽玛和除法用于相同的计算公式而不会出现任何错误?

NetLogo: How do I use random-gamma and division for the same calculation formula without any error?

我在 NetLogo 中使用随机伽玛。当我在 random-gamma 的语法中添加除法时,NetLogo 得到一个错误。以下是使用随机伽玛的计算语法示例。 (此外,这些变量 "number-dead, S, T" 注册在全局变量中。)在我的模拟中,有必要在随机伽马计算结果后添加除法。我应该怎么办?请对此提出一些建议。感谢您的配合。

set sim precision((number-dead * random-gamma(1 / (S * S))(1 / (T * (S * S)))) / number-dead)3

以下是出错时的弹窗提示。

It is divided by 0. error while observer running / called by procedure GOPARALLEL called by button 'goparallel'

我认为问题与 random-gamma 无关。 STnumber-dead 都可能为 0。

如果 S 为 0,则 (1 / (S * S))(1 / (T * (S * S))) 都将除以 0。

如果 T 为 0,则 (1 / (T * (S * S))) 将导致除以 0。

如果 number-dead 为 0,则 (number-dead * random-gamma (1 / (S * S)) (1 / (T * (S * S)))) / number-dead) 将导致除以 0。

此外,我认为代码有误。它本质上是在做:

let rand random-gamma (1 / (S * S)) (1 / (T * (S * S)))
let raw-num number-dead * rand / number-dead
set sim precision raw-num 3

也就是说,您将 random-gamma 的结果乘以 number-dead,然后立即将其结果除以 number-dead,这只会让您得到以下结果random-gamma。所以我认为您可能放错了一些括号或其他东西。