在Python中,当执行诸如x=(-10)**(1/3)
之类的操作时,我得到一个复数。相反,我只想查看一个真实的 x 值,在本例中约为 -2.15
。现在我确实明白我可以导入像 mpmath 这样的数学库并生成所有解决方案(本例中为 3 个),循环遍历它们并找到真实的解决方案。我正在寻找一个更优雅的解决方案,因为我希望能够创建一个能够接受任何类型的函数并将数字插入其中的程序。
这里有一些代码演示了我想要做什么
f= lambda x:x**(1/3)
print(f(-10))
在这种情况下,我得到一个复数,代表 3 个可能的根之一,但我只想要真正的根
最佳答案
负数的实立方根是正数立方根的负值:
>>> def cube_root(x):
... return -pow(-x,1/3) if x < 0 else pow(x,1/3)
...
>>> cube_root(10)
2.154434690031884
>>> cube_root(-10)
-2.154434690031884
关于python - 限制 python 仅使用实数空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61723871/