数学知识:和式的处理及二项式系数的运用
〇
这段时间看了一部分《具体数学》上的内容,正如第一章中所说,这本书的主要目的是:
说明不具备超人洞察力的人如何求解问题
也就是说,这本书主要讲述的是“那些本应该被讲授的硬数学技巧”。或者说是一种数学领域的通用技术,这也是“具体数学”名称的来源。
一、 和式
记号
与平时所用的
一个特殊的地方是逻辑判断深入和式:用方括号包含的逻辑命题,如果为真则为1,如果为假则为0。这对于(cpp)程序编写是非常友好的。
运算律
和式满足下面三种基本运算律:
- 分配律(提公因式):
∑k∈Kcak=c∑k∈Kak - 结合律(和式的合并):
∑k∈K(ak+bk)=∑k∈Kak+∑k∈Kbk 交换律(变量替换):
∑k∈Kak=∑p(k)∈Kap(k) p(k) 为一个置换
多重和式具有一些特殊的性质,例如:
- 合并和分离:
∑1≤i≤n∑i≤j≤nai,j=∑1≤i≤j≤nai,j - 交换求和顺序:
∑1≤i≤n∑i≤j≤nai,j=∑1≤j≤n∑1≤i≤jai,j - 一般分配律:
∑j∈J,k∈Kajbk=⎛⎝∑j∈Jaj⎞⎠(∑k∈Kbk)
这些性质虽然是显然的,但将在处理时带来巨大的方便。第二条有助于化简和式,第三条则可以在一些“求乘积的和”的计算时减小计算量。
一般技术
1. 猜测+归纳法
虽然名字不是很好听,但这在OI中是一种实用的策略。因为计算机暴力处理的速度是很快的,如果规律明显,往往可以一眼看出。而归纳证明就非常简单了。
2. 扰动法
扰动法的动机是在和式中加入一项,并用一个新和式表达之,从而解方程得出通解。用两个例子来解释这种方法:
(一): 几何级数
的封闭形式。
用扰动法加入一项:
解方程可以得出
当
(二): 平方和公式
考虑求
的封闭形式。
如果仍然用刚才的思路,我们会发现
两边的
3. 待定系数法
如果已知解的形式,我们可以用待定系数法得到原和式的封闭形式。例如:
先验知识告诉我们答案是一个
4. 有限微积分
下一部分详细介绍。
有限微积分
基本定义
有限微积分是离散数学对于微积分的回应,这种技术给出了求解和式的“不需要思考”的系统方法。考虑熟悉的微分算子的定义:
而离散中的“极限”就是1,自然地定义差分算子:
“算子(operator)”这个新概念是作用在函数上的运算,他给出了一个新函数。
简单的公式
微积分之所以方便是因为它有形如:
这样的优美公式,同样,有限微积分也有对应的优美的公式:
其中:
求和——离散的“积分”
微积分中可以用微分算子定义不定积分,也就是:
我们用同样的方式定义不定和式:
微积分基本定理指出:
同样有有限微积分基本定理:
但这些记号的直观意义是什么呢?不难证明:
这是最有用的定理之一(如果之前学习过数列差分这几乎是显然的)。我们正要用他解决序列求和的问题。
负指数下降阶乘幂
通过类比可以定义负指数下降阶乘幂:
可以证明仍然满足差分公式。而且这使得下降幂拥有了良好的性质:
重新发现平方和公式
这次我们用新的武器来重新发现这个公式:
用下降阶乘幂
两边的不定和式分别是:
那么原和式就变成:
展开和上面的公式完全相同。(但在具体应用中我们不必展开,因为阶乘幂也可以用类似霍纳法则的方法将求值降到
乘法公式和分部求和公式
微积分中的链式法则在有限微积分中很难推广,唯一的一个是:
其中
证明十分简单,只要从定义出发就可以。我们看一些应用:
练习: 利用乘法公式求
容易发现:
和从定义出发得到了相同的结果。
这个公式真正有用的地方是推出了广为称道的“分部求和法”,求公式两边求不定和式并整理得到:
这个公式大大拓展了求和的范围。对于两个式子的乘积,先求一个的不定和式,再用公式展开求另一个(特别是负指数阶乘幂时不定和式会降低幂次)。用一个例子来解释:
例题
求
的封闭形式。
利用裂项转化:
注意到(
则只要求不定和式
利用分部求和公式:
化简后得到
用阶乘幂表示并化简
根据有限微积分基本定理:
在后面对二项式恒等式的处理中,也可以看到有限微积分的强大威力。
二、 二项恒等式
基本定义
二项式系数是最常用的组合数,
特别指出,如果
二项恒等式
下面是十个最重要的二项恒等式。
- 展开式:
(nk)=n!k!(n−k)! - 对称恒等式:
(nk)=(nn−k) - 吸收/提取恒等式:
(rk)=rk(r−1k−1),k≠0 - 归纳恒等式:
(rk)=(r−1k)+(r−1k−1) - 上指标反转:
(rk)=(−1)k(k−r−1k) - 三项式版恒等式:
(rm)(mk)=(rk)(r−km−k) - 二项式定理:
(x+y)n=∑0≤k≤n(nk)xkyn−k - 平行求和法:
∑k≤n(r+kk)=(r+n+1n) - 上指标求和:
∑k≤n(km)=(n+1m+1),m,n≥0 - 范德蒙德卷积公式
∑k(rk)(sn−k)=(r+sn)
有限微积分证明二项恒等式
如果我们发现了一个不是很好处理的二项式,却又恰巧忘记了对应的恒等式,那么处理就变的棘手了。幸而我们有有限微积分的强大武器。
例题
不用归纳法,证明上指标求和法:
解:设
而根据有限微积分:
则
一个陷阱: 和微积分一样,要注意常量和变量的区别,否则将得出错误的答案。
利用标准技术求解惊悚的和式
例题:
这是一个实际问题:求
的封闭形式。
解:考虑两个东西乘积的和,首先考虑用吸收恒等式将其合并,而方法就是凑出上指标。不难发现:
展开并整理,得到:
前后分别处理,第一个和式考虑用上指标求和,替换枚举变量
化简得到:
这次可以动用上指标求和法:
这时在考虑第二部分,用吸收恒等式化简之,得到:
仍然仿照上面的处理,得到:
则
二项式反演
有时候一个问题是难于求解的,但其容斥的结果是便于求解的,也就是说,待求解的函数
的关系,就可以用解方程的手段在
这个公式前后完全对称,既具有美感又便于记忆。下面我们考虑用已有的知识证明之。
证明反演定理
注意:在证明中我们更关心细节和过程,以便在遇到更复杂的问题时尽快找到突破口。
由于定理左右对称,只需要证明
整理:
我们不希望一个未知的
这时后面的部分就独立出来了,我们只需要处理后半部分。我们希望二项式下边尽可能简单,以便使用平行求和法。替换循环变量
为了处理讨厌的
整理得到:
终于发现了熟悉的平行求和法的形式,这一项的结果可以立即书写出,就是:
即当且仅当
因此原命题成立。
错排公式——二项式反演的应用
考虑一个问题:n个人将帽子高高扔起,并捡起一个帽子,问每个人都不拿到自己帽子的情况有多少种。
这个问题等价于问不存在长度为1的循环的置换总数的计数。一种方便的解决方案是:设
这个递推式很容易找到一个组合解释,但这不在本文讨论的范畴。现在我们要用二项式反演的技术来解决这个问题,设
由于“至少有
整理后也就是:
这可以用反演定理变化为:
也就是:
经过检验,这个方程和上面的递推式在初始的几项有相同的结果。我们大概可以相信获得了一个正确的答案。
高阶差分法
当我们已经知道一个数列符合一个多项式,或者组合数时,如何快速求出数列的通项公式?一个方法是所谓“拉格朗日插值法”,但我们也可以用有限微积分和组合数的武器解决。回忆分析中的泰勒级数:
应该可以想到有限微积分也有类似的公式“牛顿级数”,形式和泰勒级数相同:
为了便于计算取
还记得物理必修一中的“逐差法”测加速度吗?其深层次的数学原理就在于此。用一个小情景来验证这个定理:
取值如下表所示:
x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | … |
---|---|---|---|---|---|---|---|---|
y = f(x) | 4 | 8 | 22 | 52 | 104 | 184 | 298 | … |
根据公式:
这个方法的一个好处是:一旦通过
即:
生成函数
在多项式系数中蕴含组合性质是有理由的,因为“多项式乘法”由于二项式定理被赋予了组合性质。更重要的是,两个n次多项式相乘只需要
生成函数的简单运用可以分为:
- 利用运算证明恒等式
- 利用封闭形式求解组合问题
- 利用多项式乘法(卷积)处理组合问题
证明恒等式
考虑之前的范德蒙德卷积公式:
每当出现
考虑
两式分别相乘,取次数为
就是原来的公式。
利用封闭形式解决问题
如果一个生成函数可以被表示成封闭形式,那当然可以为我们解决许多问题。考虑数列
解得:
而数列
另一个常用的数列
解得
考虑只包含
容易发现
解得:
如果一个数列为二项式系数的一行,即
封闭形式的乘积恰好表示了所代表序列的卷积,这是个很好的性质,有时候将帮助我们寻找问题的答案。仍然用那个经典的例题做解释:
例题: 我们要从苹果、香蕉、橘子和梨中拿一些水果出来,要求苹果只能拿偶数个,香蕉的个数要是5的倍数,橘子最多拿4个,梨要么不拿,要么只能拿一个。问按这样的要求拿n个水果的方案数。
解:分别用生成函数表示所有情景:
将他们全部乘起来,得到:
由于我们坚信出题人是仁慈的,这个分式一定可以化简。用长除法可以得出:
这样答案就有了,取
完了
参(zhao)考(ban)资(lai)料(yuan)
- 《具体数学》
- 《组合数学》