有人知道为什么波纹管计算的输出返回不同的结果,因为它应该相同。
(-0.99)**(-0.99)
返回(-1.0095011228760993-0.03172485085856595j)
和
-0.99**-0.99
返回-1.0099994966583417
好的,所以让我们组装在其他地方的部分答案,也提供更完整的上下文。
首先,这些应该是等效表达式的前提是不正确的。 -x**y
是不是 (-x)**y
,而是 -(x**y)
。
诚然,这很奇怪。如果您在纸上写-2
,则可能将-
视为数字的一部分,而不是可以质疑其优先级的操作员。但是,如果您写-2 2 说这是-4是标准的,而(-2) 2 当然是4。
这是有关该主题的文章:链接
无论如何,这是为什么它们不同样的表达方式的简短答案。鉴于此,这只是理解每个表达的问题。
-.99**-.99
可以写
-1 * (.99**-.99)
-1 / (.99**.99)
然后可以读取.99至第99个功率的"百分之一的根",然后是通过痛苦的计算进行的问题。
另一方面,
(-0.99)**(-0.99)
也可以简化,但最终我们将均匀地扎根负数。因此答案必须是一个复杂的数字。
(-0.99)**(-0.99) yields a complex number, while -0.99**-0.99 yields a float.