Python计算负幂奇异结果

epggiuax  于 2022-12-10  发布在  Python
关注(0)|答案(2)|浏览(128)

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

(-0.99)**(-0.99)

返回(-1.0095011228760993-0.03172485085856595j)

-0.99**-0.99

返回-1.0099994966583417

3qpi33ja

3qpi33ja1#

好的,让我们把其他地方的部分答案组合起来,并提供更完整的上下文。
首先,这些表达式应该是等价表达式的前提是不正确的。-x**y * 不是 * (-x)**y,而是-(x**y)
诚然,这很奇怪,如果你在纸上写-2,你可能会认为-是数字的一部分,而不是一个优先级可能受到质疑的运算符;然而,如果你写-22,标准的说法是这是-4,而(-2)2当然是4。
下面是一篇关于这个主题的文章:Link
总之,这就是为什么它们不是同一种表达方式的简短答案。考虑到这一点,我们只需要理解每一种表达方式。

-.99**-.99

可以被写入

-1 * (.99**-.99)
-1 / (.99**.99)

分母可以读作“0.99的99次幂的百分之一次方根”,然后就只需要进行一次痛苦的计算。
另一方面,

(-0.99)**(-0.99)

也可以简化,但最终我们会取一个负数的偶数根;所以答案一定是复数。

ki0zmccv

ki0zmccv2#

(-0.99)**(-0.99) yields a complex number, while -0.99**-0.99 yields a float.

相关问题