跳转到内容

Advertising:

逆运算

来自GSXAB的知识库
逆运算
术语名称 逆运算
英语名称 inverse operation

逆运算(inverse operation)是指某个运算中给定结果和其他操作数时求某个操作数的运算,本质是已知运算过程中一个操作数以外的全部其他操作数和运算结果,为求取操作数所进行的运算。

也可以说,固定运算中的某个操作数,将运算和其他操作数视为一个一元函数(即 Curry 化),对其求反函数,如果反函数总是可以表达成一个新运算作用于其他操作数的形式,则这个新的运算称为原有运算的逆运算。

有人会把求逆元的运算简称为逆运算,见对应词条。

比如 [math]\displaystyle{ 1+2=3 }[/math] ,对应的一个逆运算是在对 [math]\displaystyle{ f(x)=x+2 }[/math] 求满足 [math]\displaystyle{ f(x)=3 }[/math][math]\displaystyle{ x }[/math] ,这个相当于求其反函数。我们知道这里的反函数是 [math]\displaystyle{ f^{-1}(y) = y - 2 }[/math] 。由于加法运算中无论此处的 2 是什么具体的常量,都一定表现为减法运算,所以也会概括地说“减法是加法的逆运算”。类似地,一般说“开方和对数是乘方的逆运算”。一般来说,一元运算的逆运算就是其逆映射,或称逆运算;二元运算的逆运算有对应两个操作数的两个运算(如果满足交换律,则相同);三元运算有三个逆运算,依此类推。但是由于三元及以上的运算很少需要单独研究,也少有容易保证 Curry 化后仍然是双射的,一般只单独讨论二元函数的逆运算。

对于给定二元运算 [math]\displaystyle{ \bullet }[/math] ,若存在运算 [math]\displaystyle{ \circ }[/math] ,有:

  • [math]\displaystyle{ \forall a \forall b \forall c (a \bullet b = c \rightarrow a\circ c = b) }[/math] (或 [math]\displaystyle{ \forall a \forall b \forall c (a \bullet b = c \rightarrow c\circ a = b) }[/math] ),则称 [math]\displaystyle{ \circ }[/math] 是一个左逆运算(left inverse operation);
  • [math]\displaystyle{ \forall a \forall b \forall c (a \bullet b = c \rightarrow c\circ b = a) }[/math] (或 [math]\displaystyle{ \forall a \forall b \forall c (a \bullet b = c \rightarrow b\circ c = a) }[/math] ,则称 [math]\displaystyle{ \circ }[/math] 是一个右逆运算(right inverse operation)。

注:尽管定义中允许操作数顺序不同的运算,但只有操作数书写顺序差异的两个运算之间的差异是平凡的,在谈论逆运算的个数时一般忽略这个区别,只选择其中符合习惯的那一个。

注:对于可交换的二元运算,不区分左右逆运算。

Advertising: