加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala中的反函数

发布时间:2020-12-16 09:27:39 所属栏目:安全 来源:网络整理
导读:有没有办法表达scala中任何函数的反函数? 例如,如果我有这样的函数f (x: Int) = x + 1 我想能够编写一个反函数g (f(x): Int) = x // not a valid scala syntax 要么 (x: Int) = inverse(f(x)) // inverse would return (x = x -1) 你知道在scala中做这种事
有没有办法表达scala中任何函数的反函数?

例如,如果我有这样的函数f

(x: Int) => x + 1

我想能够编写一个反函数g

(f(x): Int) => x // not a valid scala syntax

要么

(x: Int) => inverse(f(x)) // inverse would return (x => x -1)

你知道在scala中做这种事情的方法吗?

N.B = x => x 1仅用于示例我正在寻找解决此类任务的通用方法

谢谢!

解决方法

不,这样的事情是不可能的.问题是并非所有数学函数都有逆.来自 inverse functions的维基百科条目:

Not all functions have an inverse. For this rule to be applicable,each element y ∈ Y must correspond to no more than one x ∈ X; a function ? with this property is called one-to-one,or information-preserving,or an injection.

例如,只有当x> = 0时,平方根(sqrt)函数才是平方函数(x ^ 2)的倒数,其中平方根函数是一对一的.我们可以说,当x <1时,平方根函数的负数是平方函数的倒数. 0仅因为x ^ 2 =( - x)^ 2.但这是square函数的一个特殊属性,一般来说肯定不正确.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读