Python计算负功率的奇怪结果

时间:2019-03-20 12:57:23

标签: python math

有人知道波纹管计算的输出为什么返回不同的结果,因为它应该是相同的。

(-0.99)**(-0.99)

返回(-1.0095011228760993-0.03172485085856595j)

-0.99**-0.99

返回-1.0099994966583417

2 个答案:

答案 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)

也可以简化,但是最终我们将取负数的偶数根;因此答案必须是一个复数。