所讨论的等式是:(-8) ** (-1/3)
。把它放到Python中,你会得到下面的答案:
In [1]: (-8) ** (-1/3)
Out[1]: (0.25000000000000006-0.4330127018922193j)
这是不正确的,答案应该是-0.5。但是如果我去掉否定的,它就工作得很好。
In [2]: (8) ** (-1/3) * -1
Out[2]: -0.5
我在另外两个计算器(Google的搜索计算器和Android上的科学计算器CalcES)上测试了这个方法,当输入为(-8)**(-1/3)时,我得到了Python所犯的同样的错误。
1条答案
按热度按时间qc6wkl3g1#
负数的浮点幂将给予一个复数。
即使去掉幂的负号,也会得到一个复数:
如果我只算1.1,那么它也是一个复数
不管你是用8还是其他数字,如果这个数字是负数幂乘到某个浮点数而不是整数,它总是会产生一个复数。
请参阅以下链接:
https://math.stackexchange.com/questions/317528/how-do-you-compute-negative-numbers-to-fractional-powers
https://math.stackexchange.com/questions/952663/negative-number-raised-to-fractional-power
https://math.stackexchange.com/questions/2174393/can-a-negative-number-be-raised-to-a-fractional-power-e-g-2-5
https://math.stackexchange.com/questions/4332039/why-cant-a-negative-base-be-raised-to-a-non-integer-exponent