我很惊讶
>>> import math
>>> 1**math.nan
1.0
在我们努力的同时
^{pr2}$我没有找到其他的例子。是不是有什么原因或逻辑让我错过了这个选择?还是这是一张纸条?在
我在等nan
。对于除1
或0j
之外的其他所有数字。在
编辑1:感谢jedwards下面的评论,我有了一个参考。但我还是不明白为什么。为什么要以此为标准?另外,找不到对0j**mat.nan
的引用。。。在
{<1{/1>返回相同的计算结果:{/cd2>总是返回一个计算结果。在这种情况下,我们使用nan
作为参数不应该影响结果,我们仍然应该得到固定的答案。在
这当然可以解释1**math.nan
和{0**math.nan
给出nan
而不是{0**n
是{
但是如果这是场景背后的逻辑,那么0j**math.nan
应该是nan
,因为0j**n
是{0j**math.nan
有不同的推理吗?还是在执行中出了问题?在
引用这个question,它反过来引用ieee754(参见Wikipedia)
有关详细信息,请参见第56页,共页IEEE 754 2008:
因此,推理似乎是无论指数中的k是多少,
1^k = 1
,1^Nan
也应该是1。为什么这种推理是合理的(我肯定是这样的),我还需要进一步挖掘。在就个人而言,我认为这是有意义的-
Nan
在数学中并不存在,只是我们的浮点表示无法处理它(或者,Nan是“计算太多了,这是一些数字,但不确定是哪个”)。因此,1^Nan
可以是1的任意幂(不是1对不是数字的东西),但是由于答案总是1,所以只有当我们将1^Nan
定义为1时,它才有帮助。在相关问题 更多 >
编程相关推荐