The Proof of Fibonacci GCD
\[\Large \text{The Proof of Fibonacci GCD}\]
\[\text{By Sangber}\]
\(\text{Fibonacci Sequence}\)
\(\quad \quad \text{If we record sequence}\ \{F_n\}\ \text{as Fibonacci Sequence, then }\{F_n\} \text{ will have these properties:}\)
\[F_i = \begin{cases}1, & i\leq 2 \\ F_{i-1} + F_{i-2}, & \mathrm{otherwise}\end{cases}\]
\(\quad \quad \text{So we can see that } \{F_n\} \text{ is like “1,1,2,3,5,8,13,21...”.}\)
\(\text{GCD}\)
\(\quad \quad \text{“GCD” is the abbreviation of “Greatest Common Divisor”.}\)
\(\quad \quad \text{And we often record } (a, b) \text{ as the GCD of } a \text{ and } b.\)
\(\quad \quad \text{For example, } (12, 15) = 3, (48, 36) = 12.\)
\(\text{Two Theorems about GCD}\)
\(\text{Euclidean theorem}\)
\[(a, b) = (b, a \bmod b), a, b \in N_{+}\]
\(\text{The proof: }\)
- \(\text{If } a = b, (a, b) = a = b, \text{we can surely tell that the theorem is established.}\)
- \(\text{If } a < b, (b, a \bmod b) = (b, a) = (a, b), \text{the theorem is established.}\)
- \(\text{If } a > b, \text{we can assume that } a = k \times b + r, (k \in N_{+}, 0 \le r < b), \text{ so } a \bmod b = r. \\ \text{As for } \forall d, \text{meeting that } d|a \land d|b, d|(a - k \times b), \text{ actually it means } d | r. \\ \text{So we can tell that } (a, b) = (b, r), \text{ that is, } (a, b) = (b, a \bmod b).\)
\(\text{Stein's Algorithm}\)
\[(a, b) = (a, b - a),b > a\]
\(\text{The proof:}\)
\(\text{Actually, the proof of it is similar to that of Euclidean theorem, you can finish it yourselves.}\)
\(\text{One Lemma}\)
\[(F_n,F_{n - 1})=1, n \in N_{+}\]
\(\text{The Proof}\):
- \(\text{In the case of } n = 1 \text{ and } n = 2,\text{ the lemma is established obviously.}\)
- \(\text{In the case of } n \ge 2 :\)
\(\text{Obviously:}\)
\[F_n > F_{n - 1} > F_{n - 2}, F_n = F_{n - 1} + F_{n - 2}\]
\[\therefore F_n\ \bmod F_{n - 1} = F_{n - 2}\]
\(\quad \ \text{According to Euclidean theorem and the lemma above:}\)
\[(F_n,F_{n-1})=(F_{n-1},F_n\ \bmod\ F_{n-1})=(F_{n-1},F_{n-2})\]
\[\therefore (F_n,F_{n-1})=(F_{n-1},F_{n-2})=(F_{n-2},F_{n-3})= \cdots =(F_1,F_2)=1\]
\(\text{Fibonacci GCD}\)
\(\quad \quad \text{Here is the expression of the Fibonacci GCD:}\)
\[\forall n,m \in \text{Z}^{+},(F_n, F_m) = F_{(n, m)}\]
\(\text{The Proof of Fibonacci GCD}\)
\(\text{We assume that } n<m.\)
\(\text{Then we use } F_n \text{ and }F_{n+1} \text{ to express } F_{n + 2},F_{n + 3},F_{n + 4},F_{n + 5}\cdots\)
\[
\begin{aligned}
& F_{n + 2} = 1 F_n + 1 F_{n + 1} \\
& F_{n + 3} = 1 F_n + 2 F_{n + 1} \\
& F_{n + 4} = 2 F_n + 3 F_{n + 1} \\
& F_{n + 5} = 3 F_n + 5 F_{n + 1}
\end{aligned} \\
\cdots \cdots
\]
\(\text{We can see that in the expressions above, the coefficients of } F_n \text{ and } F_{n + 1} \text{ meet the properties of the Fibonacci Sequence.}\)
\[\therefore F_m=F_{m - n - 1} \times F_n + F_{m - n} \times F_{n + 1}\]
\[\therefore (F_n, F_m) = (F_n, F_{m - n - 1} \times F_n + F_{m - n} \times F_{n + 1})\]
\(\text{And obviously we can see that :}\)
\[F_n|F_{m-n-1}\times F_n\]
\[\therefore (F_n,F_m)=(F_n,F_{m-n}\times F_{n+1})\]
\(\text{According to the lemma above:}\)
\[(F_n, F_{n + 1}) = 1\]
\[\therefore (F_n, F_m) = (F_n, F_{m - n})\]
\(\text{All in all:}\)
\[\text{If }n<m,(F_n,F_m)=(F_n,F_{m-n})\]
\(\text{We can see that }, \text{the change rule of } n \text{ and } m \text{ meet Stein's Algorithm,so we finally discovered that }\)
\[(F_n,F_m)=F_{(n,m)}\]
\[\Large \text{That's all, thanks!}\]
\[\Huge Q\omega Q\]
The Proof of Fibonacci GCD的更多相关文章
- 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)
Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...
- 收集有用的 Javascript 片段
内容目录 数组 arrayMax arrayMin chunk compact countOccurrences deepFlatten difference distinctValuesOfArra ...
- 关于斐波拉契数列(Fibonacci)
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10 ...
- 使用并行的方法计算斐波那契数列 (Fibonacci)
更新:我的同事Terry告诉我有一种矩阵运算的方式计算斐波那契数列,更适于并行.他还提供了利用TBB的parallel_reduce模板计算斐波那契数列的代码(在TBB示例代码的基础上修改得来,比原始 ...
- (转)Fibonacci Tilings
Fibonacci numbers {Fn, n ≥ 0} satisfy the recurrence relation (1) Fn+2 = Fn+1 + Fn, along with the i ...
- fibonacci数列的性质和实现方法
fibonacci数列的性质和实现方法 1.gcd(fib(n),fib(m))=fib(gcd(n,m)) 证明:可以通过反证法先证fibonacci数列的任意相邻两项一定互素,然后可证n>m ...
- BZOJ 2813: 奇妙的Fibonacci
2813: 奇妙的Fibonacci Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 497 Solved: 134[Submit][Status][ ...
- Codeforces 902D/901B - GCD of Polynomials
传送门:http://codeforces.com/contest/902/problem/D 本题是一个数学问题——多项式整除. 对于两个整数a.b,求最大公约数gcd(a,b)的辗转相除法的函数如 ...
- 【学习笔记】关于最大公约数(gcd)的定理
手动博客搬家: 本文发表于20181004 00:21:28, 原地址https://blog.csdn.net/suncongbo/article/details/82935140 结论1 \[\g ...
随机推荐
- PTA的Python练习题(十三)
第4章-8 求分数序列前N项和 a=eval(input()) b=2 c=1 d=0 count=0 for i in range(a): count+=b/c d=b b=b+c c=d prin ...
- docker环境下mysql数据库的备份
#! /bin/bash DATE=`date +%Y%m%d%H%M%S` BACK_DATA=erp-${DATE}.sql #导出表结构,不包括表数据 #docker exec -i xin-m ...
- Python语言——map/reduce的用法
Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on Large Clus ...
- 01Git复习笔记
一.Git简介 Git是目前世界上最先进的分布式版本控制系统(没有之一). SVN是集中式版本控制工具. 有哪些GIT网站? https://github.com/ 全球最大的开源项目网站. http ...
- 单元测试及框架简介 --junit、jmock、mockito、powermock的简单使用
转 单元测试及框架简介 --junit.jmock.mockito.powermock的简单使用 2013年08月28日 14:33:06 luvinahlc 阅读数:6413 标签: 测试工具单元测 ...
- word2vec生成后缀名model文件处理
引入from gensim.models import word2vec 读取test02.model里面的词· model = word2vec.Word2Vec.load('test02.mode ...
- pycharm自定义代码段
PyCharm使用技巧:Live Templates(快速输入自定义代码片段):链接
- if,while,for循环
目录 if条件 while循环 for循环 拓展知识点 if条件 if 条件: code elif 条件: code else: code # 三元运算符 x = 10 y = 20 print(y ...
- C语言程序编译
原来GCC的含义是GNU C Compiler,当初知识编译C语言,而现在GCC不知编译C语言,除此之外它还支持编译Ada.C++.Java.Object C.Pascal.COBOL.等等许多语言, ...
- tensorflow文本分类实战——卷积神经网络CNN
首先说明使用的工具和环境:python3.6.8 tensorflow1.14.0 centos7.0(最好用Ubuntu) 关于环境的搭建只做简单说明,我这边是使用pip搭建了python的 ...