python - 限制python只使用实数空间
问题描述
在 python 中,当我做类似x=(-10)**(1/3)
我得到一个复数的事情时。相反,我只想看到一个真正的 x 值,在这种情况下它是 approx -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
推荐阅读
- mysql - 每小时运行 cron 更新 100 万条记录失败
- java - File.listFiles() 在 Linux 中失败
- feign - UNCAUGHT_EXCEPTION:未捕获的异常出现在控制器建议中
- apache-kafka - 有没有办法找出正在发布到主题的特定 Kafka msg 的分区索引/Id/编号?
- exchange-server - 是一种订阅 EWS 通知的方式,如 Microsoft Graph API 以获取通知
- amazon-web-services - 在 AWS LightSail 上取消阻止 IP 地址
- javascript - IOS的dispatchEvent替代品?
- ssms - 在 SSMS 中使用服务器名称?
- docker - 在 Kubernetes 中部署无 bluespice
- sql-server - SQLServer2019-SSEI-Dev.exe 的安装失败并显示“无法下载所需的文件。不再支持安装程序的版本”