CSP 初赛

1. 计算机常识

代别 年代 逻辑(电子)原件
第一代 1946 - 1958 电子管
第二代 1959-1964 晶体管
第三代 1965-1970 集成电路
第四代 1971至今 (超)大规模集成电路

\(ENIAC\) ,第一台电子计算机, 1946 年 2 月,美国宾夕法尼亚大学,占地 \(170 m^2\) ,质量 \(30 t\)\(18000+\) 电子管,每秒 \(5000\) 次加法运算。

计算机硬件设备由 存储器、运算器、控制器、输入设备和输出设备 组成。

图灵是英国人。

第一位程序员: \(\texttt{Augusta Ada Lovlace}\) ,英。

\(EDVAC\),离散变量自动电子计算机。

摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔 \(18\) 个月便会增加一倍,性能也提升一倍。

光三原色:红,蓝,绿。

2. 系统的基本结构

\(CPU\) ,由运算器、控制器和一些寄存器储存,性能指标:主频,字长。

运算器:进行各种算术运算和逻辑运算;控制器:计算机指挥系统。

存储器,用于保存各类程序数据信息,分两类

  1. 主存储器,主机的一部分,分为 \(RAM\)\(ROM\) ,和 \(Cache\) 三种。
  2. 辅助存储器,外部设备,存放站村不用的数据&程序,永久存储器,于 \(CPU\) 的关系:

\(CPU \leftrightarrows 内存储器 \leftrightarrows 外存储器\)

  1. \(RAM\) ,读写存储器,断电数据丢失;
  2. \(ROM\) ,只读不写和修改的存储器,断电不丢失数据,检查系统配置情况,提供最基本 \(IO\) 控制程序;
  3. \(Cache\) ,在 \(CPU\) 与内存间设置的一级或二级高速小容量存储器,称为高数缓冲存储器。

把数据从外读入 \(RAM\) ,在从 \(RAM\) 读入 \(Cache\) 中,\(CPU\) 直接从 \(Cache\) 中取数据操作。
\(CPU \leftrightarrows Cache \leftrightarrows 内存储器 \leftrightarrows 外存储器\)

常用外存储器:软盘、硬盘、闪存(优盘)和光盘。

软盘存储器由软盘、软盘驱动器、软盘适配器三部分组成。

硬盘存储器由电机和硬盘组成的,一般置于主机箱内。

光盘分为三类:只读,一次性写入型,可擦写。

总线结构:数据总线(\(DB\)) 、地址总线(\(AB\))、控制总线(\(CB\))。

性能标准:

  1. 字长:指计算机能处理的二进制代码的位数,字长越多,表示数值范围越大没计算结果有效数位更多,表示信息越多,功能越强。
  2. 运算速度:指每秒能执行的命令条数,单位: \(MIPS\) ,每秒百万条指令。
  3. 主频: \(CPU\) 的时钟频率,决定运算速度,越高,速度越快,单位: \(MHz\)兆赫或 \(GHz\) 吉赫。
  4. 内存:内存储器中能存储信息的字节总数,单位: \(GB\) ,目前有 \(2GB\)\(4GB\)\(8GB\) 等。

3. 计算机语言

计算语言:二进制语言。

汇编语言属于低级语言。

\[汇编源程序 \xrightarrow{编译程序} 目标程序 \xrightarrow{连接程序} 可执行程序 \]

\[汇编源程序翻译连接过程 \]

\[高级语言源程序 \xrightarrow{编译程序} 目标程序 \xrightarrow{连接程序} 可执行程序 \]

\[高级语言编译过程 \]

\[高级语言源程序 \xrightarrow{解释程序} 可执行程序 \]

\[高级语言解释过程 \]

编译性语言: \(C\) , \(C++\),\((Object)Pascal\) 等。解释性语言: \(PHP\) ,\(Ruby\),\(Java\) 等。

面向对象语言分为两种:

  1. 纯面向对象编程: \(Smalltalk\),\(EIFFEL\) 等;
  2. 混合型面向对象语言: \(C++\),\(Objective-C\) 等。

4. 数学类

基数于权:拿十进制举例,基数为 \(10\) ,百位的位权为 \(10^2\) ,十分位的位权为 \(10^{-1}\)

进制转换:

十进制转其他进制:倒除法;

其他进制转十进制:按位乘上位权;

十进制小数转二进制小数:乘二取余,顺序输出(到一停止)。

八进制转二进制:把每一位数转为二进制数:例: \((12.6)_8 = 001|010|110 = (1010.110)_2\)

二进制转八进制:分为小数位和整数位,分别三位一段转为数字(整数从后往前,小数从前往后):
例: \((1010.1101)_2 = (001|010)(110|100) = (12.64)_8\)

十六进制与二进制互转:与八进制二进制互转类似,改为四位一段。


设共 \(n\) 为二进制位:

原码: 符号位(正数为0,负数为1)+真值,表示范围为 \(0\) ~ \(2^n-1\)(无符号)或 \(-2^{n-1}\) ~ \(2^{n-1}-1\)(有符号)。
例: \(1010\) 的原码为 \(01010\)\(-1010\) 的原码为 \(11010\)

反码:正数为符号位+真值,负数为除符号位外按位取反,表示范围为\(-2^{n-1}-1\) ~ \(2^{n-1}-1\).
例: \(1010\) 的反码为 \(01010\)\(-1010\) 的反码为 \(10101\)

补码:正数为符号位+真值,负数为除符号位外按位取反,最低位加一,表示范围为\(-2^{n-1}\) ~ \(2^{n-1}-1\)
例: \(1010\) 的补码为 \(01010\)\(-1010\) 的补码为 \(10110\)\(-1\) 的补码为 \(11111111\) (以 \(8\) 位为例)。

浮点表示法:把一个二进制数通过移动小数点位置表示成阶码和尾数两部分。

逻辑运算

概念: 非:! 、与:& 、或:| 、异或: ^;
\(\wedge\) 相当于 && , \(\vee\) 相当于 || , \(\lnot\) 相当于 !

集合运算:

符号: 并运算: \(\cup\) , 交运算: \(\cap\) , 非运算: ~
概念:

  1. 并:两个集合内所有元素组成一个新组合;
  2. 交:同时在两个集合内的元素组成的一个新集合;
  3. 非:全集删去一个集合的元素,剩下的元素组成的一个新集合(要声明全集)。

信息编码

数据编码中的最小单位 \(Bit\) ,指 \(1\) 位二进制的数码。
字节:由八个 \(Bit\) 组成,是存储器系统的最小存取单位。

\(ASCII\) 编码:美国国家标准委员会制定的字符编码集,是一种 \(7\) 位二进制编码,能表示 \(128\) 种西文字符。
常用符号:

  1. 阿拉伯数字\(0\) ~ \(9\) : \(48\) ~ \(57\)
  2. 大写字母\(A\) ~ \(Z\)\(65\) ~ \(90\)
  3. 小写字母\(a\) ~ \(z\)\(97\) ~ \(122\)

汉字交换码

\(GB2312-80\) 标准包括了 \(6763\) 个汉字,按使用频度分为一级汉字 \(3755\) 个(按拼音排序)和二级汉字 \(3008\) 个(按部首排序),还包括标点、数种西文字母、图形、数码 \(682\) 个。

在相同点阵种,不论汉字笔画繁简,所占字节数相等。


网络知识

世界上最大的网络是因特网,其采用的网络协议为 \(TCP/IP\) 协议,是一种 \(4\) 层的协议方式。

\(IP\) 地址分为 \(IPv4\)\(IPv6\) 两大类。

域名结构: 开头.主机名.主机类别(.国家名)

缩写:

  1. \(LAN\) 局域网
  2. \(MAN\) 城域网
  3. \(WAN\) 广域网
  4. \(ISO\) 国际标准化组织
    (\(WAN\)\(WAN\) 一般由多个 \(LAN\) 构成)

网络拓扑结构:星形、总线形、环形、树形、网状形。


时间复杂度

递归程序&主定理

定义:将一个规模为 \(n\) 的问题,分治成 \(a\)\(\dfrac{n}{b}\) 的子问题,每次带来的额外计算为 \(\mathcal{O}(n^d)\)
,可得到以下关系式:

\(T(n)=aT(\dfrac{n}{b})+\mathcal{O}(n^d)\)

\(T(n) = \begin{cases} \mathcal{O(n^{\operatorname{log}_ba})} & a>b^d\\ \mathcal{O(n^d\operatorname{log}n)} & a=b^d\\ \mathcal{O(n^d)} & a<b^d\\ \end{cases}\)


计算机的主存储器容量达到 \(1GB\) 时,其地址的表示至少需要使用 \(30\)\(2\) 进位;

完全二叉树&满二叉树: 满二叉树:三角形的样子(感性理解),完全二叉树:满二叉树的最下面一层从右开始扣掉一段(;

树的遍历:前序,中序,后序

  • 前序:根->左->右
  • 中序:左->根->右
  • 后序:左->右->根
    以下图为例:

    前遍历访问顺序是序 abdgcefh ,中序遍历顺序是 dgbaechf ,则后序遍历的访问顺序 gdbehfca

插入排序和冒泡排序都是稳定的排序算法。
选择排序的平均时间复杂度为 \(O(n^2)\)
选择排序、快速排序、希尔排序、堆排序都是不稳定的排序算法。
堆排序的平均时间复杂度是 \(O(n\log n)\)
希尔排序复杂度下界为 \(O(n\log^2n)\)
快速排序最坏复杂度为 \(O(n\log^2n)\),平均为 \(O(n\log n)\)

\(n\) 个人写完了 \(n\) 张贺卡,互相交换,自己不拿回自己写的贺卡,共有多少种方法?
错排公式: \(d_n=(n-1)\times(d_{n-1}+d_{n-2})\) 特别:\(n=1\)\(0\)\(n=2\)\(1\)

二叉树,节点数为 \(n\) 有多少 \(H_n = \dfrac{(2n)!}{n!(n+1)!} = \dfrac{C^n_{2n}}{n+1}\) 种形态(卡特兰数)。

平面上有三条平行直线,每条直线上分别有 \(a\)\(b\)\(c\) 个点,且不同直线上三个点都不在同一条直线上。用这些点为顶点,能组成 \(C_a^2 \times (b+c) + C_b^2 \times (a+c) + C_c^2 \times (a+b) + a \times b \times c\) 个不同三角形。

x&=x-1 的作用为把 \(x\) 二进制下最右边的 \(1\) 变为 \(0\)

posted @ 2021-08-21 15:06  lxgw  阅读(231)  评论(0)    收藏  举报