折叠中使用的模运算符的标识元素
Identity element of modulus operator to be used in fold
在函数范式中的折叠函数中,我们传递累加器值,该值通常被初始化为函数应用的运算符的标识元素。
对于列表的加法,它将是 0,对于乘法,它将是 1,依此类推。
即 +(0, a) = a
和
*(1, a) = a
那么 mod 运算符 %(identity, a) = a 会是什么呢?
Mod 将来自 [0,a)
所以身份似乎是不可能的。
我知道计算机不一定遵循 modulus 的数学定义。
此外是否所有运算符都具有标识元素,或者它取决于运算符应具有的某些特定属性?
有没有通用的方法来找到任何运算符的标识元素?
我的问题是:
- modulus 运算符的标识元素是什么(如果存在)? %(identity, a) = a
- 操作员是否必须遵循任何特定属性才能拥有身份?
- 如果操作员有身份,是否有通用的方法来查找其身份。
通常 折叠 是在称为 monoid [wiki].
的代数结构上完成的
幺半群是 代数 结构。它是在集合 S 上定义的,带有 associative 函数 f (模不是关联函数) .此外,应该有一个元素 e ∈ S 称为“*identity”元素。满足 f(e,x) = x 和 f(x,e) = x.
的元素
可以证明对于一个幺半群总是有一个个恒等元(所以不可能构造一个两个元都是恒等元的幺半群。证明如下:假设有两个元素 a 和 b 是中性元素,并且 a ≠ b,那么 f(a,b) = a(上面的定义),但是 f(a,b)=b 也成立,因为函数只能 return一个元素,而a≠b,就矛盾了,进而可以得出a = b.
我们不能为模运算(和自然、积分等)数定义幺半群,因为运算符应该是 关联的,对于这些集合,它不认为:(a % b) % c = a % (b % c).
回答你的问题(一般):
What is identity element for modulus operator if it exists? %(identity, a) = a
如果我们取自然数、整数、有理数、实数等,则模数没有恒等元。
Are there any specific properties that the operator must follow to have an identity?
简单地说就是有一个元素e ∈ S 使得 f(x, e) = x。我们可以从每个函数中 "construct" 这样的函数,只需选择一个元素 e ∈ S,然后定义为:f'(x,y) = x if y = e and f'(x,y) = f(x,y) 否则。
Is there a general way to find the identity of an operator if it has an identity.
由于上面显示我们可以为每个函数构造这样的函数,所以据我所知没有通用的方法来资助运算符的身份元素。
在函数范式中的折叠函数中,我们传递累加器值,该值通常被初始化为函数应用的运算符的标识元素。
对于列表的加法,它将是 0,对于乘法,它将是 1,依此类推。
即 +(0, a) = a
和
*(1, a) = a
那么 mod 运算符 %(identity, a) = a 会是什么呢?
Mod 将来自 [0,a)
所以身份似乎是不可能的。
我知道计算机不一定遵循 modulus 的数学定义。
此外是否所有运算符都具有标识元素,或者它取决于运算符应具有的某些特定属性?
有没有通用的方法来找到任何运算符的标识元素?
我的问题是:
- modulus 运算符的标识元素是什么(如果存在)? %(identity, a) = a
- 操作员是否必须遵循任何特定属性才能拥有身份?
- 如果操作员有身份,是否有通用的方法来查找其身份。
通常 折叠 是在称为 monoid [wiki].
的代数结构上完成的幺半群是 代数 结构。它是在集合 S 上定义的,带有 associative 函数 f (模不是关联函数) .此外,应该有一个元素 e ∈ S 称为“*identity”元素。满足 f(e,x) = x 和 f(x,e) = x.
的元素可以证明对于一个幺半群总是有一个个恒等元(所以不可能构造一个两个元都是恒等元的幺半群。证明如下:假设有两个元素 a 和 b 是中性元素,并且 a ≠ b,那么 f(a,b) = a(上面的定义),但是 f(a,b)=b 也成立,因为函数只能 return一个元素,而a≠b,就矛盾了,进而可以得出a = b.
我们不能为模运算(和自然、积分等)数定义幺半群,因为运算符应该是 关联的,对于这些集合,它不认为:(a % b) % c = a % (b % c).
回答你的问题(一般):
What is identity element for modulus operator if it exists? %(identity, a) = a
如果我们取自然数、整数、有理数、实数等,则模数没有恒等元。
Are there any specific properties that the operator must follow to have an identity?
简单地说就是有一个元素e ∈ S 使得 f(x, e) = x。我们可以从每个函数中 "construct" 这样的函数,只需选择一个元素 e ∈ S,然后定义为:f'(x,y) = x if y = e and f'(x,y) = f(x,y) 否则。
Is there a general way to find the identity of an operator if it has an identity.
由于上面显示我们可以为每个函数构造这样的函数,所以据我所知没有通用的方法来资助运算符的身份元素。