关于 Fibonacci 数列的其他推论
递推式
前言
笔者在阅读 《算法竞赛入门经典(第2版)》(刘汝佳著) 时阅读到了由其作者发现的另一个 Fibonacci 数列的递推式。在此笔者将证明本递推式的正确性
内容
当 n 为偶数时:
f(n)=f(n−1)+f(n−3)+f(n−5)+…+f(1)+1
当 n 为奇数时:
f(n)=f(n−1)+f(n−3)+f(n−5)+…+f(2)+f(0)
证明
Fibonacci 数列满足从第3项开始,每一项都等于前两项之和的条件,即:
f(1)=1,f(2)=1
当n>2时:f(n)=f(n−1)+f(n−2)
我们可以连环套用这个递推式:
f(n)=f(n−1)+f(n−2)
f(n)=f(n−1)+f(n−3)+f(n−4)
此时便需要分两种情况讨论:
当 n 为偶数时:
f(n)=f(n−1)+f(n−3)+f(n−5)+…+f(1)+f(0)
将 f(0)=1 带入得:
f(n)=f(n−1)+f(n−3)+f(n−5)+…+f(1)+1
当 n 为奇数时:
f(n)=f(n−1)+f(n−3)+f(n−5)+…+f(2)+f(1)
将 f(1)=f(0) 带入得:
f(n)=f(n−1)+f(n−3)+f(n−5)+…+f(2)+f(0)
递推式
前言
笔者在阅读由 虞皓翔 发表的 洛谷题解p1962 中得到了一个关于 Fibonacci 数列的递推式,下面笔者将在此证明该递推式的正确性
内容
f(2n)=f(n+1)2−f(n−1)2=(2⋅f(n−1)+f(n))⋅f(n)
f(2n+1)=f(n+1)2+f(n)2
证明
当n=1,2时 ,递推式成立;
假设
f(2n)与f(2n+1)
成立:
f(2n+2)=f(2n)+f(2n+1)=f(n+1)2−f(n−1)2+f(n+1)2+f(n)2=2⋅f(n+1)2+f(n)2−f(n−1)2=2⋅(f(n)+f(n−1))⋅f(n+1)+f(n)2−f(n−1)2=2⋅f(n+1)⋅f(n)+2⋅f(n+1)⋅f(n−1)+f(n)2−f(n−1)2=f(n+1)2−f(n+1)2+2⋅f(n+1)⋅f(n)+2⋅f(n+1)⋅f(n−1)+f(n)2−f(n−1)2=(f(n+1)2+f(n)2+2⋅f(n+1)⋅f(n))−(f(n+1)2+f(n−1)2−2⋅f(n+1)⋅f(n−1))=(f(n)+f(n+1))2−(f(n+1)−f(n−1))2=f(n+2)2−f(n)2
假设
f(2n+2)与f(2n+1)
成立:
f(2n+3)=f(2n+2)+f(2n+1)=f(n+2)2−f(n)2+f(n+1)2+f(n)2=f(n+2)2+f(n+1)2
结论:对于任意正整数n,递推式均成立。
定理
内容
Fibonacci 数列中相邻的两个元素互质
证明
由辗转相减法可以得到:
gcd(f(n),f(n+1))=gcd(f(n+1)−f(n),f(n))=gcd(f(n−1)+f(n)−f(n),f(n))=gcd(f(n−1),f(n))=⋯⋯=gcd(f(1),f(2))=1
结论:Fibonacci 数列中相邻的两个元素互质。