汉诺塔问题

三个柱子,个面积互不相等的有孔圆盘一开始按照面积从上往下以此增大的顺序套在其中一个柱子上.

现在每次可以将某根柱子顶端的圆盘移动到另一根柱子顶端,要求这根柱子原本没有圆盘或者柱子顶端圆盘面积大于该圆盘.

求最小移动次数,使得所有圆盘移动到另一根柱子上.

不妨令表示答案,显然.

而我们一定可以找到一种方案,使得前个圆盘先移动到其中一根柱子上,然后将最下面的圆盘移动到目标柱子,最后再把个圆盘移动到目标柱子.由于这是一个可行解而不一定是最优解,我们有:.

而如果我们要移动最大的圆盘,一定要保证前n-1个圆盘已经移走到一根柱子上.因此一定有:.于是有.

Example1(《具体数学》1.2)

汉诺塔问题,所有圆盘一开始均在最左边的塔A上,要将他们全都移动到最右边的塔C上,不允许在二塔之间直接移动,求最小操作次数.

Solution 1

考虑设为n个圆盘时的最小操作次数.假设已知,我们考虑如何移动.

首先因为不能直接在AC之间移动,因此一定是先要把最大的圆盘移动到中间塔上,这一步要求先把所有圆盘移动到C上,然后需要再把这些圆盘移动回A上,因此,显然有:.

考虑如何求该式子的封闭形式,令,显然有,显然,有.

注意到刚好是三根柱子上所有合法排列的数量,并且这个过程中不可能出现某两个时刻的情况是相同的,因此1.3也可以证明.

Example2(《具体数学》1.4)

汉诺塔问题,问是否存在一种符合规则的初始摆放方式,使得将其全部移动到其中一根柱子所用次数小于等于.

Solution 2

不存在.

证明方式类似原初问题的证明,考虑最大的那个圆盘是否到达终点.如果到达则可以去掉它,用数学归纳证明不存在;如果还未到达,同样用数学归纳得到不等式.

Example3(《具体数学》1.10)

汉诺塔问题,但是移动圆盘时只能从A移动到B,从B移动到C,从C移动到A.一开始所有圆盘都在A,求将它们全部移动到B的最小操作次数,以及将他们从B移动回A的最小操作次数.

Solution 3

为将n个圆盘从A移动到B的最小操作次数,令为将n个圆盘从B移动回A的最小操作次数.

先考虑边界情况,.

我们考虑,由于柱子间在移动过程中是无区别的,因此的实质是将n个圆盘移动到它的下一个柱子的最小操作次数,的实质是将n个圆盘移动到它的上一个柱子的最小操作次数.

在将最大的圆盘移动到下一根柱子前,一定要先把上面的圆盘全部移动到上一根柱子上,最后再移动回来.

显然有.

在将最大的圆盘移动到上一根柱子前,一定要先把他移动到下一根柱子上,这个步骤要求我们把其他的圆盘移动到上一根柱子上.在这之后,我们又要把所有圆盘放到上一根柱子上来让最大圆盘到目标柱子,最后再移动回来.

.

Example4(《具体数学》1.11)

汉诺塔问题,但是每种大小的圆盘有两个,且其中一个可以摆放在另一个的上面.

a.如果相同圆盘无区别,求最小操作次数.

b.如果相同圆盘有区别,且最后需要还原原本二者的上下顺序,求最小操作次数.

Solution 4

a.仍然令为n对圆盘的最小操作次数,显然,可解得.

b.令为n对圆盘的最小操作次数,观察a问题,我们可以发现a问题转移之后,只有最下面的两个圆盘会交换顺序.而如果我们在b问题中只关注最下层两个圆盘的顺序,我们发现.

我们进行了四次a操作,那么次下面两个圆盘自然就顺序与原本相同了,因此这里的就是答案.

Example5(《具体数学》1.12)

类似Problem11,但第大的圆盘有个.

Solution 5

无区别,只是.

如果求封闭形式的话,显然有.

递归式的封闭形式

在上述问题中,我们已经有了以下式子:

.

如果很大,那么一步一步去计算是很复杂的,现在我们想知道一种更为快速的求出的方法.

换句话说,我们想要把表示为只与n有关的式子,我们称其为该递归式的封闭形式.

寻找循环节

Example(《具体数学》1.8)

解递归式:,保证.

Solution

注意到.

显然该递归式存在长度为的循环节.

数学归纳法

观察T序列的前几项,可以发现似乎有.

现在我们来证明它:

1.该公式对于成立,显然可验证.

2.若该公式对时成立,那该公式必然对成立.

因为有.

以上过程被称为数学归纳法.

Example(《具体数学》1.9)

求证:.

Solution

使用反向归纳法.

1.时,即基本不等式,显然成立.

2.若该式子对时成立,则该式子对n=2k时也成立.

不妨令,显然有.

同时有.

3.若该式子对时成立,则该式子对的时候也成立.

,有.

则显然时也成立.

由1和2,我们知道了对于n是二的整数次幂的情况,该公式成立,由3,我们又可以知道该公式对于任意一个存在比他大的二的整数次幂的数成立,因此该公式成立.

换元

考虑令,显然有:.即,显然,则.

这个做法可以做掉所有形如的递归式.我们有:

换元做掉这个式子.

转化和式

考虑递归式.如果我们能找到一个不为0的求和因子并满足.那么我们两面同时乘以,显然有:.

.显然有,则.

而我们也会发现.

Example1(快速排序时间复杂度)

结论:排序个数时,其期望复杂度满足:

不妨考虑两边同时乘以,有 .

显然也有.

二式相消,有.

而同时有.即:,可以使用转化和式的方法,两边乘以解决.

Example2

已知,,求.

注意到,则有,于是,,.

成套方法

如果我们有

\alpha & n=1\

2f(\frac n 2)+\beta & n=2k,k\in \mathbb{N_+}\

2f(\frac {n-1}2)+\gamma &n=2k+1,k\in \mathbb{N_+}

\end{cases}

其中.

该如何求出的封闭形式呢?

由于所有的未知数都是以加法运算连接,显然有,而有互不影响且无关.

那无论的取值如何,都不会受到影响,我们考虑的特殊情况,此时显然有.

接下来,我们考虑取的特殊值,去得到ABC之间的关系.

例如,当时,由递推式可知,那么有.

同理,时,可知,此时有.

显然可以通过解方程求得.

这个方法显然是通用方法,式子仅仅是例子,事实上,只要我们能证明互不影响且无关,我们就可以使用这个方法.

这个东西的原理是什么呢?显然是因为其中存在一个线性无关性对吧.

线性递推

一个常系数的阶线性递推关系形如:

时,称作齐次线性递推.

特征方程

我们称方程是该递推关系的特征方程,方程的解叫做该递推关系的特征根.

二阶线性齐次递推

若其特征方程有两个不同的根,那么存在两个常数,满足.

若其特征方程有两个相同的根,那么存在两个常数,满足.

先考虑前者的证明,首先考虑对于或者的情况,我们考虑求出一组来满足:

,可以解得:

接下来考虑数学归纳:

接下来考虑后者,首先我们有,考虑初始条件:

接下来我们考虑数学归纳:

我们接下来只需证明即可.根据方程,不难发现,根据,自然得证.

更一般的情况

直接在复数域上定义,此时我们规定.特别地,当的时候,定义的第项是,其余项是.在此基础上定义线性映射,立刻见到:.原因只需简单数学归纳.而此还可以引出线性无关.

在此基础上观察线性递推,不妨取,立刻应当见到如果的根并且重数为,那么都在中.这恰好是该线性递推空间的维数个.我们需要说明它们线性无关,不妨反证,假设出现了形如的情况,此时对右边直接操作若干次就可以把右边全部消成,在对着左边消几次就可以使得左边只留下最高次项,这个时候发现最高次项是消不掉的,原因是将每一个位置看作关于的多项式右边的是不会改变左边这边的每一个位置多项式的,这当然意味着不可能消干净.

再再进一步

我们都知道矩阵加速:也就是,.而我们又知道CH定理:,我们用多项式取膜,有,这就是解.

约瑟夫问题

考虑n个人围成一圈,从第一个人开始,每隔一个人就杀掉一个人.如10个人围成一圈时,杀人的顺序是.问最后幸存下来的人编号.

首先一定有J(1)=1.考虑第一遍杀掉n号或者n-1号之后,对整个圆圈进行重新编号.

那么当人数是偶数时,我们有;当人数是奇数时,我们杀掉一号,然后有.

整理得到:

仍然可以使用数学归纳,如果令.

.

要是注意力没有那么集中怎么办呢?考虑到这个东西显然和取膜有着不可分割的关系,我们不妨从开始编号:

这下相信是多少就很显然了,将写成二进制的形式,这个就相当于把首位抹去然后在末尾加个.

Example(《具体数学》1.15)

求约瑟夫问题中最后一名被杀死的人的编号.

Solution

显然有:

开始编号,自然有:

显然也可以用二进制表达其形式.

和式

和式的基本运算

分配律:

一般分配律:

结合律:

交换律:

交换求和顺序:

和式的封闭形式

交换顺序法

Example1(等差数列求和)

我们有:

Example2(切比雪夫单调不等式)

.

考虑恒等式.

那么我们有:

显然有以下式子:

(\sum_{i=1}na_i)(\sum_{j=1}nb_j)\geq n\sum_{i=1}^na_ib_i,\forall i<j,a_i\leq a_j且b_i\geq b_j\

上式被称为切比雪夫单调不等式.

值得一提的是,切比雪夫单调不等式其实是排序不等式的一个特化版本.

Example3(拉格朗日恒等式)

证明:

有:

扰动法

Example1(等比数列求和)

,有,其中.

Example2(平方和公式)

如果直接对该公式使用扰动法:

我们无法得到的封闭形式,但我们发现我们得到了的封闭形式.

那以此类推,我们设.

Example3(《具体数学》2.20)

,求.

Solution3

不妨考虑的值.

Example4(《具体数学》2.21)

.

Solution 4

转化为递归式

考虑和式,显然是递归式形式.

因此递归式所可以使用的方法同样可以在和式中使用.

Example1(《具体数学》2.13)

.

Solution1

,考虑使用成套方法.

不妨令.

,有.

,有.

显然可解得.

而原式中,.

Example2(《具体数学》2.19)

,求.

Solution 2

,两边同时乘以,有.

,有:

转化为积分形式

Example1(平方和公式)

考虑先求出一个近似解,然后再求误差.

考虑函数,显然.

接下来,我们考虑求得二者之间的误差,设,对其使用扰动法:

这样就得到了递归式,可以求得封闭形式.

还有一种方法是:

这是一个简单的和式.而,显然也可以求得.

Example2(某浙江高考题)

已知,估计的值.

考虑构造一个函数使得,那我们就可以将.

这个第一眼看上去就很有道理,而事实上也确实很有道理,原因是根据拉格朗日中值定理,,而对于增长率变化不大的函数,直接认为是有理可循的!

然后,原式子就变成了一个微分方程了,带入解得.这个精度已经足够选出来原本的放缩题的答案了.

,带入化简,得到的递推式:

算到这里,我们可以很轻易使用数学归纳法算出,这个精度已经挺不错的了,但是也让人觉得很不满意,因为这个误差项怎么和估计项是同阶的啊.

然后我开始估计了一下这个的阶,因为我其实没学过什么高超的高数技巧,所以我使用了OI的一些技巧来估计,不妨假设:

那么这个级别的.

如何理解这个级别?考虑别乱动的系数,我们有:

这警戒我们以后乱估计的时候千万别把搞混了,警钟长鸣.

这个时候大概估计一下会发现.

展开和收缩

Example1(平方和公式)

我们有:

整理得到.

Example2(《具体数学》2.14)

.

Solution 2

Example3(《具体数学》2.15)

.

Solution 3

ExampleEX

.

SolutionEX

ExampleEX2

.

SolutionEX2

,答案为.

有限微积分

移位算子

定义移位算子,使得.

差分算子

定义差分算子,类似于无限微积分中的D算子.

另外,不难发现有.

逆差分算子

定义逆差分算子,可以得到有限微积分的基本定理:

这里的又被称为不定和式,是差分等于的一个函数类.

值得一提的是,这里的与无限微积分中的有一定区别,这里的可以是满足的任意一个函数而不非得是常数函数.

定和式

如果,那么有.

值得一提的是,如果,显然有.

但如果,那么.

事实上,我们一定有:.

一些基本的公式

类比无限微积分中的,有:

类比无限微积分中的,有:

类比无限微积分中的,有:

根据组合数公式,有:

Example(平方和公式)

我们有:.

那么:

整理即可得到封闭形式.

值得一提的是:

与前面的方法不同,这里没有使用三次的二项式公式,而是使用了二次的斯特林公式负责将一般幂转化为下降幂.

高阶差分

考虑一阶差分是,那么二阶差分就是.

类似地,我们可以通过归纳法证明.

事实上有一种更简单的证明方法,由于,于是,由于,即可证明原式.

另外,不难发现如果是一个关于次多项式,那么是一个次多项式.同理,会是一个常数而会是,这个发现引出了牛顿级数.

Example([yLOI2020]灼)

首先不难发现对于一个位置,有意义的只有相邻的两个虫洞,设这两个位置分别为.

不难写出期望转移式子:,并且.

接下来如何做呢?

我们先对第一个式子进行变形:

的二阶差分是常数,也就是说是二次多项式,不难求得其二次项系数为又知道两个零点,显然可以得到的表达式.

牛顿级数

.而由于有斯特林数可以进行幂和下降幂的转换,则我们可以将其改写为.

我们设,于是有:.

也就是说,任何多项式都可以表示为二项式系数的倍数之和,我们称这样的展开式为的牛顿级数.

于是不难发现有:.如果我们令,则有:.那么牛顿级数的另一种表示即:.

另外,如果我们展开一下,我们可以得到公式:

.

如果我们将多项式还原,由于,有:

.

另外,如果,那么我们有:,根据多项式推理法,这个公式对都成立.

于是我们可以类似泰勒级数写出无限牛顿级数:

Example

.

如果我们令,不难发现,于是显然原式.

分部求和法则(Abel求和法)

两边取不定和,即可得到分部求和法则:

.

分部求和用一般和式表达如下,下式又被称为Abel求和法:

对于的特殊情况,应当有:

取两组数列,并令,立刻有:

Example1

.

根据分部求和法则,我们有:

.

改为定和式形式,显然有:

.

Example2

.

.

带入分部求和法则,显然有:

.

带入即可求出原式.

Example3(《具体数学》2.23)

.

Solution 3

,则.

根据分部求和法则,有:

Problem 4(《具体数学》2.24)

.

Solution 4

.

根据分部求和法则,有: