斐波那契数性质 gcd(F[n],F[m])=F[gcd(n,m)]
引理1
结论:
\[F(n)=F(m)F(n-m+1)+F(m-1)F(n-m)\]
推导:
\[
\begin{aligned}
F(n) &= F(n-1)+F(n-2) \\
&= 2F(n-2)+F(n-3) \\
&= 3F(n-3)+2F(n-4) \\
&= 5F(n-4)+3F(n-5) \\
&= \cdots \\
&= F(m)F(n-m+1)+F(m-1)F(n-m)
\end{aligned}
\]
看出系数的规律了,2=1+1,3=2+1,5=3+2,……
用数学归纳法严谨证明一下:
1)当\(m=2\)时,\(F(n)=F(2)F(n-2+1)+F(2-1)F(n-2)=F(n-1)+F(n-2)\)成立。
2)设当\(m=k \quad (2 \leq k \leq n-2)\)时,\(F(n)=F(k)F(n-k+1)+F(k-1)F(n-k)\)成立。
又\(\because F(k-1)=F(k+1)-F(k)\)
\(\therefore F(n)=F(k)F(n-k+1)+\left[F(k+1)-F(k)\right]F(n-k)\)
即\(F(n)=F(k+1)F(n-k)+F(k)\left[F(n-k+1)-F(n-k)\right]\)
又\(\because F(n-k+1)-F(n-k)=F(n-k-1)\)
\(\therefore F(n)=F(k+1)F(n-k)+F(k)F(n-k-1)\),说明当\(m=k+1\)时等式也成立。
综上,\(F(n)=F(m)F(n-m+1)+F(m-1)F(n-m)\)对于\([2,n-1]\)内的任意一个整数\(m\)都成立。
引理2
\[\gcd(F(n),F(n-1))=1\]
根据gcd更相减损性质:\(\gcd(a,b)=\gcd(b,a-b) \quad (a>b)\)
得\(\gcd(F(n),F(n-1))=\gcd(F(n-1),F(n)-F(n-1))=\gcd(F(n-1),F(n-2))\)
不断套用上式得到\(\gcd(F(n),F(n-1))=\gcd(F(2),F(1))=1\)
证明\(\gcd(F(n),F(m))=F(gcd(n,m))\)
由引理1可知
\(\gcd(F(n),F(m)) = \gcd(F(m)F(n-m+1)+F(m-1)F(n-m),F(m)) \quad (n>m)\)
而\(F(m)F(n-m+1)\)为\(F(m)\)的倍数,故
\(\gcd(F(n),F(m)) = \gcd(F(m-1)F(n-m),F(m))\) (gcd的更相减损,可以消掉\(F(m)\)的倍数)
因为\(F(m),F(m-1)\)互质,于是\(\gcd(F(n),F(m)) = \gcd(F(n-m),F(m))\)
递归上式,
\(\gcd(F(n),F(m)) = \gcd(F(n-m),F(m)) = \gcd(F(n-m-m),F(m)) = \cdots\)
\(\gcd(F(n),F(m)) = \gcd(F(n \mod m),F(m))\)
再递归上式,我们需要比较\(n \mod m\)与\(m\)谁更大,用大的数mod小的数。这不就是辗转相除法求最大公约数吗?
于是\(\gcd(F(n),F(m)) = \gcd(F(\gcd(n,m)),F(\gcd(n,m))) = F(\gcd(n,m))\)
证毕。
斐波那契数性质 gcd(F[n],F[m])=F[gcd(n,m)]的更多相关文章
- 算法笔记_001:斐波那契数的多种解法(Java)
本篇文章解决的问题来源于算法设计与分析课程的课堂作业,主要是运用多种方法来计算斐波那契数.具体问题及解法如下: 一.问题1: 问题描述:利用迭代算法寻找不超过编程环境能够支持的最大整数的斐波那契数是第 ...
- CodeForces - 450B Jzzhu and Sequences —— 斐波那契数、矩阵快速幂
题目链接:https://vjudge.net/problem/CodeForces-450B B. Jzzhu and Sequences time limit per test 1 second ...
- UVA 11582 Colossal Fibonacci Numbers! 大斐波那契数
大致题意:输入两个非负整数a,b和正整数n.计算f(a^b)%n.其中f[0]=f[1]=1, f[i+2]=f[i+1]+f[i]. 即计算大斐波那契数再取模. 一开始看到大斐波那契数,就想到了矩阵 ...
- 斐波那契数[XDU1049]
Problem 1049 - 斐波那契数 Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 1673 Ac ...
- C++求斐波那契数
题目内容:斐波那契数定义为:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>1且n为整数) 如果写出菲氏数列,则应该是: 0 1 1 2 3 5 8 13 21 34 …… ...
- Project Euler 104:Pandigital Fibonacci ends 两端为全数字的斐波那契数
Pandigital Fibonacci ends The Fibonacci sequence is defined by the recurrence relation: F[n] = F[n-1 ...
- DP:斐波纳契数
题目:输出第 n 个斐波纳契数(Fibonacci) 方法一.简单递归 这个就不说了,小n怡情,大n伤身啊……当n=40的时候,就明显感觉到卡了,不是一般的慢. //输出第n个 Fibonacci 数 ...
- HDU4549 M斐波那契数
M斐波那契数列 题目分析: M斐波那契数列F[n]是一种整数数列,它的定义例如以下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 如今给 ...
- [Swift]LeetCode509. 斐波那契数 | Fibonacci Number
The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such th ...
随机推荐
- Android开发遇到的一些小问题
1.文件下载时,默认只能用https,怎么用http协议: 在Manifest.xml文件中增加一个配置项: android:usesCleartextTraffic="true" ...
- TPad需求和迭代
需求和迭代最主要的区别是什么
- Effective.Java第1-11条
1. 考虑使用静态工厂方法替代构造方法 一个类可以提供一个公共静态工厂方法,它只是返回类实例的静态方法.例如JDK的Boolean的valueOf方法: public final class Bool ...
- 更新Linux内核
说明:为了安装Docker,当前虚拟机不满足要求,版本如下: [root@localhost116 ~]# uname -r -.el6.x86_64 [root@localhost116 ~]# c ...
- 【题解】Palindrome pairs [Codeforces159D]
[题解]Palindrome pairs [Codeforces159D] 传送门:\(Palindrome\) \(pairs\) \([CF159D]\) [题目描述] 给定一个长度为 \(N\) ...
- 每天固定备份db sqlserver
DECLARE @DBName varchar(255) DECLARE @DATABASES_Fetch int DECLARE DATABASES_CURSOR CURSOR FOR select ...
- RabbitMQ学习之Topics(5)
上一节,我们讲了direct exchange,这节我们讲下topic exchange Topic exchange 发送到topic exchange的messages不可以有一个随意的routi ...
- ssh in depth
前两天写了一篇关于ssh的相对比较入门的文章,重点介绍了ssh在免密登录场景下的应用. 本文试图对ssh更高级的话题做一下探讨,重点探讨一下ssh tunneling https://www.ssh. ...
- ubuntu Ifconfig只显示一个lo
第一步启动网卡 是网卡未启动 命令: ifconfig -a,显示所有网络接口的信息. ifconfig显示当前激活的网络接口信息 ifconfig eth0 up 启动网卡 ifconfig -a ...
- docker系列之一:初见docker
什么是docker? docker是目前linux最流行的容器技术,Docker 将应用程序与该程序的依赖,打包在一个文件里面.运行这个文件,就会生成一个虚拟容器.程序在这个虚拟容器里运行,就好像在真 ...