《计算机程序设计艺术 卷1:基本算法》 读书笔记 (一)
第一章
1.1 算法
算法的5个重要特征
- 有限性:算法必须在执行有限步之后终止(如果一个过程具备算法除有限性之外的所有特征,那么可称"计算方法")
- 确定性:算法的每一步都必须精确定义
- 输入:一个算法有0个或多个输入
- 输出:一个算法有1个或多个输出
- 可行性(有效性):所有操作必须足够基本,原则上人们可以用纸和笔在有限时间内准确地执行
计算方法定义为以下四元组\((Q,I,Ω,f)\)
\(I\):对于\(I\)中每个输入\(x\)定义一个计算序列 \(x_{0},x_{1},x_{2},...\)
\(\left\{\begin{matrix} x_{0} = x\\ x_{k + 1} = f(x_{k}), k \geqslant 0 \end{matrix}\right.\)
其中\(k\)是使\(x_{k}\)在\(Ω\)中的最小整数,也就是计算序列在\(k\)步内终止,此时就说从\(x\)产生输出\(x_{k}\)
\(Ω\):表示输出
\(Q\):包含子集\(I\)和\(Ω\)的集合,表示计算状态
\(f\):从\(Q\)到自身的函数,对于\(Ω\)中的每个元素\(q\),有\(f(q) = q\),表示计算规则
简单解释一下,就是\(I\)中的元素(输入)肯定会在\(k\)步以内变成\(Ω\)中的元素(输出)
\(k\)就是输入转成输出的最小步数
计算规则\(f\)是\(Q\)到自身的函数,是因为\(Q\)包含了\(I\)和\(Ω\),实际上是
\(I \rightarrow I\), \(I \rightarrow Ω\) 和 \(Ω \rightarrow Ω\)
习题
- \(t \leftarrow a\)
\(a \leftarrow b\)
\(b \leftarrow c\)
\(c \leftarrow d\)
\(d \leftarrow t\) - 当\(m_{0} < n_{0}\)时,有以下计算过程
\(f((m_{0}, n_{0})) = (m_{0}, n_{0}, 0, 1)\)
\(f((m_{0}, n_{0}, 0, 1)) = (m_{0}, n_{0}, m_{0}, 2)\) 第一次执行E1
\(f((m_{0}, n_{0}, m_{0}, 2)) = (m_{0}, n_{0}, m_{0}, 3)\)
\(f((m_{0}, n_{0}, m_{0}, 3)) = (n_{0}, m_{0}, m_{0}, 1)\)
\(f((n_{0}, m_{0}, m_{0}, 1)) = (n_{0}, m_{0}, r, 2)\) 第二次执行E1,\(m\)(此时为\(n_{0}\))必大于\(n\)(此时为$m_{0}) - 未解
- 57
习题待完成...

浙公网安备 33010602011771号