《离散数学导学》精炼——第10章(序列)

Learning never exhausts the mind.

引言

笔者一直觉得在计算机这一学科的学习中,离散数学是极为重要的知识基础。离散化的思想体现在计算机学科的方方面面。举例来说,“像素”这一概念是我们日常生活中耳熟能详的,将一个图片拆分成一个个极微小的像素,就是利用了离散化的思想。为了帮助大家打好离散数学的思维基础,笔者新开一个专栏,对《离散数学导学》这本书做一个精炼,使其更易理解。这篇文章是这个专栏的第六部分,主要介绍第10章。
1-3章传送门
4-5章传送门
6-7章传送门
8章传送门
9章传送门

正文

元包

元包就像一个有重复元素的集合,用[ ]表示。比如:

[a,a,b,b,c]是一个元包。

注意,元包不考虑顺序,只考虑元素的种类和数量,即[a,b,b,c]和[a,c,b,b]是同一个元包。

序列的定义

序列就像一个考虑顺序的元包,用< >表示。比如:

<a,b,b,c>是一个序列。

序列与函数的关系

序列是特殊的函数。

序列<a,b,b,c>也可以写成{1→a,2→b,3→b,4→c}的函数形式。

空序列

没有元素的序列就是空序列。

长度

序列的长度就是序列的势(见集合论的势运算符),也就是序列中元素的个数。若s是个序列,那么#s表示序列的长度。

连接

连接运算符︵,我们依旧用例子说明:

A=<1,2,3>,B=<4,5>,则A︵B=<1,2,3,4,5>

这个运算符的作用就是把后面的序列“连”到前面序列上。再举一个例子:

A=<a,b,c>,B=<a,b>,则A︵B=<a,b,c,a,b>

头尾运算符

头运算符(head)返回序列的第一个元素,尾运算符(tail)返回序列头之外的所有元素。举个例子说明:

A=<a,b,c>,则head A=a,tail A=<b,c>

注意:

  1. head运算符返回一个元素,tail运算符返回一个序列。
  2. 看下面这个序列,这个例子说明了tail运算符是将第一个元素去掉后返回的序列:

A=< a >,则head A=a,tail A=< >

限制运算符

↑运算符返回一个序列的子集。我们举一个例子:

序列A=<a,b,b,c>,B={b},则A↑B=<b,b>

注意:

  1. 限制运算符返回一个序列
  2. 它返回序列的顺序遵循运算符右边集合中的元素的顺序:

序列A=<a,b,b,c>,B={c,b},则A↑B=<c,b,b>

逆置运算符

reverse(逆置运算符),将整个序列颠倒过来。依旧用例子说明:

序列A=<a,b,c>,则reverse A=<c,b,a>

单射序列

考虑单射函数的定义,很容易想到:如果序列中没有重复的元素,那么这个序列就是单射序列。

<a,b,c>是单射序列,而<a,b,b,c>不是。

完结与后记

这本书序列之后基本就没有什么值得拿出来说说的了,所以这个专栏到这里也该告一段落了。作为第一个完结的专栏,至少这个专栏还是有上千的阅读量的,也算是对新人笔者的一点小小慰藉吧。很感谢你能看到这里,如果该专栏帮助到你了,我很高兴;如果没有什么帮助,那真是很对不起。一起进步,与君共勉!
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的算法讲解!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霜_哀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值