系统与 络安全
计算机相关
计算机发展史
1946-1958年第一代电子管计算机,主要用于科学计算、军事研究;
1959-1964年第二代晶体管计算机,主要用于数据处理;
1965-1970年第三代集成电路计算机,主要用于工业控制、科学计算、数据处理;
1971年至今为第四代大规模集成电路计算机,各行各业和家庭开始使用。
第一代计算机
1946年,美国研制出世界上第一台数字式电子计算机,是由美国宾夕法尼亚大学的物理学家约翰·莫克利(John Mauchly)和工程师普雷斯伯·埃克特(J.hesper.Eckert)领导研制的,取名为ENIAC(Elecotmnic Nurnerical Integrator And Calculator)。属于电子管计算机。
计算机分类
按用途分,可分为专用机、通用机;按规模分,可分为巨型机、大中型机、小型机、微型机
计算机硬件
主要可以分为五大类:CPU、内存、外存、输入设备、输出设备
CPU:
- CPU由运算器、控制器和寄存器组成,运算器进行各种算术运算和逻辑运算,控制器是计算机的指挥系统;
- CPU作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元;
- CPU的主要性能指标包括时钟主频、字长、高速缓存容量、指令集合和动态处理技术、制造工艺等;
- 1971年Intel公司推出了世界上第一款微处理器4004,CPU的主要生产厂商是Intel公司和AMD公司;
内存:
- ROM(read only memory),信息只能读取,一般不能修改,即使是停电也不会丢失
- RAM(random access memory),既可读取也可以写入数据,当电源关闭时,存储其中的数据会丢失
- cache(高速缓冲存储器),它位于cpu和内存之间,是一个读写速度比内存更快的存储器
外存:
- 硬盘:分为机械硬盘和固态硬盘(SSD)
- U盘:通过USB接口与电脑连接,实现即插即用
- 光盘(现在不经常有人用了,但是储存部分非常喜欢考光盘)
输入设备:
- 键盘、鼠标、手写笔、触摸屏、麦克风、扫描仪、摄像头等
输出设备:
- 显示器:主要有两个性能指标,分辨率和刷新频率
- 打印机、绘图仪、音响等
总线结构
- 总线(bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线(Data Bus,DB)、地址总线(Address Bus,AB)和控制总线(Control Bus,CB),分别用来传输数据、数据地址和控制信 。
计算机软件系统
- 没有安装软件的计算机系统称为”裸机” ,无法开展任何工作。计算机软件系统分成”系统软件”和“应用软件”两大类
图源:@坐着小板凳嗑瓜子
络相关
络的定义
计算机 络是指将地理位置不同的多台计算机、通过通信线路连接起来,在 络操作系统、 络管理软件及 络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
络的分类
按照范围分类
- 局域 LAN,在局部范围内的 络,覆盖直径一般是几米到10千米之间。 家里面用的无线 ,就属于局域
- 城域 MAN,一般是一个城市范围内的计算机互联,这种 络的连接距离一般是10到100千米之间。有些城市可能没有这种 络
,反正我这边有白给的城域 - 广域 WAN,广域 也称远程 ,所覆盖的范围比城域 更广,将不同城市之间的LAN或者MAN 络互联
按拓补结构分类
- 可分为星形、环形、 状形、总线型和混合型 络
络体系结构
国际标准化组织制定了开放式系统互联(OSI)模型,OSI模型把 络通信的工作分为7层,分别是物理层、数据链路层、 络层、传输层、会话层、表示层和应用层。 OSI模型是一种理论下的模型,(因为太复杂了,没有厂商愿意搞)而TCP/IP五层模拟(物理层、数据链路层、 络层、传输层、应用层) 已被广泛使用,成为 络互联事实上的标准。
图源:小鹏_加油(很详细的OSI模型解释,有兴趣的童鞋可以学习下)
图源:「已注销」 (另一位大牛)
小练习(很经典的一道题)
无论是 TCP/IP 模型还是 OSI 模型,都可以视为 络的分层模型,每个 络协议都会被归入某一层中。如果用现实生活中的例子来比喻这些“层”,以下最恰当的是( )
本题正确答案为:A,TCP/IP的五层模型,从发送方到接收方中间要经过应用层、传输层、 络层、数据链路层、物理层五层,如果有一层出了差错信息就发送不出去,接收方也同样要经过这五层,如果接收方有一层出了问题,那么接收方就收不到任何信息
因特 地址
- 一台计算机要访问 络上的另一台计算机,就必须知道对方的 址。因特 的 络包含两个部分:“IP地址” 和“域名地址”
IP地址
- IP地址是IP协议提供的一种统一的地址格式,它为互联 上的每一个 络和每一台主机分配一个逻辑地址, 以此来屏蔽物理地址的差异。按照TCP/IP协议规定,IP 地址用二进制来表示,常见的IP地址分为IPv4和IPv6.
- IP地址经常被写成十进制的形式,使用符 ”.”分开不同的字节,这种表示方法叫作“点分十进制表示 法” ,每个分段的数字在0~255(即0000 0000—-1111 1111)以内,比如192.168.7.27.
- IPv4的地址长度为32位,就是4个字节,由于2011年2月IPv4的地址分配完毕,设计了IPv6,IPv6的地址长 度是128位,是IPV4地址长度的4倍。
- IPv4地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验。
域名
- 域名是由一串”.”分割的名字,代表某一台计算机或者计算机组的名称,用于标识计算机的电子方位(有时 也指地理位置)。例如www.baidu.com是一个域名,和IP地址14.215.177.38相对应
- 域名的格式为:主机名.机构名. 络明.顶级域名,如www.sina.com.cn
- 顶级域名分为两大类,通用的( 络性质划分)和国家(地区)的。比如.edu用于教育机构,.gov用于政府部 门,.com商业组织。.cn中国,.hk中国香港
- 域名的最左边往往是一台主机的名字,通常用主机提供的服务表示,如www. FTP.mail.
DNS
- DNS是将域名和IP地址相互映射的一个分布式数据库.
因特 服务有万维 (www)、电子邮件、文件传输协议(FTP)、远程登录(Telnet)等。 常见的电子邮件协议有以下几种:SMTP、POP3、IMAP.
络安全
- 计算机最重要的是存储数据的安全,其面临的主要威胁包括:计算机病毒、非法访问、计算机电磁辐射、硬 件损坏等。
- 计算机病毒是指编制者在计算机程序中插入的破坏计算机功能或者数据的代码,它和其他工作程序一样,但 会破坏正常的程序和数据文件。恶性病毒甚至可使整个软件系统崩溃、数据全毁。
计算机安全的常用防护策略
- 杀毒软件 /li>
- 防火墙
- 不下载来路不明的软件及程序
- 不要随意浏览不安全 站
计算机语言
计算机语言分为三类:机器语言、汇编语言和高级语言。
机器语言
- 机器语言是用二进制代码表示的计算机能够直接识别和执行的指令集合。它是设计者通过计算机的 硬件结构,赋予的操作功能指令。
汇编语言
- 汇编语言是一种用助记符表示的,仍然面对机器的计算机语言,汇编语言也称为符 语言。汇编语 言写的源程序不能被计算机直接识别,必须使用某种特殊的软件将汇编语言写的源程序翻译和链接 成能被计算机直接识别的二进制代码
高级语言
- 高级语言是一种独立于机器,面向过程或对象的语言。C/C++/Pascal等高级语言执行编译方式, ASP/PHP/Java/Python等高级语言执行解释方式。
进制转换
进制的全称是进位计数制,是人为定义的带进位的计数方法, 对于任何一种进制—X进制,就表示每一位置上的数运算 时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
2进制整数转10进制
二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方(次方从0开始),再将其每个数进行相加。
10进制整数转2进制
采用”除2取余,逆序排列”。用十进制整数除2,可以得到一个商和余数;再用商去除2,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次逆序排列起来组合成二进制数。
2进制小数转10进制
小数点前开始依次乘以2的0次方,2的1次方,2的2次方等等 小数点后开始依次乘以2的-1次方,2的-2次方,2的-3次方等等 然后相加,得到的值即为换算后的十进制
10进制小数转2进制
整数部分除基(2)取余,直到商为0,将余数倒序排列; 小数部分乘基(2)取整,直至小数部分为0,正序排列。
信息编码、解码
- 计算机要处理的数据除了数值之外,还有各类符 、图形、图像和声音等非数值数据,计算机要处 理这些信息,首先必须将各类信息转换成0和1表示的代码,这一过程称为”编码” 。
- 能被计算机接收和处理的符 的集合都称为数据
- 比特是信息量的度量单位,而是信息量的最小单位。二进制数系统中,每个0或1就是一个bit(位)
- 字节是计算机信息技术用于计量存储容量的最小计量单位,一个字节有8个bit构成。
- 通常一个西文字符占一个字节,一个中文字符占两个字节。
- Unicode编码是计算机科学领域里的一项业界标准,包括字符集、编码方案等
NOIP常识
不知道你就输啦~
Noip
- National Olympiad in Informatics in Provinces,全国青少年信息学奥林匹克联赛,开办于1995 年,每年举办一届,联赛分初赛和复赛两个阶段。
- NOIP初赛为笔试,竞赛期间,任何人不得将试卷带出考场,初赛开始15分钟后选手不得进入考场, 竞赛结束30分钟前,选手不得退出考场。只允许携带笔、橡皮等非电子文具入场,禁止携带任何电子产品或设备入场。
- 复赛可以使用C C++ Pascal语言,2022年后将不可使用Pascal、C语言,只能使用C++
NOI 全国青少年计算机程序设计竞赛
- NOI是国内最高水平的竞赛,每年经各省选拔产生5名选手(其中一名是女选手)。
APIO
- APIO亚洲与太平洋地区信息学奥林匹克竞赛,是亚洲和太平洋每年举办一次
IOI
- IOI是由中国计算机学会组织代表队,代表中国参加每年一次的IOI,中国是IOI创始国之一。
CSP
- CSP非专业级别的软件能力认证(简称CCF CSP-JS),分两个级别,分别为CSP-J(入门组,Junior) 和CSP-S(提高组,Senior),均涉及算法和编程。任何人都可以 名参加。赛程分为初赛和复赛。
位运算
源码、反码、补码
- 计算机中的所有数据都是以二进制的形式进行存储和计算的。
- 计算机中一个int型变量使用4个字节(32个二进制位)进行存储。
- 符 位:4字节二进制的最高位用来存储正负 ,0表示正数,1表示负数。
- 原码:整数x的原码是在其绝对值的二进制基础上加上符 位。
例如:5的原码是:00000101, -5的原码是10000101;(八位二进制表示)。
- 反码:非负整数的反码=原码,负数的反码是在原码的基础上符 位不变,其他位取反。
例如:5的反码是:00000101, -5的反码是11111010;(八位二进制表示)。
- 补码:非负整数的补码=原码,负数的补码是在其反码的基础上符 位不变,然后+1。
例如:5的补码是:00000101, -5的补码是11111011;(八位二进制表示)
整数在计算机中都是以补码的形式进行存储的。
按位与(&)
双目运算符,参与运算的两个数据,按二进制位进行按位“与”运算。
运算规则:0&0=0 0&1=0 1&0=0 1&1=1
- 对于整数x,如果x & 1 == 0,则x是偶数,否则x是奇数。
- 对于整数x, x & x – 1的结果相当于删除x的二进制的最低位的1。
- 对于整数x,x & -x的结果就是x最低位1所表示的值。
按位或(|)
双目运算符,参与运算的两个数据,按二进制位进行按位“或”运算。
运算规则:0 | 0 = 0, 0 | 1 = 1,1 | 0 = 1,1 | 1 = 1
按位取反(~)
单目运算符,~x,将x的二进制位(包括符 位在内)全部取反
运算规则:~0 = 1, ~1 = 0(二进制位)
- ~scanf():判断scanf是否读取到文件末尾(无数据可读)。
按位异或(^)
双目运算符,参与运算的两个数据,按二进制位进行按位“异或”运算
运算规则:0 ^ 0 = 0, 0 ^ 1 = 1,1 ^ 0 = 1,1 ^ 1 = 0;
x ^ x = 0; x ^ 0 = x;异或支持交换律:a ^ b ^ c = a ^ c ^ b = b ^ a ^ c;
移位运算‘>’
- 左移运算‘>’:x >> y将x的二进制位整体右移y位,前面补y个0。
x >> 1的结果相当于将x /= 2(向下取整),x >> y 的结果相当于将x /= 2^y;
- 右移运算‘>>’:x >> y将x的二进制位整体右移y位,前面补y个0。
x >> 1的结果相当于将x /= 2(向下取整),x >> y 的结果相当于将x /= 2^y;
- 判断整数x的第i位(从右往左数)是否为1: 如果x & (1 << i – 1 ) != 0,则x的第i位为1,否则x的第i位为0。
运算符优先级(转自@流年llyz)
算法
算法是对特定问题求解步骤的一种描述即解决问题的操作步骤
同一个问题可以用不同的算法来解决,而一个算法质量的优劣将影响算法及程序的效率。一个算法 的评价主要从时间复杂度和空间复杂度来考虑。
一个算法必须满足以下五个重要的特征:
- 有穷性(算法的每个操作步骤都能在有限的时间内完成)
- 确定 性(算法中的每一步都必须有明确的定义)
- 输入(一个算法应该有0个或多个输入)
- 输出(一个算法应该 有一个或多个输出,没有输出的算法毫无意义)
- 可行性(一个算法必须遵循特定条件下的解题规则)。
时间复杂度
时间复杂度是指所需要的计算工作量,用算法所执行的基本运算次数来度量。常见的时间复杂度有: O(1),O(log2n),O(n),O(nlogn),O(n2)等
空间复杂度
空间复杂度是指执行这个算法所需要的内存空间,算法执行期间所需要的存储空间主要包括三部分: 输入数据所占的存储空间、程序本身所占的空间和算法执行过程中所占的空间。
常见算法
排序算法
排序算法主要分为以下几类
算法的优劣如下表:
两张图图源:@一像素
(以下动图图源皆为@一像素非常感谢!)
冒泡排序
相邻两个数相比,如a[j]跟a[j+1]比,如果a[j]>a[j+1],则将两个数相互交换
j++,重复以上步骤,第一趟结束后,最大数就会被确定在最后一位
i++,重复以上步骤,直到i到达n-1结束,排序完成
选择排序
第一个跟后面的所有数相比,如果小于(或大于)第一个数的时候,暂存较小数的下标,第一趟结束 后,将第一个数与暂存的那个最小(或最大)数进行交换,第一个数就是最小(或最大)的数
下标移到第二位,第二个数跟后面的所有数相比,一趟下来,确定第二小(或第二大)的数
重复以上步骤,直到指针移动到倒数第二位,确定倒数第二小(或倒数第二大)的数,那么最后一位 也就确定了,排序完成
插入排序
冒泡排序的速度很慢,但参加排序的序列局部或者整体有序时,这两种排序 能达到较快的速度,在这种情况下,快排反而慢了。当数据为随机数据时,快速排序远远快 于简单插入排序、冒泡排序等。
希尔排序
希尔排序是插入排序的一种,为了加快速度改进了插入排序
首先把记录按下标的一定增量分组,对每组使用直接插入排序算法排序
随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法 终止
归并排序
归并排序就是递归的将原始数组递归对半分隔,知道不能再分(只剩下一个元素)后,开始从最小的 数组向上归并排序
归并排序就是递归的将原始数组递归对半分隔,知道不能再分(只剩下一个元素)后,开始从最小 的数组向上归并排序
快速排序
选一个数作为基数(这里我们选第一个数),大于这个基数的放到右边,小于这个基数的放到左 边,等于这个基数的数可以放到左边或右边
一趟结束后,将基数放到中间分隔的位置,第二趟讲数组从基数的位置分为两半,分割后的两个 数组继续重复以上步骤,选基数、将小数放在基数左边,将大数放到基数右边,再分割数组,直到 数组不能再分为止,排序结束
堆排序
堆是具有一下性质的完全二叉树:每个节点的值都大于或等于其左右孩子节点的值,称为大根 堆,或者每个结点的值都小于或等于其左右孩子节点的值,称为小根堆
算法思想:①将无序序列构建成一个堆,根据升序降序需求选择大根堆或小根堆
②将堆顶元素与末尾元素交换,将最大元素沉到数组末端
③重新调整结果,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整和交 换步骤,直到整个序列有序
计数排序
根据待排序集合中最大元素和最小元素的差值范围,申请额外空间
遍历待排序集合,将每一个元素出现的次数记录到元素值对应的额外空间内
对额外空间内数据进行计算,得出每一个元素的正确位置
将待排序集合每一个元素移动到计算得出的正确位置上
桶排序
桶排序的大体思路是得到无序数组的取值范围,根据取值范围创建对应数量的桶,遍历数组, 把每个元素放到对应的桶中,按照顺序遍历桶中的每个元素,依次放到数组中,即可完成排序
基数排序
①基数排序第i趟待排序数组里的每个数i位数放到tempj(j=1~10)队列中
②从这10个队列中取出数据,重新放到原数组里,直到i大于带排序数的最大位
数学
唯一分解定理
唯一分解定理(算术基本定理):唯一分解定义也称为算术基本定理,可表述为:任何大于1的自然数, 都可以唯一分解成有限个质数的乘积。
数学公式表示:
最小公倍数
两个整数a,b的最小公倍数
根据唯一分解定理:
由上述推到可得:
埃氏筛法
图源:@1900_
埃氏筛法是埃拉托斯特尼筛法的简称,是由希腊数学家埃拉托斯特尼所提出的一种素数判定算法。
算法思想:质数的倍数必然不是质数
对于任意小于N的合数c,其必然是某个≤
求解N以内的所有质数时,只需要将所有N以内的质数的倍数删除,剩下的都是质数。
逻辑运算
与:and ∧ 或:or ∨ 异或:xor ⊕ 非:not 乛(实在打不出来打的笔画)
运算及比较:括 >非>与>或、异或(or与xor的优先级一样)
集合
例如全集{a,b,c,d,e,f,g},集合A{a,b,c},集合B{b,d,e}
并运算∪:比如A∪B,就是A集合和B集合里所有元素组成一个新集合,重复的元素只保留一份
交运算∩:比如A∩B,就是同时在A集合和B集合的元素组成一个新集合
差运算-:比如A-B,就是A集合删去A∩B里的元素后组成一个新集合
非运算~:比如~A,非运算有个特殊的要求:一定要说明全集,那么~A就为全集删去A集合中的元素,剩下 的元素组成一个新集合
排列组合
排列的定义
从n个不同元素中,任取m个不同的元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素 的一个排列;从n个不同元素中取出m个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的 排列数,用符
组合的定义
从n个不同元素中,任取m个元素并成一组,叫作从n个不同元素中取出m个元素的一个组合;从n个不 同元素中取出m个元素的所有组合个数,叫作从n个不同元素中取出m个元素的组合数,用符
抽屉原理
抽屉原理一般含义:把n+1个元素放到n个集合中,其中必定有一个集合里至少有两个元素。抽 屉原理有时也被称为鸽巢原理。从另一个角度说,把n-1件东西放入n个抽屉,则至少有一个抽屉是 空的。
容斥原理
在计数时,必须没有重复、没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计 数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容的所有对象的数目先计算 出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的 方法称为容斥原理
例如:一次期末考试,某班有15人数学得满分,有12人语文得满分,并且有4人语、数都是满分, 那么这个班至少有一门得满分的同学有多少人。 分析:依题意,被计数的事物有语、数得满分两类, “数学得满分”称为“A类元素” , “语文得满分” 称为“B类元素” , “语、数都是满分”称为“既是A类又是B类的元素” , “至少有一门得满分的同 学”称为“A类和B类元素个数”的总和。为15+12-4=23。
后记
写这种东西真的不容易,整整两天坐在电脑前面打字,查资料,排版,脖子都酸死了,但我希望我写的这些东西能帮助你过初赛,如果你看了我的文章,过了NOIP初赛,那也值了。
还是要感谢你们能看到这里,一共8k多字,看下来也不容易
要说的就这么多了,这些资料只能应对选择题,我先发布看看反响,反响好的话,我会抽时间把其他部分的也出了awa
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!