ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

斐波那契数列

2021-02-08 02:32:03  阅读:204  来源: 互联网

标签:lfloor 数列 dfrac rfloor 斐波 cdots 那契 gcd


WC 考到了,自己却啥也不会,于是做一波斐波那契的题

记 \(F_i\) 为斐波那契数列的第 \(i\) 项
如果题目没特殊说明,这篇博客中默认初始项是 \(F_1=F_2=1\)

各种性质

\[\gcd(F_n,F_{n+1})=1 \]

证明:
根据辗转相减法,有
\(\gcd(F_n,F_{n+1})=\gcd(F_{n+1}-F_n,F_n)=\gcd(F_{n-1},F_n)=\cdots=\gcd(F_1,F_2)=1\)


\[\gcd(F_n,F_m)=F_{\gcd(n,m)} \]

证明:
记 \(m=n+k\)
如果把 \(F_p,p>n+1\) 都用 \(F_n\) 和 \(F_{n+1}\) 表示出来,就有:

\[F_{n+2}=1\cdots F_n+1\cdot F_{n+1} \]

\[F_{n+3}=1\cdots F_n+2\cdot F_{n+1} \]

\[F_{n+4}=2\cdots F_n+3\cdot F_{n+1} \]

\[\cdots \]

\[F_{n+k}=F_{k-1}F_n+F_kF_{n+1} \]

那么就有 \(\gcd(F_n,F_m)=\gcd(F_n,F_{k-1}F_n+F_k F_{n+1})=\gcd(F_n,F_k F_{n+1})\)
又因为上一条性质 \(\gcd(F_n,F_{n+1})=1\),就得到 \(\gcd(F_n,F_m)=\gcd(F_n,F_k)=\gcd(F_n,F_{m-n})\)
然后你发现,把它多迭代几次,就成立在角标上做辗转相减(外面再套一个 \(\gcd\)),那最后一串等下去,就等于了 \(\gcd(F_{\gcd(n,m)},F_{\gcd(n,m)})=F_{\gcd(n,m)}\)
于是得证

题目:

  1. P1306 斐波那契公约数,模版,直接矩阵加速
  2. CF226C Anniversary
    • 就是转换为求 \(\gcd(a_1,a_2,\cdots,a_k)\) 的最大值
    • 然后就是找到一个最大的 \(x\),使得 \(x\) 有至少 \(k\) 个倍数出现在 \([l,r]\) 中,也就是 \(\lfloor\dfrac{r}{x}\rfloor-\lfloor\dfrac{l-1}{x}\rfloor \ge k\)
    • 于是可以整除分块枚举 \(\lfloor\dfrac{r}{x}\rfloor\) 的值,如果 \(x\) 当前可取的值是 \([L,R]\)(就是让 \(\lfloor\dfrac{r}{x}\rfloor\) 相同的 \(x\)),那么肯定是让 \(x\) 取到 \(R\),这样既能让上面的式子尽量大去符号要求,也会让选择更优

标签:lfloor,数列,dfrac,rfloor,斐波,cdots,那契,gcd
来源: https://www.cnblogs.com/suxxsfe/p/14387440.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有