gpt4 book ai didi

python - 是否可以在 Python 中反转任意 lambda?

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:01 24 4
gpt4 key购买 nike

我最近一直在玩 Python 和数学,遇到了一些我还没有弄清楚的事情。也就是说,给定一个任意的 lambda,是否有可能为数学运算返回该 lambda 的倒数?也就是说,invertLambda 使得 invertLambda(lambda x:(x+2))(2) = 0。lambda 仅限于表达式这一事实给了我希望,但到目前为止我还无法让它发挥作用。我知道任何结果都会有丢失信息的功能问题,但如果必须的话,我愿意将用户和我自己限制在无损功能上。

最佳答案

当然不是:如果 lambda 不是 injective function ,你不能反转它。示例:您不能将 lambda 映射 x 反转为 x*x,因为原始 x 的符号丢失了。

撇开单射性不谈,有些函数的求逆在计算上非常复杂。例如,考虑从其 md5 散列中恢复原始值。 (对于计算 md5 散列的 lambda,反转函数必须在密码学意义上破解 md5!)


编辑:
事实上,如果我们限制可以在那里使用的表达式,理论上我们可以使 lambdas 可逆。例如,如果 lambda 是一个参数为 1 的线性函数,我们可以很容易地反转它。如果它是次数 > 4 的多项式,则代数精确解有问题。

当然,我们可以避免精确解,而只是数值反转函数。这是可能的,使用 numerical solving 的任何方法等式 lambda(x) = value 就可以了(最简单的是二分查找)。

关于python - 是否可以在 Python 中反转任意 lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9915863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com