Fibonacci数列性质的组合证明
数列 1, 1, 2, 3, 5, 8, 13, 21, 34, … 叫做 Fibonacci 数列。这个数列有很多神奇的性质,其中一个性质是,每一个 Fibonacci 数的平方与它前后两个 Fibonacci 数的乘积相比一定正好相差 1 。具体地说,如果把第 n 个 Fibonacci 数记做 Fn ,那么有:
Fn+1 · Fn+1 - Fn · Fn+2 = (-1)n
今天看到了这个定理的一个组合数学证明,觉得非常有意思,在这里和大家分享。
Fibonacci 数有很多组合数学上的意义。比如说,用 1 × 1 和 1 × 2 的积木覆盖一个 1 × n 的棋盘,总的方案数恰好是 Fn+1 。下图显示的就是 n 较小时的一些实例:
这个规律背后的原因其实很简单:给出一个长度为 n 的棋盘后,它的覆盖方案可以分成两类,最后边放的是一个 1 × 1 的积木,或者最后边放的是一个 1 × 2 的积木。前一类情况下的方案数也就完全取决于前 n - 1 个格子的覆盖方案数,后一类情况下的方案数则等于前 n - 2 个格子的覆盖方案数。因此,如果用 f(n) 来表示 1 × n 棋盘的覆盖方案数,那么正好就有 f(n) = f(n - 1) + f(n - 2) 。另外,由于 f(1) = 1 , f(2) = 2 ,因而接下来的数 f(3), f(4), f(5), … 也就恰好构成了 Fibonacci 数列。
既然这样,那么用积木覆盖两个独立地 1 × n 棋盘,总方案数就是 Fn+1 · Fn+1 。不过,我们有意把这两个独立的棋盘像左图那样摆放。类似地,用积木覆盖一个 1 × (n+1) 棋盘加上另一个 1 × (n-1) 棋盘的总方案数则为 Fn · Fn+2 ,我们把这两个棋盘放成右图所示的样子。左图的覆盖方案和右图的覆盖方案之间有一种非常巧妙的一一对应关系。
对于左图中的任意一种覆盖方案,我们找出上下两块棋盘中所有位置重合的分割线,选出最右边的那条公共分割线,然后交换此分割线右侧的部分。这样,左图棋盘的每个覆盖方案就能变成右图棋盘的一个覆盖方案。根据同样的方法,右图棋盘的每个覆盖方案也能变回左图棋盘的覆盖方案,这就说明了 Fn+1 · Fn+1 和 Fn · Fn+2 是相当的。
等等,那为什么当 n 为偶数时, Fn+1 · Fn+1 比 Fn · Fn+2 要大 1 ,而 n 为奇数时, Fn+1 · Fn+1 会比 Fn · Fn+2 小 1 呢?神就神在这里。这是因为,刚才所说的一一对应关系并不是真的完全一一对应的。当 n 为偶数时,左图棋盘有一例极其特殊的覆盖方案无法对应到右图的棋盘——因为这种方案中根本没有重合的分割线。当 n 为奇数时,左图的棋盘就不再有如此特殊的覆盖方案了,但右图棋盘中却又多出了一例分割线没有重合的情况。这就证明了 Fn+1 · Fn+1 - Fn · Fn+2 = (-1)n 。
建议继续学习:
- 为什么Fibonacci数列相邻两项之比会趋于0.618? (阅读:4360)
- 千万不要迷信规律:大反例合集 (阅读:3769)
- 数学冷知识:不断取英文表达的字符数,最后总会得到数字4 (阅读:2588)
- 蛋疼研究之怎样刷屏最快? (阅读:2341)
- Hofstadter的非线性递推数列 (阅读:1960)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Matrix67 来源: Matrix67: My Blog
- 标签: Fibonacci 数列
- 发布时间:2012-01-29 20:18:00
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 图书馆的世界纪录
- [54] 如何拿下简短的域名
- [54] android 开发入门
- [52] Go Reflect 性能
- [52] Oracle MTS模式下 进程地址与会话信
- [49] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [41] 程序员技术练级攻略
- [35] 视觉调整-设计师 vs. 逻辑