《学科导论》课程.docx
- 文档编号:30057669
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:19
- 大小:204.56KB
《学科导论》课程.docx
《《学科导论》课程.docx》由会员分享,可在线阅读,更多相关《《学科导论》课程.docx(19页珍藏版)》请在冰豆网上搜索。
《学科导论》课程
《学科导论》课程第一讲
信息表示与运算
1.1几种常用的数制
1.2.二进制数的算数运算
1.3数值数据的编码与表示
1.4计算机中数的表示方法
1.5信息的表示与编码
1.6数据结构
01.1几种常用的数制
数制-进位计数制的简称
日常生活中有许多不同的数制:
*十进制
*十二进制
*钟表的六十进制
*计算机、数字电路中用到的二进制
1.十进制数的表示
每一位有十个数码(0,1,2,3,4,5,6,7,8,9),超过9以后用进位来表示,这就是进位计数值,这种进位法称为十进制数、用加权计数表示一个十进制数。
例:
所以一个十进制数D可以表示成如下形式:
其中
是第i位的系数。
2.二进制数的表示
例:
一般
其中
是第i位的系数。
3.任意进制数的表示
计算机中常用到的还有八进制和十六进制
其中
是第i位的系数
其中
是第i位的系数
后缀D—表示十进制数例:
357D
后缀B—表示二进制数1101B
后缀O—表示八进制数247O
后缀H—表示十六进制数A5DH
4.不同数制间的转换
(1)二进制数与十进制数的转换
二进制→十进制
按权位展开运算(适用于整数、纯小数、带小数)
例:
十进制→二进制
除2取余(适用于整数)
(173)10=(10101101)2
R进制都可以这样处理,不过每次除以R。
乘2取整(适用于小数)
(0.6875)10=(0.1011)2
●每次只乘小数部分;
●乘的结果为0时,运算结束;
●有时连续乘2,不一定能使小数部分为0,说明该十进制小数不能用有限位二进制数表示,这时只要取足够多的位数,满足其精度要求即可;
●十进制→R进制都可以这样处理,只不过每次乘R;
●对于带小数,可按上述方法对整数和小数部分分别处理,再相加。
(2)八进制、十六进制与二进制数的转换
例:
八进制→二进制(231)8=(010011001)2
十六进制→二进制(7AC)16=(011110101100)2
二进制→八进制(10101.110)2=(25.6)8
二进制→十六进制(10101111.000101101100)2=(AF.16C)16
1.2.二进制数的算数运算
二进制数只有0和1二个代码,其加减乘除运算规则与十进制的相同,不过这里的进位、借位遵照“逢二进一、借一当二”的原则。
例:
加法减法
乘法除法
1.3数值数据的编码与表示
1.十进制数的二进制编码(BCD码)
十进制数共有0,1,2,3,4,5,6,7,8,9十个数字,至少要用4位二进制数字来表示,而4位二进制数字可以用来表示16个数,我们可在其中任选10种用来表示0,1,2,3,4,5,6,7,8,9。
选法不同就是不同的编码方案。
表1.1几种常见的BCD码
编码种类十进制数
8421码
余3码
2421码
5211码
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
0000
0001
0010
0011
0100
1011
1100
1101
1110
1111
0000
0001
0100
0101
0111
1000
1001
1100
1101
1111
权
8421
2421
5211
2.格雷码
主要特点:
相邻二个代码之间仅有一位取值不同,这样在代码转换的过程中不会产生过度“噪声”。
表1.24位格雷码与二进制代码的比较
十进制数
二进制代码
格雷码
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
3.美国信息交换标准代码(ASCII)
这是由美国国家标准化协会(ANSI)指定的一种信息代码,用二进制数来表示英文大、小写字母,运算符号及一些控制码等等,ASCII广泛应用于计算机和通信系统中。
1.4计算机中数的表示方法
计算机中的数都用二进制数表示
1.无符号数
二进制码的所有数都用来表示数的大小
例:
11010000B=216D
2.有符号数
称+1010000B=+88D-1010000B=-88D为真值
在计算机中,用最高位来表示符号,正号用“0”表示,负号用“1”表示
例01010000B=+88D11010000B=-88D
一个数在机器中的表示称为机器数,它有三种表示方法
表1.4机器数的三种表示方法
正数
负数
原码
符号位用“0”表示,其余各位为该数的绝对值
符号位用“1”表示,其余各位为该数的绝对值
反码
同上
符号位用“1”表示,其余各位将原码取反
补码
同上
将反码的个位加1
例
引入补码可以将减法运算变为加法运算
3.数的定点与浮点表示
(1)定点表示:
小数点在数中的位置是固定不变的,有2种表示方式
●规定小数点固定在数据的尾部,即认为参与运算的数均为整数
例:
01101010●
●规定小数点固定在符号位与数值位之间,即认为参与运算的数均为小数
例:
0●1101010
究竟采用哪种表达式,完全是实现约定的,因此运算时,必须对数据做适当的处理。
(2)浮点表示:
小数点在数中的位置不是固定的,而是浮动的。
例:
11001101→(+1101)-10
1.5信息的表示与编码
计算机处理、存储、传输的都是二进制数字。
●这些二进制数字如何用电信号去表示它?
●一位二进制数字最多能够携带多少信息?
●如何对这些信息进行编码?
1.二种典型的二进制信号
用高低电平表示1、0
用脉冲的有无表示1、0
2.信息的定量计算
【例1】一个黑盒中放有6个电阻,阻值为1、2、3的电阻分别为2个、1个、3个,将从盒子中取出阻值为i的电阻记为事件
(i=1,2,3),组成事件集X={x1,x2,x3},每个事件都是可能发生的,其发生的概率分布为
下面要计算当一个事件发生时我们获得了多少自信息量?
直观地看,自信息量的定义应满足以下四点:
①I(x)应该是q(x)的单调递减函数,概率小的事件一旦发生则赋予的信息量大,概率大的事件如果发生则赋予的信息量小;
②信息量应具有可加性,对于两个独立事件,其信息量应等于各事件自信息量之和;
③当q(x)=1时,I(x)=0,表示确定事件发生得不到任何信息;
④当q(x)=0时,I(x)→∞,表示不可能事件一旦发生,信息量将无穷大。
综合上述条件,数学上可证明,对数函数可以满足上述要求,将自信息量定义为
根据这个定义,上述黑盒中的电阻事件一旦发生我们将获得的信息量如下表所示
表1.3电阻事件概率分布及自信息量
消息xi
x1
x2
x3
概率分布q(xi)
1/3
1/6
1/2
自信息量I(xi)
log3
log6
log2
信息量的单位:
如果对数以2为底,则信息量的单位为bit(比特)
自信息量I(xi)代表两种含义:
①事件xi发生以前,表示事件发生的先验不确定性,一个事件不常出现,它的概率就小,当该事件发生时收信者获得的信息就多,或者说事件所携带的自信息量大,因此也可以说自信息量是随机事件的一个固有特征;
②当事件xi发生以后,表示事件xi所能提供的最大信息量(在无噪情况下)。
例如,I(x1)=log3就是能否取出1电阻的不确定性的度量。
如前所述,事件发生的过程就是不确定性减少的过程,如果取出一个电阻后,获得了log3的信息,那就把所有不确定性都排除了,就能唯一地确定取出的电阻就是阻值为1的电阻。
换言之,I(xi)是唯一地确定事件xi所必须提供的信息量。
从表1.3可以看出,概率小的事件携带的自信息量大,下面的例子可以更明确地说明这一点。
【例2】一个黑盒中放有2个阻值各为1、2的电阻,将从盒子中取出阻值为i的电阻记为事件
(i=1,2),组成事件集X={x1,x2},每个事件都是可能发生的,其发生的概率分布为
那么当一个事件发生时我们将获得-log(1/2)=log2=1(bit)的信息量,
所以1比特信息量就是两个互不相容的等可能事件之一发生时所提供的信息量。
也就是一位二进制数字所能携带的最大的信息量。
3.信息的编码
图1-2数字通信系统模型
信息的编码包括信源编码和信道编码,信源编码以提高传输效率为主,信道编码以提高传输可靠性为主。
在这里简单介绍信道编码(也称纠错编码)
【例3】线性分组码:
信息位k=4,码长n=7,记为(7,4)码。
信源符号4位一组:
u=(u3,u2,u2,u0),ui∈{0,1},i=0,1,2,3;
码符号7位一组:
C=(c6,c5,c4,c3,c2,c1,c0),cj∈{0,1},j=0,1,2,3,4,5,6;
码符号与信源符号的关系为
(1-1)
其中,c6,c5,c4,c2为信息位,c3,c1,c0为校验位,码符号位是信息位的线性组合,用矩阵表示式(1-1),得
(1-2)
将式(1-2)简记为c=uG,称
为生成矩阵。
表1.4列出了按式(1-2)生成的16个码字。
表1.4(7,4)线性分组码
信息组
码字
0000
0000000
0001
0000111
0010
0011001
0011
0011110
0100
0101010
0101
0101101
0110
0110011
0111
0110100
1000
1001011
1001
1001100
1010
1010010
1011
1010101
1100
1100001
1101
1100110
1110
1111000
1111
1111111
定义矩阵
可以验算,矩阵H与G正交,即满足
或
,因此有
(1-3)
结合图8-3就此例可将编、解码步骤归纳如下:
(1)信源输出序列u=(u3,u2,u2,u0);
(2)纠错编码器将u编码为c=uG=(c6,c5,c4,c3,c2,c1,c0);
(3)将c遣入信道传输,由于干扰,输出y=(y6,y5,y4,y3,y2,y1,y0);
(4)计算
,称s为y的伴随式,若s=0,根据式(1-3),知道y是选用码矢,传输无误;若s0,则y不是选用码矢,说明在传输过程中发生了误码;
例如,信息位u=0011,编码为c=0011110,假设传输中第2位出错,接收矢量为y=0111110,可算出伴随式
伴随式s与H矩阵中的第2列相同,由此判断接收矢量y中第2位出错。
1.6数据结构
1.数据结构的研究对象
计算机科学是一门研究用计算机进行信息表示和信息处理的科学,具体说,在计算机中信息是用数据来表示的,为了提高信息处理的有效性和可靠性,我们有必要研究数据的特性以及数据之间存在的关系,数据结构正是进行这种研究的一门课程,数据结构是计算机专业的核心课程之一。
简单地说,数据结构指的是数据之间的相互关系,即数据的组织形式,一般包括以下三个方面的的内容:
(1)数据之间的逻辑关系;
(2)数据元素及其关系在计算机存储器内的表示,称为数据的存储结构,也就是物理结构;
(3)数据的运算,即对数据进行的操作。
为了进一步理解数据结构,看下面的一些简单例子
【例4】学生信息检索问题。
学生信息包括学号、姓名、性别和成绩等。
如下表所示,表中的一行为一个记录,表示一个学生的信息(也称为一个数据元素),一列为一个属性。
数据排列的位置有先后次序,它们之间形成一种线性关系,称这种数据结构为线性表。
学号
姓名
性别
成绩
201003001
张三
男
85
201003002
李巧
女
63
201003003
王晓磊
男
90
…
201003056
黄鑫
男
45
【例5】某大学专业设置问题。
如图所示,一所大学可以下设多个学院,一个学院又办有多个专业,显然这种关系用“树”型结构来表示更形象。
树型结构通常用来表示结点的分层组织,结点之间是一对多的关系。
对树型结构主要操作有查找、修改、插入和删除等。
【例6】田径赛的时间安排问题
设有六个比赛项目,规定每个选手至多可参加三个项目,有五人报名参加比赛(如下表所示)设计比赛日程表,使得在尽可能短的时间内完成比赛。
姓名
项目1
项目2
项目3
丁丁
跳高
跳远
100米接力
马文
标枪
铅球
章富
标枪
100米接力
200米
李彬
铅球
200米
跳高
欧阳奋
跳远
200米
田径赛的时间安排问题解法
(1)设用如下六个不同的代号代表不同的项目:
跳高跳远标枪铅球100米接力200米
ABCDEF
(2)用顶点代表比赛项目
不能同时进行比赛的项目之间连上一条边。
(3)某选手比赛的项目必定有边相连。
因此,为了编写出一个“好”的程序,必须分析待处理对象的特征及各对象之间存在的关系,这就是数据结构这门课所要研究的问题。
早期:
主要用于数值计算。
数值计算解决问题一般步骤:
数学模型→选择计算机语言→编出程序→测试→最终解答。
数值计算的关键是:
如何得出数学模型(方程)?
后来:
处理逐渐扩大到非数值计算领域(能处理多种复杂的具有一定结构关系的数据)。
2.数据结构的基本概念和术语
(1)数据(Data):
是描述客观事物的数字、字符以及能输入到计算机中并被计算机程序处理的符号的集合——计算机化的信息载体。
如:
数值、字符、字符串、图形、声音等。
(2)数据元素(DataElement):
是数据的基本单位,是数据集合中的个体。
例如:
电话号码查询问题表中的一行,称为结点、顶点、记录等。
(3)数据项(DataItem):
是具有独立含义的数据最小单位。
(4)数据对象(DataObject):
是性质相同的数据元素的集合,是数据的一个子集。
(5)逻辑结构:
数据元素间抽象化的相互关系(简称为数据结构)。
与数据的存储无关,独立于计算机,它是从具体问题抽象出来的数学模型。
(6)存储结构(物理结构):
数据元素及其关系在计算机存储器中的存储方式。
是逻辑结构用计算机语言的实现,它依赖于计算机语言。
(7)抽象数据类型(ADT:
AbstractDataType):
是指机基于一切逻辑关系的数据类型以及定义在这个数据类型之上的一组操作。
它由元素、结构和操作三部分组成。
3.算法和算法描述
(1)什么是算法?
所谓算法(Algorithm)是描述计算机解决给定问题的操作过程(解题方法),即为解决某一特定问题而由若干条指令组成的有穷序列。
一个正确的算法必须满足以下五个准则:
●有穷性:
执行了有限条指令后一定要终止。
●确定性:
每步定义都是确切、无歧义的。
●可行性:
即算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现的。
●输入:
有0个或多个输入。
●输出:
有一个或多个输出(处理结果)。
●
(2)算法设计的要求
(1)正确性(Correctness):
解决问题正确。
(2)可读性(Readability):
清晰性、一致性、简明性、结构性、模块性。
(3)健壮性(Robustness):
当输入非法数据时,算法也能适当作出反映或进行处理,,不会产生莫名其妙的输出或死机。
(4)效率与低内存量需求:
效率:
算法的执行时间,执行时间短,效率高。
内存量需求:
算法在执行过程中所需要的最大空间。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学科导论 学科 导论 课程