代数结构(Mathematical Structures)
定义:具有在对象上定义操作的对象集合及其附带属性构成代数结构或代数系统。(Note:这里我们只处理离散的代数结构)
如:[sets, ∩, ∪, -]; [ 3 × 3的矩阵, +, *, T]等
二元运算(Binary operation)
定义:对两个对象进行操作的运算称为二元运算
封闭律(Closure)
(设集合S有二元运算 * ,若对S中的任意两个元素a_1、a_2,都有:a_1 * a_2 ∈ S,则称运算 * 对集合S封闭)
交换律(Commutative)
(交换律也称为阿贝尔律(Abel律),设有代数(S, *),若对任意a_1,a_2∈S,都符合等式:a_1 * a_2 = a_2 * a_1, 那么称代数(S, *)运算符合交换律)
(容易得到:若(S, *)运算符合交换律,那么对于运算序列a_1*a_2*...*a_n,设θ(12...n)为任意重排列,那么有:)
(a_{θ(1)}*a_{θ(2)}*...*a_{θ(n)} = a_1*a_2*...*a_n)
结合律(Associative)
(结合律也称为卡特兰律(Catalan律),设有代数(S, *)对任意a_1,a_2,a_3∈S,都符合等式:(a_1*a_2)*a_3=a_1*(a_2*a_3)),
则称代数(S, *)运算符合结合律
(容易得到:若(S, *)运算符合结合律,那么对于运算序列a_1*a_2*...*a_n,无论我们的结合次序为何(无论以何种方式打括号),其结果必定相等)
打括号的总次数也称为Catalan数
分配律(Distributive)
(分配律也称为摩根律(Morgan律),在拥有大于等于2个运算的代数(S, *_1, *_2...*_n)中),(若有运算*_i,*_j满足a*_i[(*_j)_{l=1}^kb_t] = (*_j)_{l=1}^k(a*_jb_l),a,b_l∈S,则称*_i对*_j单向满足摩根律,记作*_i --> *_j)
(若*_i对*_j单向满足摩根律,并且*_j对*_i单向满足摩根律,则可以称*_i和*_j双向满足Morgan律,*_i <--> *_j)
如: (∩ <--> ∪)
(A ∩(B ∪ C)=(A ∩ B) ∪ (A ∩ C))
德·摩根律(De Morgan‘s laws)
(设一元操作符*和二元操作符口和o,德·摩根律指满足(x 口 y)^* =x^* 口 y^*和(x o y)^* =x^* o y^*)
单位元(Identity)
(单位元也称幺元,如果对于代数结构(S, *)中任意元素x∈S,均有e*x = x*e = x,我们就称e为单位元)
Note:我们称e为运算*的单位元
定理一:
如果e是操作符口的一个单位元,那么e是唯一的(单位元唯一性)
逆元(Inverse)
如果运算符口有单位元e,如果存在x 口 y = y 口 x = e,那么我们称x是关于操作符口的y的一个逆元,y也是关于操作符口的x的一个逆元(互为逆元)
定理二:
如果操作符口具有结合律,并且x的关于口的一个逆元为y,那么y是唯一的
集合上的二元运算
定义在集合上的二元运算是一个处处定义的函数(f: A×A -> A)
且需满足:
- f(a, b)的结果还在A中(即具有封闭性);
- 每个序偶仅对应一个A中的元素
EXP:
- A = Z(整数集),定义a*b = a+b
- *是定义在Z上的二元运算
- A = R(实数集),定义a*b = a/b
- *不是R上的二元运算(因为3/0无定义)
- A = (Z^+)(正整数集), 定义a*b = a-b
- *不是(Z^+)上的二元运算(因为2-5的结果不在集合A内)
- A = Z(整数集), 定义a*b = x,x满足x<a&&x<b
- (*不是Z上的二元运算(不满足对应的唯一性),这里的*只满足A×A -> A的关系,而不是函数)
运算表(Tables)
A是一个有限集(设有n个元素),*是定义在集合A上的二元运算,那么我们可以得到(n^{n^2})个运算表
定义在集合上的二元运算的性质
对于集合A中的元素a,b,c和二元运算*
- 可交换律(Commutative)
- (a*b = b*a)
- 可结合律(Associative)
- (a*(b*c) = (a*b)*c)
- 幂等律(Idempotent)
- (a*a = a)
EXP: