水泥数学 Part 1笔记

开始读水泥数学这本书,计划学到生成函数,然后再网上看点资料,学会多项式

对于一个一般的递归式

希望找到一个一般的封闭形式

对$n$列表发现可以表示成

的形式,且似乎有

其中$n=2^m+l,l\in[0,2^m)$

若要验证$(1.3)$,除了带回去分奇偶性验证,还有一种方法,是选取特殊的值,通过指定的$\alpha,\beta,\gamma$或者$f(n)$,相互求解,然后观察是否满足$(1.3)$

求解

然后得证

这一成套方法(repertoire method)运用于“线性的”递归时最为成功,关键在于式$(1.2)$


稍稍改变$(1.1)$的形式,改写成


$n=(b_mb_{m-1}\dots b_1b_0)_2$
,则
$f(n)=2^m\alpha+2^{m-1}\beta_{b_{m-1}}+\dots+\beta_{b_{0}}$
(因为最后
$f((b_m)_2)=f(1)=\alpha$
),即
$f(n)=(\alpha\beta_{b_{m-1}}\cdots\beta_{b_0})_2$

这样 $O(\log n)$ 时间内得解

推广 $(1.4)$ 的形式,改写成

展开容易得解 $f((b_mb_{m-1}\cdots b_0)_d)=(\alpha_{b_m}\beta_{b_{m-1}}\cdots \beta_{b_0})_c$