Kel*_*oll 1 python math lambda
我最近一直在玩Python和数学,然后我遇到了一些我还没弄清楚的东西.也就是说,给定一个任意的lambda,是否有可能返回该lambda的逆数进行数学运算?也就是说,invertLambda使得invertLambda(lambda x:(x + 2))(2)= 0. lambdas仅限于表达式的事实给了我希望,但到目前为止我还没有能够使它工作.我知道任何结果都会导致丢失信息的功能出现问题,但如果必须,我愿意将用户和我自己限制在无损功能上.
当然不是:如果lambda不是一个内射函数,你就不能反转它.示例:您无法将lambda映射反转x为x*x,因为原始符号x已丢失.
抛开注入性,有些函数在计算上非常复杂.例如,考虑从其md5哈希中恢复原始值.(对于lambda计算md5哈希,反转函数必须在密码意义上打破md5!)
编辑:
事实上,如果我们限制可以在那里使用的表达式,理论上我们可以使lambdas可逆.例如,如果lambda是1参数的线性函数,我们可以很容易地将其反转.如果它是一个大于4的多项式,我们就会遇到代数精确解的问题.
当然,我们可以避免精确解决方案,并且只是以数字方式反转函数.这是可能的,使用方程式的任何数值求解方法lambda(x) = value都可以(最简单的是二元搜索).