有人知道波纹管计算的输出为什么返回不同的结果,因为它应该是相同的。
(-0.99)**(-0.99)
返回(-1.0095011228760993-0.03172485085856595j)
和
-0.99**-0.99
返回-1.0099994966583417
答案 0 :(得分:1)
(-0.99)**(-0.99) yields a complex number, while -0.99**-0.99 yields a float.
答案 1 :(得分:1)
好吧,让我们组装其他地方的部分答案,并提供更完整的上下文。
首先,这些应该等效的前提是不正确的。 -x**y
不是 (-x)**y
,而是-(x**y)
。
诚然,这很奇怪。如果您在纸上写下-2
,您可能会认为-
是数字的一部分,而不是优先级可能受到质疑的运算符。但是,如果您编写-2 2 ,则通常说它是-4,而(-2) 2 当然是4。
以下是有关该主题的文章:http://mathforum.org/library/drmath/view/61633.html
无论如何,这就是为什么它们不是相同表达方式的简短答案。鉴于此,只需了解每个表达式即可。
-.99**-.99
可以写
-1 * (.99**-.99)
-1 / (.99**.99)
然后可以将分母读为“ .99的百分之一到99的幂”,然后就可以进行繁琐的计算。
另一方面,
(-0.99)**(-0.99)
也可以简化,但是最终我们将取负数的偶数根;因此答案必须是一个复数。