作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
Python 3.4 似乎随机决定它是使用 **
运算符返回数字的实根还是复根:
>>> (863.719-2500)
-1636.281
>>> -1636.281**(1/3)
-11.783816270504108
>>> (863.719-2500)**(1/3)
(5.891908135252055+10.205084243784958j)
有没有一种方法可以确保在立方体生根时获得真正的根而不是复杂的根?
最佳答案
在第二种情况下,实际上首先计算立方根,然后应用减号,因此是实根。
即 -1636.281**(1/3)
变为 -(1636.281**(1/3))
。您也可以使用类似的逻辑来获得实数立方根。
但实际上,在计算负数的立方根时,您总是会在 Python 中得到复数。
>>> -1636.281**(1/3)
-11.783816270504108
>>> (-1636.281)**(1/3)
(5.891908135252055+10.205084243784958j)
如果你想要实数,你可以添加如下代码 -
def cube(x):
if x >= 0:
return x**(1/3)
elif x < 0:
return -(abs(x)**(1/3))
关于python - 如何在 Python3 中获取负数的实立方根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30923838/
我需要计算像这样存储的 2 个短数据数组的 FFT(重复百万次): 等等。 数组值用黄色和蓝色表示。每个 K 值都有一个大小为 K 的未使用数据空间,我需要跳过。 我对数据进行了重新排序(和 floa
我是一名优秀的程序员,十分优秀!