第四章 数学数据类型

第四章 数学数据类型

4.1集合

集合(set):通俗地说,集合(就是一堆对象,这些对象称为集合中的元素( element)。集合中的元素可以是任意的:数字、空间中的点,或是其他集合。一般来说,集合以一对大括号表示。

例如:

image-20220918172010731

对于大规模的无限集合,我们可以通过描述集合的生成方式来定义集合:

image-20220918172154203

注意:

  1. 集合中的元素没有前后顺序之分。
  2. 集合中不存在重复的元素,对任意对象来说,它要么是、要么不是这个集合的元素。
4.1.1 常用集合

常用集合的符号表示:

image-20220918173259631

4.1.2 集合的比较和组合

S ⊆ T S\subseteq T ST:表示集合S是集合T的子集,即集合S的每一个元素也同时是集合T的元素。(S和T可以相等)

S ⊈ T S \not\subseteq T ST:表示集合S不是集合T的子集。

S ⊂ T S\subset T ST:表示集合S是集合T的真子集。(S和T不相等)

S ⊄ T S \not\subset T ST:表示集合S不是集合T的真子集。

集合组合的几种基本方式:

X : : ={1,2,3}

Y : : ={2,3,4}

  1. A ∪ \cup B:集合A和B的并集,包含属于A或B或同时属于A,B的元素。

    X ∪ \cup Y = {1,2,3,4}

  2. A ∩ \cap B:集合A和B的交集,包含同时属于A和B的所有元素。

    X ∩ \cap Y = {2,3}

  3. A-B:集合A和B的差集 ,包含在A但不在B中的元素。

​ X-Y = {1},Y-X= {4}

​ 4. A ‾ \overline{A} A:集合A的补集,表示全域中所有不包含A的元素。

4.1.3 幂集

幂集:集合A的所有子集构成的集合称为A的幂集POW(A)

一般来说,如果A有n个元素,那么pow(A)共包含 2 n 2^n 2n个集合。

4.1.4 集合构造器标记

集合构造器标记是指对于那些不能通过直接列举元素,或是简单集合的并集和交集等,来描述的很难定义的集合,我们使用谓词来定义集合,即取使谓词为真的所有取值来构成一个集合。

例:

image-20220918194307512

4.1.5 证明集合相等

如果两个集合拥有完全相同的元素,那么这两个集合相等。也就是说,X=Y是指,对所有元素z,z∈X当且仅当z ∈ Y。"所以,集合相等可以通过 “iff” 定理来形式化定义和证明。

命题操作和集合操作:

我们可以采用检查相关谓词公式的永真性,来证明集合相等。

例如根据德摩根律

image-20220918195830033

我们可以推导出德摩根定律对应的集合等式:

image-20220918195856427

虽然命题操作和集合操作是相互对应的,但是一定不要混淆。“AND” “OR” 等操作只适用于真值,而 $\cup $ ∩ \cap 等操作只能应用于集合。如果错误使用,会导致其类型错误。

4.2 序列

集合是一种对对象进行分组的方法。另一个方法是序列,即对象的列表,这些对象又称序列的组件、成员或元素。一般用小括号表示,如(a,b,c)是一个三元序列。

集合和序列的区别:

  1. 集合中的元素是各不相同的,而序列中的元素可以重复。因此,(a, b, a)是一个长度为3的序列,而{a, b,a}是一个包含两个元素而不是三个元素的集合。
  2. 序列中的元素是有顺序的,而集合中的元素没有顺序。例如,(a, b,c)和(a, c,b)是两个不同的序列,而{a,b,c}和{a,c,b}是相同的集合。
  3. 空序列的标记不统一,这里我们使用 λ \lambda λ表示空序列。

集合和序列都有积运算。集合的笛卡儿积, S 1 × S 2 × … × S n S1×S2×…× Sn S1×S2××Sn ,是一个由序列构成的新集合,其中序列的第一个组件来自S1,第二个组件来自S2,依此类推。

例:image-20220918202545872

4.3 函数

4.3.1 域和像

函数将集合(称作域)中的每个元素,赋值给另一个集合(称作陪域)中的元素。记为: f : A − > B f:A->B fA>B f f f表示定义在域 A A A和陪域 B B B上的函数

例:
f 1 ( x ) : : = 1 x 2 f_1(x) :: = \frac{1}{x^2} f1(x)::=x21
其中x是一个实值变量
f 2 ( y , z ) : : = y 10 y z f_2(y,z)::=y10yz f2(y,z)::=y10yz
其中y和z是二进制字符串

此外,还可以通过计算域中每个元素的值来定义函数。例如,定义 f 5 ( y ) f_5(y) f5(y)等于自左至右查找二进制字符串y直至找到1时的字符长度,即
f 5 ( 0010 ) = 3 f_5(0010) = 3 f5(0010)=3

f 5 ( 100 ) = 1 f_5(100) = 1 f5(100)=1

f 5 ( 0000 ) = 未定义 f_5(0000) = 未定义 f5(0000)=未定义

注:由以上几个例子我们可以看出来,该处定义的函数与我们数学意义上的函数不太一样,它更像我们计算机中的函数。输入可以是各种数据类型的数据,通过执行定义的某种操作,输出结果,其结果也可以是各种数据类型。

数学中的函数:函数的近代定义是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示。

数集:正整数集、有理数集等

偏函数:定义域中可能存在某些元素没有被定义函数值。例如以上的 f 5 ( 0000 ) f_5(0000) f5(0000)

全函数:如果函数在定义域内的每一个元素上都有定义,则称之为全函数。

我们常常需要确定函数在某个参数集合上的值集。因此,如果 f : A → B f:A →B f:AB S S S A A A的子集,我们定义 f ( S ) f(S) f(S)为函数 f f f S S S的元素上的所有函数值的集合。即:

image-20220919093751881

**像:**在某个参数集合 S S S上应用 f f f ,即将 f f f逐点应用于 S S S,集合 f ( S ) f(S) f(S)称为 S S S f f f下的像。 f f f在所有可能的参数上应用,得到的值的集合,称为 f f f的值域。即:
值域( f ) : : = f ( 域( f ) ) 值域(f):: =f(域(f)) 值域(f::=f(域(f)

4.3.2 函数复合

抽象地说就是,在一系列步骤之后应用一个函数,然后接着应用下一个函数,依次继续,这种操作就是复合函数。函数 f f f g g g复合,意思是首先在参数上应用 f f f,得到 f ( x ) f(x) f(x),然后在这个结果上应用 g g g,得到 g ( f ( x ) ) g(f(x)) g(f(x))

定义:对函数 f : A → B f :A →B f:AB和函数 g : B → C g:B→C g:BC,复合函数 g o f g o f gof 是从 A A A C C C的函数,定义如下:
对所有 x ∈ A , ( g o f ) ( x ) : : = g ( f ( x ) ) x ∈ A,(g o f)(x)::= g(f(x)) xA(gof)(x)::=g(f(x))

4.4 二元关系

二元关系:定义了两个对象之间的关系。如实数的小于关系、子集关系等。

二元关系 R R R由以下三部分构成:

  1. 集合 A A A,称为R的
  2. 集合 B B B,称为R的陪域
  3. A × B A × B A×B的子集,称为 R R R图。

域为 A A A、陪域为 B B B的二元关系通常表述为“ A A A B B B之间”或“从 A A A B B B”。对于函数来说, R : A − → B R:A -→ B R:AB,
表示从 A A A B B B的关系 R R R。如果域和陪域是同一个集合 A A A,则简单表述为 A A A上的关系。通常,使用 a R b aR b aRb表示 ( a , b ) (a,b) (a,b)在图 R R R中。

二元关系与函数的区别:

函数:对于每个域元素a来说,图中至多存在一个对,满足该对的第一个元素是a。(不可以存在一对多的关系)

二元关系:可以存在一对多的关系。

其他区别:

二元关系的关系图是其笛卡尔积的子图,只要是子图即可,没有别的限制。

而函数关系的图要求比较严格,对于每个域元素a来说,图中至多存在一个对,满足该对的第一个元素是a。

4.4.1 关系图

关系的一些标准属性可以以图的形式可视化。在二元关系 R R R的关系图中,左边的列表示域,点表示域中的元素(如果 R R R的域无限大,那么列会非常长),右边的列表示陪域元素。箭头从左边的点 a a a(即域列)指向右边的点 b b b(即陪域列),表示关系 R R R中的元素对。

例:image-20220919104607009

二元关系的属性:

image-20220919104854129

注意:

关系图中的箭头其实就是R中的对。但是,只知道箭头本身并不足以确定R的属性,我们还需知道 R R R的域是什么。

4.4.2 关系的像

函数的像的概念可以直接拓展至关系的像。

**定义:**关系 R R R下的集合 Y Y Y的像,记为 R ( Y ) R(Y) R(Y),表示陪域 B B B中与 Y Y Y的某个元素对应的元素集合。用关系图解释, R ( Y ) R(Y) R(Y)就是从 Y Y Y中的某个点出发、箭头所指向的那些点的集合

**逆关系:**关系 R R R的逆即 R − 1 : A → B R^{-1}:A→B R1:AB表示从 B B B A A A的关系,定义如下
image-20220919111756695
换句话说,将R关系图中的箭头方向反过来,就得到 R − 1 R^{-1} R1

**逆像:**关系 R − 1 R^{-1} R1下集合的像称为这个集合的逆像。

4.5 有限基数

**定义:**如果A是有限集(指含有有限个元素的集合),那么A的基数|A|指A中元素的个数。

注:有限集中可以没有元素。

如果 R : A − > B R:A->B RA>B 是一个函数:那么 ∣ A ∣ > = 箭头个数 |A| >= 箭头个数 A>=箭头个数

如果 R R R是满射:那么 箭头个数 > = ∣ B ∣ 箭头个数>=|B| 箭头个数>=B

综上所述,如果 R R R是满射函数,则: ∣ A ∣ > = ∣ B ∣ |A|>=|B| A>=B

定义与引理:

image-20220919115503310

上述引理经推导可进一步扩展为:(这个地方没看明白,我认为|A|>=|B|并不能推出 A surj B)

image-20220920175158569

4.5.1 有限集有多少个子集

定理:如果一个集合有 n n n个元素,那么该集合有 2 n 2^n 2n个子集。即:

image-20220920180001610

实际上上述定理讲述的是,从 A A A的子集到 n n n比特序列 ( 0 , 1 ) n ({0,1})^n (0,1)n之间存在一个简单的双射。即,令 a 1 , a 2 , … … , a n a_1,a_2,……,a_n a1,a2,……,an A A A的元素,则每个子集 S ⊆ A S \subseteq A SA到比特序列 { b 1 , . . . , b n } \{b_1,...,b_n\} {b1,...,bn}之间的双射定义如下:

image-20220920180521875

例如,如果 n = 10 n = 10 n=10,则子集 { a 2 , a 3 , a 5 , a 7 , a 1 0 } \{a_2, a_3,a_5, a_7,a_10\} {a2,a3,a5,a7,a10}到1 0比特序列的映射为:

image-20220920181039728

image-20220920181124746

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值