斐波那契数性质 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 ...
随机推荐
- IE 浏览器设置 打开新的选项卡而不是弹出窗口
首先打开IE的页面 找到工具 —点击Internet选项
- HDFS命令行及JAVA API操作
查看进程 jps 访问hdfs: hadoop-root:50070 hdfs bash命令: hdfs dfs <1> -help: 显示命令的帮助的信息 <2> - ...
- vivado sdx 綜合報錯ERROR: [SdsCompiler 83-5019] Exiting sds++ : Error when calling 'aarch64-linux-gnu-g++ -c
ERROR: [SdsCompiler 83-5019] Exiting sds++ : Error when calling 'aarch64-linux-gnu-g++ -c 主函數 添加 頭文件 ...
- 搞清楚一道关于Integer的面试题【华为云技术分享】
请看题1: public class IntegerDemo { public static void main(String[] args) { Integer a = ; Integer b = ...
- ABP 使用cache缓存
using Abp.Application.Services.Dto; using Abp.Runtime.Caching; using Microsoft.Extensions.Configurat ...
- 调用日志输出错误:TypeError: 'int' object is not callable等
*)TypeError: 'int' object is not callable 错误信息: Traceback (most recent call last): File "Visual ...
- vue-cli项目中使用vw——相比flexible更原生的移动端解决方案
安装命令行输入: yarn add postcss-px-to-viewport 或 npm i postcss-px-to-viewport -save -dev 配置package.json中,在 ...
- js数组与字符串类型相同方法的比较
数组和字符串有很多相似的对方,比如数组和字符串都有以下方法: concat indexOf lastIndexOf slice includes 鉴于toString及valueOf方法基本类型都有, ...
- Object中defineProperty数据描述
Object.defineProperty是对对象中的属性进行数据描述的 使用语法: Object.defineProperty(obj,prop,descriptor) 使用示例: var data ...
- 关于Apache安全加固的总结
在给企业提加固方案的时候,检查服务器安全设置是必不可少的. “最小权限原则”: 当一个黑客在入侵一个网络并拿到webshell的后续就是思考是否需要提权.如果此刻的webshell直接是system或 ...