斐波那契公约数的相关证明

\(\text{来一波斐波那契公约数的证明}QwQ\)

\(\text{已知} \{F_n\} \text{为斐波那契数列,求证:}\)
\[\forall\ n,m\in\text{Z}^{+},(F_n,F_m)=F_{(n,m)}\]
\(\text{证明:}\)
\(\text{令}\) \(n<m\)
\(\text{用 }F_n\text{ 和 }F_{n+1}\text{ 表示 } F_{n+2},F_{n+3},F_{n+4},\cdots\)
\[F_{n+2}=F_n+F_{n+1}\]
\[F_{n+3}=F_n+2\times F_{n+1}\]
\[F_{n+4}=2\times F_{n}+3\times F_{n+1}\]
\[\cdots\cdots\]
\(\text{可观察到,上类等式中的 }F_n\text{ 和 }F_{n+1}\text{ 的系数也满足斐波那契数的性质}\)
\[\therefore\text{易得 } 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{又}\)
\[F_n|F_{m-n-1}\times F_n\]
\(\text{所以}\)
\[(F_n,F_m)=(F_n,F_{m-n}\times F_{n+1})\]

引理:
\[(F_n,F_{n+1})=1\]
证明:

  • 对于 \(n=1\) 和 \(n=2\) 的情况,命题显然成立
  • 对于 \(n\ge2\) 的情况
    显然有 \(F_n>F_{n-1}>F_{n-2}\)
    又因为 \(F_n=F_{n-2}+F_{n-2}\)
    所以有 \(F_n\ \bmod F_{n-1}=F_{n-2}\)
    由欧几里得定理和引理可得
    \[(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{根据引理可得}\)
\[(F_n,F_m)=(F_n,F_{m-n})\]
\(\text{综上}\)
\[\text{当}n<m\text{时},(F_n,F_m)=(F_n,F_{m-n})\]

\(\text{可以观察到}, n\text{ 和 }m\text{变化规律完全符合更相减损术,所以会有}\)
\[(F_n,F_m)=F_{(n,m)}\]

\(\text{证毕}\)

原文地址:https://www.cnblogs.com/zsbzsb/p/11261845.html

时间: 2024-09-29 19:32:49

斐波那契公约数的相关证明的相关文章

洛谷P1306 斐波那契公约数

P1306 斐波那契公约数 题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? 输入输出格式 输入格式: 两个正整数n和m.(n,m<=10^9) 注意:数据很大 输出格式: Fn和Fm的最大公约数. 由于看了大数字就头晕,所以只要输出最后的8位数字就可以了. 输入输出样例 输入样例#1: 4 7 输出样例#1: 1 说明 用递归&递推会超时 用通项公式也会超时 /* 首先,斐波

P1306 斐波那契公约数

题意 求斐波那契数列第n项和第m项的最大公约数 题解 设斐波那契数列第x项为F[x] 则有结论\(Gcd(F[n], F[m]) = F[Gcd(n, m)]\) 证明: 不妨设n < m 则\(F[m] = F[m-1] +F[m-2]\) \(= 2*F[m-2] + F[m-3]\) \(= 3*F[m-3] + 2*F[m-4]\) \(=...\) \(= F[x+1]*F[m-x] + F[x] * F[\) 代码 #include <cstdio> typedef long

Luogu P1306 斐波那契公约数

这道题其实是真的数学巨佬才撸的出来的题目了 但如果只知道结论但是不知道推导过程的我感觉证明无望 首先这道题肯定不能直接搞,而且题目明确说明了一些方法的问题 所以就暗示我们直接上矩阵了啦 但是如果直接搞还要高精度,不仅很烦而且绝壁TLE 所以我们引出性质,其中f[x]表示斐波那契数列的第x项: gcd(f[n],f[m])=f[gcd(n,m)] 具体的超详细的证明戳这里 然后题意相当于对f[gcd(n,m)]取膜1e9,就是最基本的矩阵优化了 关于矩阵优化斐波那契的板子题看这里 关于这题的COD

【斐波那契】【矩阵快速幂模板】斐波那契公约数

这道题求第n项和第m项斐波那契的公约数这里有一个定理(n,m都是1e9) gcd(f[m],f[n])=f[gcd(n,m)] 斐波那契使用矩阵快速幂求 #include <bits/stdc++.h> #define ll long long #define ull unsigned long long #define ld long double using namespace std; const int maxn=20010; const int NIL=0; const int mo

斐波那契公约数(luogu 1306)

题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很"简单"问题:第n项和第m项的最大公约数是多少? Update:加入了一组数据. 输入输出格式 输入格式: 两个正整数n和m.(n,m<=10^9) 注意:数据很大 输出格式: Fn和Fm的最大公约数. 由于看了大数字就头晕,所以只要输出最后的8位数字就可以了. 输入输出样例 输入样例 4 7 输出样例 1 说明 用递归&递推会超时 用通项公式也会超时 co

P1306 斐波那契公约数(ksm+结论)

题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? Update:加入了一组数据. 输入输出格式 输入格式: 两个正整数n和m.(n,m<=10^9) 注意:数据很大 输出格式: Fn和Fm的最大公约数. 由于看了大数字就头晕,所以只要输出最后的8位数字就可以了. 输入输出样例 输入样例#1: 复制 4 7 输出样例#1: 复制 1 结论:gcd(F[n],F[m])=F[gcd(n

斐波那契数列——各种公式证明

http://pan.baidu.com/s/1o8a2cFC

51NOD 1070 Bash游戏 V4(斐波那契博弈)

传送门 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走).拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出N,问最后谁能赢得比赛. 例如N = 3.A只能拿1颗或2颗,所以B可以拿到最后1颗石子. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + 1行:每行1个数N.(1 <= N <= 10^9) O

斐波那契数列(C++ 和 Python 实现)

(说明:本博客中的题目.题目详细说明及参考代码均摘自 "何海涛<剑指Offer:名企面试官精讲典型编程题>2012年") 题目 1. 写一个函数,输入 n, 求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: 2. 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级.求该青蛙跳上一个n级的台阶总共有多少种跳法? 3. 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级,...... ,也可以跳上n级,此时该青蛙跳上一个 n 级的台阶共有多少种跳法