数制
- 位权
- 二进制 2k,八进制 8k,十六进制 16k
- 转为十进制
- Σ dk·bk
- 从十进制转换
- 除以基数,余数从下往上读
- 十六进制 ↔ 二进制
- 一位十六进制数 = 4 位二进制
- 二进制补码
- 按位取反后加 1
公式表、每个专题的关键方法步骤和 20 道练习题,完整解答附在最后。
设置各位,使其以 8 位补码存储 −24。按无符号数读取,该位模式的值 U 是多少?
把各位设置为 1000 1111 XOR 1110 1100 的 8 位结果。该结果的十进制值 R 是多少?
哪个公式与 (q ∧ r) → p 在逻辑上等价?点选它。
前提为 p → r; q → r、结论为 p → q 的论证是无效的。点选真值表中作为反例的那一行。
一个 4 选 1 多路选择器的选择输入为 S₁ = A 和 S₀ = B,数据输入分别接 I₀ = 0,I₁ = 1,I₂ = 1,I₃ = 1。在 A、B、C 的 8 种组合中,有多少种使输出 F = 1?求 N。
求 F(A, B, C, D) = Σm(1, 5, 7, 8, 12, 13, 14) + d(3, 9) 的最简 SOP 形式,其中 d 表示无关项。它包含多少个文字 L?
求满足 x ≡ 8 (mod 9) 和 x ≡ 1 (mod 10) 的最小正整数 x。
某个 RSA 密钥使用 p = 7,q = 17,e = 23。解密密文 c = 27:求消息 m。
递推式 T(n) = T(n − 1) + O(n) 的解是什么?
在有 V 个顶点、E 条边的图上,使用二叉堆的 Dijkstra 算法运行时间是多少?
AVL 树在每个节点上维持什么平衡条件?
为什么数据库常用 B+ 树而不是普通的 B 树来建立索引?
一个连通图有 19 个顶点和 25 条边。必须去掉多少条边 k 才能剩下一棵生成树?
克鲁斯卡尔算法构造最小生成树。点选它加入的第 5 条边;被跳过的边不计。
在关系代数中,投影运算符(π)对应于:
对于一个查询,什么是覆盖索引?
主机上的默认网关有什么作用?
为什么 TCP 为每个连接选择一个不可预测的初始序列号?
网络 172.31.0.0/16 被划分为前缀为 /19 的等大子网。共有多少个子网 N?
网络 192.168.194.0/24 用 VLSM 划分给以下局域网:A: 27 主机, B: 10 主机, C: 30 主机, D: 3 主机, E: 4 主机。子网从 .0 开始向上分配,主机最多的局域网先分配,每个局域网分配能容纳它的最小子网。局域网 B 的网络地址第四个八位组 x 是多少?
答案: U = 232
设置比特位:每一位对应 2 的一个幂(128、64、…、1)。一个十六进制数字恰好是四位,在 8 位补码中最左边的位权重为 −128。按位运算对每个位位置分别进行。
答案: R = 99
设置比特位:每一位对应 2 的一个幂(128、64、…、1)。一个十六进制数字恰好是四位,在 8 位补码中最左边的位权重为 −128。按位运算对每个位位置分别进行。
XOR 在两位不同时得 1。
答案: q → (r → p)
逻辑等价:两个公式在真值表的每一行取值都相同时,它们是等价(≡)的。重言式在每一行都为 1,矛盾式在每一行都为 0,偶然式则两者都不是。常用定律:德摩根律,¬(a ∧ b) ≡ ¬a ∨ ¬b 和 ¬(a ∨ b) ≡ ¬a ∧ ¬b;a → b ≡ ¬a ∨ b ≡ ¬b → ¬a(逆否命题);¬(a → b) ≡ a ∧ ¬b;以及分配律,a ∨ (b ∧ c) ≡ (a ∨ b) ∧ (a ∨ c)。
竖线之后的各列是按所示顺序排列的各个选项。
答案: p = 1, q = 0, r = 1
量词与论证:¬∀x P(x) ≡ ∃x ¬P(x),¬∃x P(x) ≡ ∀x ¬P(x)。把否定向内移动,交换它经过的每个量词,并用命题逻辑的定律否定内部的公式,例如 ¬(a → b) ≡ a ∧ ¬b。当所有前提为 1 的每一行中结论也为 1 时,论证是有效的。只要有一行前提为真而结论为假,它就是反例,说明论证无效。
这种形式的论证看起来像有效的规则,但只要有一行就足以说明它并不有效。
答案: N = 6
多路选择器:2ⁿ 选 1 多路选择器把其数据输入之一传到输出;选择线按二进制数读取,决定选哪一个。对于选择端 S₁S₀ = AB 的 4 选 1 MUX,F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃。把数据输入接到 0、1、C 或 C′,可使 MUX 产生 A、B、C 的任意函数,这是用一块芯片实现逻辑的常用方法。
答案: L = 7
卡诺图:各格按格雷码(00, 01, 11, 10)排列,所以相邻的格子(包括跨越边界的格子)恰好只有一个变量不同。把 1 圈成由 1、2、4、8 或 16 个格子组成的矩形,圈尽可能大、尽可能少,直到每个 1 都被覆盖。每个圈对应一个乘积项:圈内保持不变的变量。由 2ᵏ 个格子组成的圈会消去 k 个变量。无关项 (X) 可用来使圈变大,但不必被覆盖。改为圈 0 则得到最简 POS 形式。
由 1 和 X 能够构成的最大的圈。
答案: x = 71
逆元与同余式:a 模 n 有逆元,当且仅当 gcd(a, n) = 1。扩展欧几里得算法把 1 写成 s·n + t·a,于是 a⁻¹ ≡ t (mod n)。当 gcd(a, n) = 1 时,同余式 a·x ≡ b (mod n) 的解为 x ≡ a⁻¹·b。模数互素的两个同余式 x ≡ r₁ (mod m₁) 和 x ≡ r₂ (mod m₂) 在模 m₁·m₂ 下有唯一解(中国剩余定理)。欧拉函数 φ(n) 表示 1 到 n 中与 n 互素的数的个数:φ(n) = n·∏(1 − 1/p)。
答案: m = 90
模幂与 RSA:用反复平方法计算 aᵏ mod n:把 k 写成二进制,平方,每一步之后取模,并把对应二进制位为 1 的幂相乘。费马:对不整除 a 的素数 p,aᵖ⁻¹ ≡ 1 (mod p),所以指数可以对 p − 1 取模。RSA:选取素数 p 和 q,n = p·q,φ(n) = (p − 1)(q − 1);公钥指数 e 与 φ(n) 互素,私钥指数为 d = e⁻¹ mod φ(n)。用 c = mᵉ mod n 加密,用 m = cᵈ mod n 解密。
答案: D · O(n²)
工作量之和约为 n² / 2,这是选择排序的递推式,也是基准最差时快速排序的递推式。
答案: C · O((V + E) log V)
共有 V 次 extract-min 和至多 E 次 decrease-key 操作,每次为 O(log V);斐波那契堆可将其改进为 O(E + V log V)。
答案: D · 左右子树的高度之差至多为 1
平衡因子(左子树高度 − 右子树高度)必须为 −1、0 或 1;插入和删除之后通过旋转来恢复平衡。
答案: A · 所有记录都在相互链接的叶子中,使范围扫描很高效
在 B+ 树中,内部节点只用于引导查找,叶子按键的顺序链接起来,因此范围查询先找到第一个键,再沿着叶子向后走。
答案: k = 7
欧拉、哈密顿与树:连通图在每个顶点度数都为偶数时有欧拉回路(每条边经过一次,回到起点),在恰有两个顶点度数为奇数时有不是回路的欧拉通路;此时通路从一个奇度顶点走到另一个奇度顶点。哈密顿回路恰好经过每个顶点一次;Kn 有 (n − 1)!/2 条。n 个顶点的树有 n − 1 条边,有 m 条边的连通图在去掉 m − n + 1 条边后保留一棵生成树。
答案: 边 CE
最短路径与生成树:迪杰斯特拉算法每一轮确定一个顶点:暂定距离最小的未确定顶点。它的距离随即成为最终值,并且每个邻点 v 得到 d(v) = min(d(v), d(u) + w(u, v))。克鲁斯卡尔算法按从轻到重的顺序取边并跳过会形成圈的边,从而构造最小生成树;普里姆算法从一个起点出发扩展一棵树,每次加入离开这棵树的最轻的边。n 个顶点的生成树有 n − 1 条边。
答案: A · 选择哪些列出现在结果中
投影保留选定的属性(SELECT 列表),而选择 σ 保留满足条件的行(WHERE 子句)。
答案: A · 包含查询所需全部列的索引,因此不必读取表本身
如果所引用的列都在索引中,DBMS 就可以进行仅索引扫描,跳过读取表中的行,从而节省 I/O。
答案: D · 它是用于发往其他网络的流量的路由器
主机将发往非本地目的地的数据包发送给默认网关,通常就是其本地路由器。
答案: C · 避免与旧的段混淆,并使伪造的段更难被注入
随机的初始序列号能防止旧连接中延迟到达的段被接受,并使不在路径上的攻击者难以伪造有效的段。
答案: N = 8
IPv4 subnetting: an address has 32 bits. The prefix /p says how many leading bits identify the network; the remaining 32 − p bits number the hosts. A subnet has 2³²⁻ᵖ addresses, but the first (network address) and last (broadcast address) cannot be given to hosts, so 2³²⁻ᵖ − 2 hosts fit. Exceptions: a /31 (point-to-point link, RFC 3021) uses both of its 2 addresses for hosts, and a /32 is one single address (a single host or a loopback).
每个 /19 子网有 213 − 2 = 8190 个可用主机。
答案: x = 64
VLSM:每个局域网分配满足 2ʰ − 2 ≥ 其主机数的最小子网,即前缀 32 − h。先分配最大的子网,可使每个块都对齐在其自身大小的倍数上,因此网络地址就是各块大小依次相加的结果。
局域网 B:192.168.194.64/28。
ExamProblems · examproblems.com/courses/computer-science-fundamentals