闲话 7.12 - 斐波拉契拆分
贺自论文《FIBONACCI PARTITIONS》,
这个证明略去了一些繁而不难的分类讨论,感兴趣的(?)可以前往原论文查看。
根据欧拉五边形数定理,有:
这也是在 \(S=\N\) 集合的拆分中,奇数互异的拆分和偶数互异拆分的差值。这样的差值总是 \(0,1,-1\)。那么,还有什么 \(S\) 满足这样的性质呢?
\(\{F_n\}_{n\ge 2}\) 被证明也满足这样的性质,其中 \(F_n\) 是斐波拉契数,\(F_1=F_2=1\)。
这也就是说:
中,\(|a_i|\le 1\)。
我们先确认几个记号:\(r(n)\) 表示互异斐波那契拆分(下记为:互异拆分)个数,\(r_E(n),r_O(n)\) 是偶数、奇数个拆分个数。\(a_n=r_E(n)-r_O(n)\)。 美观原因,也记作 \(a(n)\)。
我们仅仅需要几个关于斐波那契数的基本事实:
以及齐肯多夫定理:每个数能唯一地表示成若干不相邻/重合的斐波那契数之和(称为最小表示)。我们将用 \(01\) 序列来表示不重合的斐波那契数之和,表示每个数有没有被选。
还有一个小结论:\(F_n\) 的任意互异拆分满足最后一个 \(1\) 后面(这里前是大,后是小,下同)的 \(0\) 个数的奇偶性和 \(n\) 相反。此外,\(F_3\) 出现而 \(F_2\) 未出现的互异拆分仅在 \(2\mid n\) 时唯一存在。
定理 \(1\):
除非只选 \(F_m\),必须选 \(F_{m-1}\)(由于 \((1)\))。根据这一点归纳证明即可。
推论:
根据 \(a_n=2r_E(n)-r(n)\) 即得到。
为了计算 \(n\) 不是斐波拉契数的情况,我们需要一个类似于拆贡献的操作(比较巧妙)。
设 \(n\) 的最小表示是 \(n=F_{k_1}+F_{k_2}+\dots\)(从大到小,下同),记 \(01\) 序列的前 \(k_1-k_2\) 项为第一段,后面的为第二段。
这有什么好处呢?第一是这个为我们提供了一个可以归纳的递归结构,因为两段分别是更短的 \(01\) 序列。第二是跨段的贡献非常少,这就是说,我们把所有互异拆分分为两类:
- 没有跨段的。也就是说,第一段的贡献和还是 \(F_{k_1}\),第二段的贡献和还是 \(n-F_{k_1}\)。
- 跨段的。注意到这样的情况和没有跨段的时候的第一段末尾是 \(10\),第二段开头是 \(0\) 的情况是一一对应的,因为只能这么过来。我们统计的时候通常统计这个一一对应的情况。
还容易证明:如果一个互异拆分选取了 \(F_{k_1}\),那么这个互异拆分的第一段一定和最小拆分一样(也就是后面都是 \(0\)),否则就爆了。(引理 \(1\))
我们约定,\(n_i\) 表示 \(n-F_{k_1}-F_{k_2}-\dots-F_{k_i}\)。
引理 \(2\):设 \(\newcommand \A{\overline} \A r(n)\) 是不包含 \(F_{k_1}\) 的互异拆分数。那么有:
证明:
即考察包含 \(F_{k_1}\) 的计数 \(r(n)-\A r(n)\)。此时根据引理 \(1\),第一段和最小拆分是一样的,因此全部这样的拆分属于第一类。此时考察后面的 \(01\) 序列,和对 \(n_1\) 的互异拆分数是一样的。
推论:\(\A r_E(n)=r_E(n)-r_O(n_1)\)。
引理 \(3\):
考虑两类的贡献!
第一类被允许分开考虑,第一段的贡献就是 \(r(F_{k_1-k_2+1})\),后面的贡献是 \(r(n_1)\)。根据定理 \(1\) 就可以得到。
第二类会产生,当且仅当 \(2\nmid k_1-k_2+1\),由于前面所述的小结论。既然这个时候第一段是唯一的,只需考虑第二段第一个位置是 \(0\) 的方案数。这就是 \(\A r(n_1)=r(n_1)-r(n_2)\)。加起来就证明了引理 \(3\)。
引理 \(4\):
这非常分讨,但是为了版面(而不是我自己都没看完)仅讲述大致思路。
考虑两类的贡献。第一类的贡献要求前后奇偶性相同。
第二类的贡献要求 \(k_1-k_2\equiv 0/2\pmod 4\)。这时前后奇偶性要求不同(因为 \(100\to 011\)),但是这种情况总有前面是奇数个 \(1\)。所以后面的就是 \(\A r_E(n_1)\)。这个分讨啊分讨。
定理 \(2\):
这是前面两个引理的直接应用。
定理 \(3\):
注意到 \(a(n)\equiv r(n)\pmod 2\) 就可以把问题转化为 \(|a_n|\le 1\)。
归纳,只需考虑 \(k_1-k_2\equiv 0\pmod 4\)。这个时候继续展开 \(a(n_1)\)。展开出来的结果是 \(k_2-k_3\equiv2\) 才会继续。
从原理上来讲,这样的过程是不可无限进行的。然而如果不能无限进行,这样的过程就失效了。因此 \(|a_n|\le 1\),证毕。