Netlogo 全局变量更改为0

Netlogo 全局变量更改为0,netlogo,Netlogo,我有一份报告将一个范围划分为11个步骤,如下所示: to-report random11steps let step random 11 + 1 let step-value (minLM / 11) let rnd 0 repeat step [ set rnd (rnd + step-value) ] report rnd end 其中minLM是设置为0.005的全局变量。当我运行该过程时,minLM将更改为“0”。 如果我将minLM替换为0.00

我有一份报告将一个范围划分为11个步骤,如下所示:

to-report random11steps
  let step random 11 + 1 
  let step-value (minLM / 11) 
  let rnd 0
  repeat step [ 
    set rnd (rnd + step-value)
  ]
  report rnd
end
其中
minLM
是设置为0.005的全局变量。当我运行该过程时,
minLM
将更改为“0”。 如果我将
minLM
替换为
0.005
,该函数会工作,但我不知道为什么
minLM
会更改为
0

此外,是否有任何原语可以使这个过程的代码缩短一点

问候

  • 此功能未更改
    minLM
    ;看看别的地方
  • 除非绝对必要,否则不要编写依赖于全局变量的函数;将
    minLM
    作为参数传递
  • 不清楚为什么要使用重复加法而不是乘法。也就是说,您可以只返回
    (步骤*步骤值)

  • 谢谢你的回答。否。
    minLM
    的值是一个常量或固定参数。第3点。您是对的。@user1993416编写函数时最好使用参数,而不是依赖全局变量。(还有,我不明白你的“不”。)非常感谢。我的回答的意思是,
    minLM
    的值是一个常数,在任何一行代码中都不会改变。我已在设置中定义了
    设置minLM 0.005
    ,之后不会更改该值。我不知道我遗漏了什么,也不知道为什么minLM是0而不是0.005。您没有发布足够的代码来确定这一点,但只足以确认您的
    Random11步骤
    不是问题的根源。但是,请确保设置中的
    清除所有
    命令在开始时就出现。它将所有全局变量重置为
    0