Python计算负幂奇怪的结果
有人知道为什么波纹管计算的输出会返回不同的结果,因为它应该是相同的Python计算负幂奇怪的结果,python,math,Python,Math,有人知道为什么波纹管计算的输出会返回不同的结果,因为它应该是相同的 (-0.99)**(-0.99) 返回(-1.0095011228760993-0.03172485085856595j) 及 返回-1.00999949966583417好的,让我们将其他地方的部分答案组合起来,并提供更完整的上下文 (-0.99)**(-0.99) yields a complex number, while -0.99**-0.99 yields a float. 首先,这些表达式应该是等价表达式的
(-0.99)**(-0.99)
返回(-1.0095011228760993-0.03172485085856595j)
及
返回
-1.00999949966583417
好的,让我们将其他地方的部分答案组合起来,并提供更完整的上下文
(-0.99)**(-0.99) yields a complex number, while -0.99**-0.99 yields a float.
首先,这些表达式应该是等价表达式的前提是不正确的-x**y
不是(-x)**y
,而是-(x**y)
诚然,这很奇怪。如果你把-2
写在纸上,你可能会认为-
是数字的一部分,而不是一个优先级可能受到质疑的运算符。但是如果你写-22,标准的说法是-4,-2)2当然是4
以下是一篇关于这个主题的文章:
总之,这就是为什么它们不是同一个表达式的简单答案。有鉴于此,这只是理解每个表达的问题
-.99**-.99
可以写
-1 * (.99**-.99)
-1 / (.99**.99)
分母可以被解读为“0.99的百分之一根到99次方”,然后这只是一个在计算过程中经历痛苦的问题
另一方面,
(-0.99)**(-0.99)
也可以简化,但最终我们将取一个负数的偶数根;所以答案必须是一个复数。好的,让我们把其他地方的部分答案组合起来,并提供更完整的上下文 首先,这些表达式应该是等价表达式的前提是不正确的
-x**y
不是(-x)**y
,而是-(x**y)
诚然,这很奇怪。如果你把-2
写在纸上,你可能会认为-
是数字的一部分,而不是一个优先级可能受到质疑的运算符。但是如果你写-22,标准的说法是-4,-2)2当然是4
以下是一篇关于这个主题的文章:
总之,这就是为什么它们不是同一个表达式的简单答案。有鉴于此,这只是理解每个表达的问题
-.99**-.99
可以写
-1 * (.99**-.99)
-1 / (.99**.99)
分母可以被解读为“0.99的百分之一根到99次方”,然后这只是一个在计算过程中经历痛苦的问题
另一方面,
(-0.99)**(-0.99)
也可以简化,但最终我们将取一个负数的偶数根;因此答案必须是一个复数。根据运算顺序,求幂运算在第一个减号之前完成。因此,与第一次计算的显式括号(大约
-0.99
)相比,第二次计算的隐式括号位于不同的位置(除了第一个减号以外的所有内容)。这种特殊的操作顺序是数学标准,在Python中使用。请注意,表中的求幂比“负数”低,因此求幂是在求反之前进行的。由于运算顺序,求幂是在第一个减号之前进行的。因此,与第一次计算的显式括号(大约-0.99
)相比,第二次计算的隐式括号位于不同的位置(除了第一个减号以外的所有内容)。这种特殊的操作顺序是数学标准,在Python中使用。请注意,表中的求幂比“负”低,所以求幂是在求反之前进行的。您只是重申这两个结果不同。提问者已经知道这一点。问题是为什么这些结果不同。为此,我想指出您对原始问题的评论。:)只是想补充一点,输出类型也不同。您只是重申了这两种结果是不同的。提问者已经知道这一点。问题是为什么这些结果不同。为此,我想指出您对原始问题的评论。:)只是想补充一点,输出类型也不同。