为什么在J 0%0中定义,但_%_给出NaN错误?

时间:2013-02-28 04:29:34

标签: nan j

I J,0%0zero divided by zero)给出0作为答案。但是,_%_(无穷大除以无穷大)会产生NaN误差?为什么不定义,而0%0是?

2 个答案:

答案 0 :(得分:1)

“虽然零除以零是不确定的,但是希望在编程环境中为它提供一个固定的商,以便减少必须中断问题执行的环境数量。”这是E. E. McDonnell在论文Zero Divided by Zero中的解释。

Infinity的一个问题是它不是一个值,但它被视为一个值。如果无穷大是一个值,那么_%_将是一个,就像一个数字被自己除的典型情况一样。 (J实现0%0作为该模式的一个例外。)我的直觉是J会更好,_%_计算为解析为One,但事实并非如此。所以,虽然我无法回答你的问题,但我建议没有数学方面的答案,也不能在J文档或评论中找到答案。

答案 1 :(得分:0)

我认为Eelvex的评论给出了答案。无穷大无穷大是不确定的。 J中的不确定符号是_.。但是,这只是为了处理来自外部源的数据而存在,并且J句子不应该给出_.作为答案。

如果0以上的0被定义为0,这是因为它有一些实际用途。对于无穷大而言,没有这种实际用途。