摘要:
## 图的广度优先搜索 在DFS中,一旦发现一个新节点就会立即执行从它开始的递归,这个算法一开始执行就会离源点越来越远,因此称为“深度优先”。这种搜索方式与“栈”后进先出的特性是相同的,我们甚至可以避免递归而用“栈”来实现图的深度优先搜索。 与“后进先出”的栈相对应是“先进先出”的“队列”。把源点推 阅读全文
摘要:
## 无向图的深度优先搜索 ### 深度优先搜索的算法过程 在图上做DFS时,我们从某个点出发,递归地访问所有与该节点有边相连的节点。在这个过程中,我们用数组vis记录下每个点是否被访问过,在每次访问相邻节点的时候只访问那些没有被访问过的,由此来保证每个节点只被访问一次。如果我们不停找没有被访问过的 阅读全文
摘要:
现在,我们想要研究不止一个质点的运动学。首先要指出,在质点系的运动学时,除了不停应用牛顿定律的组合以外,没有任何新的东西。而这样的组合很多时候是复杂的。我们的工作是找到一些方法,来使得复杂的分析变得简单。 二维空间中的转动 质心 当我们把一串木块抛到空中时,尽管每个木块都将做着复杂的运动,但我们能大 阅读全文
摘要:
字符串匹配的基本方法就是,逐位移动模式串,检查当前位置是否匹配。似乎只有这样才能够不遗漏地检查所有可能匹配上的情况。容易发现,这样做的复杂度是$O(nm)$的。而事实是,我们可以做到比这更好。 ## KMP 我们来考虑我们基本做法中的一个环节。当我们把模式串放在某个位置从头开始匹配时,在某一位的时候 阅读全文
摘要:
## 乘法的优化 暴力的乘法复杂度是$O(n^2)$的。 如果两个$n$位数$x,y$相乘(我们保证$n$是2的幂),那么我们按位把$x$分成$x_L,x_R$两半,$y$分成$y_L,y_R$,使得$x=x_L \cdot 2^{n/2}+x_R,y=y_L \cdot 2^{n/2}+y_R$。 阅读全文
摘要:
定义与严格化 对于一个数列${a_n}$,我们可以定义一个关于$z$的函数$F(z)=\sum\limits_{n \geq 0}a_nz^n$。这个函数就称为这个数列对应的生成函数。 生成函数实际上并不是数学分析意义中的多项式函数,这里的$z$并不是某个实数或复数,而是一个形式上的数,所对应的级数 阅读全文
摘要:
## 多元函数的微分 微分是对函数某一点附近的线性逼近,这一点在多元函数中依然是核心思想。 ### 偏导数 在一元函数的微分学中第一个被引进的概念就是“导数”,它本质上是一个极限,用线性的方式反应了函数在该点处的“变化率”。在多元函数中,我们想类比的定义“导数”。 由于自变量有多个, 我们先不同时考 阅读全文
摘要:
我们想要求出的是所有性质都不满足的元素,所以满足某条性质就是件“坏事”。所有满足某条性质的元素的集合就是一个“坏集合”。相反,所有性质都不满足的元素就是“好的”。坏集合以及坏集合的交是容易计算的。我们想要通过一种方法把各种坏集合的交集加加减减来求出好集合的大小,这就是容斥原理。 阅读全文
摘要:
如果数同一个东西有两种不同的数法,那么两种数法的表达式对应的结果必然相等。这样的组合证明方法叫做Double Counting。 阅读全文
摘要:
有$k$个球,装进$n$个箱子里,问有几种方案?分别讨论球是否相同,箱子是否相同,每个箱子至少一个、至多一个、没有限制,共12种不同情况。 阅读全文
摘要:
## 基本算数 一个整数可以用物体的个数来表示。比如用8个点我们就能表示数字8。但这样的话对于大的数字我们就必须用非常多的点,造成了不方便。因此为了更方便地表示一个数,我们通常要选择一个进制。我们在日常生活中常用的是10进制,在计算机中常用的是2进制,等等。 数$N$在$a$进制下需要$\log_a 阅读全文
摘要:
Euclid空间 对向量定义了加法和数乘,满足对加法和数乘封闭以及八条基本性质的空间称为线性空间。在线性空间的基础上定义两个向量的内积运算并满足正定律、交换律和分配律这三条性质的空间称为内积空间。在线性空间的基础上,定义向量的范数并满足正定律、三角不等式和提取常数范数这三条性质的空间称为赋范空间。在 阅读全文
摘要:
如果函数的参数类型不确定,可以使用函数模板 template <class T> T max(T a, T b){ return a>b ? a : b; } 如果类的成员类型不确定,可以使用类模板。这样定义类: template <class T> class qxz{ T a; } 在类外定义成 阅读全文
摘要:
Sartre P65 我认为写日记的危险就在这里:人们对一切都夸张,而且随时都在戒备着,又继续不断地歪曲事实真相。 P74 这真奇怪:我已经写满了十页,却还没有说出真话--最低限度没有把全部真话说出来。我在日期下面写上“今日无事可记”的时候,我是昧着良心写的。实际上,有一件小事情,一件既不可耻又非异 阅读全文
摘要:
重载运算符不会改变运算符的优先级,也无法改变运算符的运算对象数。 重载某个类的某个运算符就是写一个函数定义这个类中的这个运算符。声明函数:`qxz operator + (qxz b);`。这个函数可以是全局的,也可以是成员函数。如果是全局的,那么参数从左到右应该和运算符的运算对象相同;如果是成员函 阅读全文
摘要:
对称矩阵的谱分解 我们知道实对称矩阵是可对角化的,有 $$ S=Q \Lambda Q^\top $$ 其中$Q$是标准正交矩阵,$\Lambda$是由特征值构成的对角矩阵。设$Q=\begin{bmatrix}v_1 & \cdots & v_n\end{bmatrix}$,就有$S=\left[ 阅读全文
摘要:
用class qxz{ };定义一个类,其中private:以下的每一行都是私有成员,而public:以下的每一行都是公有成员(两者可以反复交叉出现多次)。私有成员只能被自己类中的成员函数访问,而公有成员可以被外部访问。 一般只把非常简单的成员函数在类定义中写出(这样写出的默认为内联函数),对于比较 阅读全文
摘要:
微分学的基本思想就是“丢掉高阶无穷小”。但是牛顿说过:“在数学中最微小的误差也不可忽略。”于是我们要问:“高阶无穷小为什么可以忽略?”为了说明“丢掉高阶无穷小”的确是可行的,必须建立严格的微分理论。 无穷小 首先我们需要严格刻画“无穷小”这个概念。无穷小显然不能通过“某个实数”这样静态地来刻画,它的 阅读全文
摘要:
从对偶空间看“矩阵的转置” 从向量空间的角度看“转置”似乎是一件神奇的事,无论从行向量还是从列向量的角度来看,转置的操作都拆散了原先的向量的结构。但转置前后的矩阵在性质上非常相近的。我们希望从线性映射的角度来理解转置。 对偶空间,对偶映射,线性泛函,对偶基的概念 我们知道一个线性映射$T:V \to 阅读全文
摘要:
定义与基本性质 可列个实数可以对应一个数列$x_n$,他们的和就是$x_1+x_2+\cdots$ 我们可以严格定义无穷(可列)多个数的和,这就是数项级数。类似反常积分的定义,我们也通过先求和再取极限的方式来定义。设前缀和$S_n=\sum\limits_{k=1}^{n}x_k$,那么就可以把$\ 阅读全文
摘要:
反常积分 定义 Riemann积分的定义要求被积函数是有界的,同时要求积分区间是有限闭区间。而在实际应用中经常会遇到函数是无界的以及积分区间是无穷的情况。因此我们要把Riemann积分进行推广。我们将会看到这种推广是自然的,并且函数无界和积分区间无穷的情形本质上是一回事。 积分是在描述曲边梯形的面积 阅读全文
摘要:
线性映射 定义和性质 设我们有一个从线性空间$V$到线性空间$W$的映射$T$,即$\forall v \in V$有$T(v) \in W$。如果满足$T(v+w)=T(v)+T(w),T(cv)=cT(v)$对任意$v,w \in V,c \in \R$恒成立,就称$T$是一个$V$到$W$的线 阅读全文
摘要:
总论 爱是一门艺术。如果爱是一门艺术,那就要求人们有这方面的知识并付出努力。如同任何一门艺术一样,我们需要理论,需要实践,需要把成为大师看得高于一切,这一目标必须占据整个身心。 许多人没有意识到爱是一种需要被学会的能力。第一,大多数人认为爱首先是自己能否被人爱,而不是自己有没有能力爱的问题。他们所 阅读全文
摘要:
定义 想要求出曲线下“曲边梯形”的面积,我们采用的方法是竖着把面积切成一格格细条的长方形,用每个长方形来近似代替每一小块面积,最后再把所有长方形的面积之和加起来。 我们认为,只要我们的切分“足够细”,那么我们得到的面积就会“足够接近”曲边梯形的面积。这里,我们在讨论一个极限过程,而在我们没有到达极限 阅读全文
摘要:
观察上述过程我们发现,关键是我们把某个矩阵$A$“写成了”$X^{-1}\Lambda X$的形式,其中$\Lambda$代表一个对角矩阵。这个过程称为矩阵$A$的对角化。 阅读全文