我喜欢在我的函数探索中加入

Python,但是我遇到了一些我没想到或想要进行这些评估的行为.

>>> def h(x):

... return -1 / x**(1/3)

...

>>> h(-343)

(-0.07142857142857145 + 0.12371791482634838j)

我想要一个真正的反函数:

>>> def f(x):

... return x**3

...

>>> f(-7)

-343

这样:

>>> def h(x):

... return -1/inverse_f(x)

...

>>> h(-343)

0.14285714285714285

是否有Pythonic方法来获得这种行为?

最佳答案 你遇到了问题,因为提升到分数幂的负数可能是

complex number.

解决方案是应用数学标识.我们知道如果x是负的,则x1 / 3等于 – (( – x)1/3).换句话说,我们将x转换为正数,取立方根,然后再将其否定.以下是执行此操作的Python代码:

def h(x):

if x >= 0:

return -1.0 / x**(1.0/3.0)

else: # x < 0

return -h(-x)

为了解释为什么你首先要解决问题,有助于查看x ** y(幂运算符)的实现.关键的数学标识是xy = exp(log(x)·y).这个标识使得处理权力变得更容易,因为指数被视为常规数并且不需要被分析(它是一个整数吗?它是一个分数吗?它是负数吗?等等).

当x是正数时,log(x)是实数.只要y也是实数,exp(log(x)·y)将是实数.

但是当x是负数时,log(x)是一个复数.具体而言,它等于[log(-x)π·i].当我们将这样一个复数乘以y然后应用exp()时,结果通常是一个复数 – 这不是你所希望的.

python中计算1到_如何在Python中计算-1 /(-343)^(1/3)为1/7?相关推荐

  1. python画图修改背景颜色_如何在 Matplotlib 中更改绘图背景的实现

    介绍 Matplotlib是Python中使用最广泛的数据可视化库之一.无论是简单还是复杂的可视化项目,它都是大多数人的首选库. 在本教程中,我们将研究如何在Matplotlib中更改绘图的背景. 导 ...

  2. python实现随机抽取答题_如何在python中实现随机选择

    这篇文章主要介绍了如何在python中实现随机选择,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 想从一个序列中随机抽取若干元素,或者想生成几个随机 ...

  3. python二进制转八进制代码_如何在python中输入二进制、八进制、十进制、十六进制数据并转换...

    最近在学习python,不过跟着课本的作业题目: 分别就计算二进制110110011.八进制256和十六进制的数字a4b5,并转化为十进制求和. 不过写过程中遇到了个问题: 如何在python中输入二 ...

  4. python 参数个数 同名函数_如何在python中编写不同参数的同名方法

    我在Java背景下学习Python(3.x). 我有一个python程序,我在其中创建一个personObject并将其添加到列表中.p = Person("John") list ...

  5. eval在python中是什么意思_如何在Python中使用eval ?

    Python中的 eval是什么? 在Python中,我们有许多内置方法,这些方法对于使Python成为所有人的便捷语言至关重要,而eval是其中一种.eval函数的语法如下: eval(expres ...

  6. python中奇数怎么表示_如何在python输出数据中的奇数

    如何在python输出数据中的奇数 发布时间:2020-07-10 17:08:48 来源:亿速云 阅读:131 这篇文章将为大家详细讲解有关如何在python输出数据中的奇数,文章内容质量较高,因此 ...

  7. python中while语句是_如何在Python中使用while语句[适合初学者]

    while语句是重复循环的语句,那么如何用Python编写,下面Gxl网就带领大家来学习一下Python中使用while语句.[推荐阅读:Python视频教程] 一:什么是while语句?Python ...

  8. python如何读取uni文件_如何在Python中通过HTTP与UniProt交谈?

    我试图从UniProt获得一些结果,这是一个蛋白质数据库(细节并不重要).我正在尝试使用一种从一种ID转换为另一种ID的脚本.我能够在浏览器上手动执行此操作,但无法在 Python中执行此操作. 在h ...

  9. python读json文件数组_如何在python中从json文件读取json对象数组

    我有一个名为example.json的json文件,包含以下内容[{ "product/productId" : "XXX", "product/ti ...

  10. python怎么去掉换行符_如何在Python中删除尾部换行符?

    如何在Python中删除尾部换行符? 什么是Perl的chomp函数的Python等价物,如果它是换行符,它会删除字符串的最后一个字符? 26个解决方案 1473 votes 尝试方法lstrip() ...

最新文章

  1. SQL操作的组成部分-数据控制
  2. underscore.js _.initial[Array]
  3. 最小熵原理:“物以类聚”之从图书馆到词向量
  4. 平均分组 java_java – 按属性分组对象列表,并计算每个对象的对象属性的平均值...
  5. 【Matlab】矩阵三角分解法求解方程组
  6. matlab超出维度,求助。。。matlab索引超出维度要怎么修改。。。谢谢
  7. python怎么改变字体大小_python IDLE 背景以及字体大小的修改方法
  8. hive与hbase的联系与区别
  9. [Erlang 0127] Term sharing in Erlang/OTP 上篇
  10. [转]十个让你变成糟糕的程序员的行为
  11. java性能优化文章
  12. Python FTP文件下载简介
  13. 【瑕疵检测】基于matlab Gabor滤波布匹瑕疵检测【含Matlab源码 407期】
  14. (第3章)Docker核心原理解读
  15. 【Java+JSP+MySql】12306购票系统(二)数据库
  16. 安卓手机微信数据恢复取证研究 EnMicroMsg.db FTS5IndexMicroMsg_encrypt.db
  17. 清明时节雨纷纷,祭祖的日子又悄然无息地到来了
  18. 如何把标签输出为PDF文件
  19. 教你1分钟学会贴iPhone钢化膜
  20. 如何关闭WPS烦人广告

热门文章

  1. GIT 换行符相关操作
  2. sqlserver锁机制详解(sqlserver查看锁)
  3. Linux操作系统CentOS7.2发行版本的安装与配置
  4. 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)...
  5. Xcode中Objc动态调用方法同时避免警告的几个办法
  6. exchange2003如何恢复邮件
  7. Best of Ruby Quiz 笔记之一:Mad Libs
  8. Redis 限流的 3 种方式,还有谁不会!
  9. Stackoverflow 高赞答案,为什么牛逼的程序员都不用 “ ! = null ' 做判空?
  10. 美团某程序员哀叹:能力很强,却因为不会“向上管理”而惨遭被裁!怎么办?...