[亂搞]斐波那契數列與gcd之間一個有趣的定理
求證
\gcd(F_n,F_m)=F_{\gcd(n,m)}
其中 F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2) (n>1)
證明
聽說這是一個非常有用的定理,那麼就來隨便證(luan)明(gao)一下
Part 1
\gcd(F_n,F_{n-1})=1
證明:
\gcd(F_n,F_{n-1})=\gcd(F_{n}-F_{n-1},F_{n-1})=\gcd(F_{n-2},F_{n-1})
…… 歸納得證
Part 2
F_{n+m}=F_{n-1}F_{m}+F_{n}F_{m+1}
首先對於m=1顯然成立
對於m=2推一下也成立
然後我們來歸納一發,若m=k-1和m=k成立,那麼m=k+1也成立
F_{n+k+1}=F_{n+k}+F_{n+k-1}
=F_{n-1}F_{k}+F_{n}F_{k+1}+F_{n-1}F_{k-1}+F_{n}F_{k}
=F_{n-1}(F_{k}+F_{k-1})+F_{n}(F_{k+1}+F_{k})
=F_{n-1}F_{k+1}+F_{n}F_{k+2}
得證
Part 3
\gcd(F_{n+m},F_{n})=\gcd(F_n,F_m)
證明:
\gcd(F_{n+m},F_{n})=\gcd(F_{n-1}F_{m}+F_{n}F_{m+1},F_{n})=\gcd(F_{n-1}F_{m},F_{n})=\gcd(F_{m},F_{n})
得證
Part 4
\gcd(F_{n},F_{m})=F_{\gcd(n,m)}
Part 3 的結論也可以寫作
\gcd({F_{n},F_{m}})=\gcd({F_{n-m},F_{m}})
然後就是輾轉相除法來歸納一發就好了
以上本定理得證
相關文章
- PHP 與斐波那契數列PHP
- 斐波那契數列
- 斐波那契數列(Java)Java
- 斐波那契數列 (C#)C#
- 斐波那契數列詳解
- 斐波那契數
- js實現斐波那契數列JS
- 斐波那契數列js 實現JS
- 斐波那契數列演算法演算法
- 斐波那契數列Ⅳ【矩陣乘法】矩陣
- 演算法一:斐波那契阿數列演算法
- 設計一個程式,列印出1-200之間的斐波那契數列
- HDU 4549 M斐波那契數列(矩陣快速冪+費馬小定理)矩陣
- 演算法(1)斐波那契數列演算法
- 面試題9-斐波那契數列面試題
- [C103] 斐波那契數列
- 斐波那契數列的分治法計算
- 斐波那契數列的python實現Python
- 大數斐波那契數列的演算法演算法
- HDU 4549M斐波那契數列(矩陣快速冪+費馬小定理)矩陣
- 斐波那契數列魔法塔數字量與層數的關係
- 使用Python實現斐波那契數列Python
- JavaScript 實現:輸出斐波那契數列JavaScript
- js迭代器實現斐波那契數列JS
- 每日一算 -- 斐波那契數列型別題型別
- 計算斐波那契數列的演算法演算法
- 資料結構之斐波那契數列java實現資料結構Java
- Leedcode-斐波那契數
- 斐波那契數列的通項公式及證明公式
- 斐波那契數列三種實現函式函式
- 劍指offer-9-斐波那契數列-javaJava
- 斐波那契數列演算法 JS 實現演算法JS
- hdu 3117矩陣+斐波那契數列矩陣
- “天池PAI-DSW”建立一個斐波那契數列計算函式AI函式
- 斐波那契查詢
- 動態規劃法(一)從斐波那契數列談起動態規劃
- fibonacci斐波那契數列詳解 遞迴求Fn非遞迴求Fn求n最近的斐波那契數遞迴
- “斐波那契數列”問題的遞推演算法演算法