Netlogo 如何避免使用Behavior space 编译分割过程中的"dividing by 0" 错误?
Netlogo How can I avoid the "dividing by 0" error during the dividing process compiling with Behavior space?
我收到一条错误消息 "It is dividing by 0"。 Netlogo的Behavior space编译分割过程中如何避免"dividing by 0"错误?这是 运行 次错误弹出消息。 " 它除以 0。观察者出错 运行 / 程序调用 GO,按钮调用 'go' " 以下是示例程序。变量 "number-of-stop" 表示停在路上的海龟的滴答数, "number-of-dead" 表示死海龟的数量。行为 space 收集每个报价单的数据。当变量为 0 时,会发生被零除错误。有什么想法吗?谢谢。
globals [ Ans number-of-stop number-of-dead ]
set Ans precision((number-of-stop) / (number-of-dead))3
在计算之前先设置一个测试,例如(未测试):
set Ans ifelse-value (number-of-dead = 0)
[ -1 ]
[ precision((number-of-stop) / (number-of-dead))3 ]
如果分母为 0,则将值设置为 -1,并且仅在测试失败(即,如果死亡人数不为 0)时进行除法
解决此问题的另一种方法是使用 carefully
,它允许您在发生错误时采取备用操作。如果存在可能导致错误的条件和提前检查困难或乏味的情况,它会特别有用。
globals [ Ans number-of-stop number-of-dead ]
to go
set number-of-stop 10
set number-of-dead 0
carefully [set Ans precision((number-of-stop) / (number-of-dead))3] [set Ans -1]
show Ans
end
如果有用的话,您也可以使用 NetLogo 来告诉您错误是什么。
我收到一条错误消息 "It is dividing by 0"。 Netlogo的Behavior space编译分割过程中如何避免"dividing by 0"错误?这是 运行 次错误弹出消息。 " 它除以 0。观察者出错 运行 / 程序调用 GO,按钮调用 'go' " 以下是示例程序。变量 "number-of-stop" 表示停在路上的海龟的滴答数, "number-of-dead" 表示死海龟的数量。行为 space 收集每个报价单的数据。当变量为 0 时,会发生被零除错误。有什么想法吗?谢谢。
globals [ Ans number-of-stop number-of-dead ]
set Ans precision((number-of-stop) / (number-of-dead))3
在计算之前先设置一个测试,例如(未测试):
set Ans ifelse-value (number-of-dead = 0)
[ -1 ]
[ precision((number-of-stop) / (number-of-dead))3 ]
如果分母为 0,则将值设置为 -1,并且仅在测试失败(即,如果死亡人数不为 0)时进行除法
解决此问题的另一种方法是使用 carefully
,它允许您在发生错误时采取备用操作。如果存在可能导致错误的条件和提前检查困难或乏味的情况,它会特别有用。
globals [ Ans number-of-stop number-of-dead ]
to go
set number-of-stop 10
set number-of-dead 0
carefully [set Ans precision((number-of-stop) / (number-of-dead))3] [set Ans -1]
show Ans
end
如果有用的话,您也可以使用 NetLogo 来告诉您错误是什么。