zoukankan      html  css  js  c++  java
  • 洛谷 P1306 斐波那契公约数 题解

    题面

    结论:gcd(F[n],F[m])=F[gcd(n,m)];

    F[n]=a和F[n+1]=b

    F[n+2]=a+b,F[n+3]=a+2b,…F[m]=F[m?n?1]a+F[m?n]b

    F[n]=a,F[n+1]=b,F[m]=F[m?n?1]a+F[m?n]

    F[m]=F[m?n?1]?F[n]+F[m?n]?F[n+1]

    gcd(F[n],F[m])=gcd(F[n],F[m?n?1]?F[n]+F[m?n]?F[n+1])

    gcd(F[n],F[m])=gcd(F[n],F[m?n]?F[n+1])

    引理:gcd(F[n],F[n+1])=1

         证明:gcd(F[n],F[n+1])=gcd(F[n],F[n+1]?F[n])=gcd(F[n],F[n?1])=......=gcd(f[1],f[2]);

                    gcd(F[n],F[n+1])=1;

    gcd(F[n],F[m])=gcd(F[n],F[m?n]?F[n+1]);

    gcd(F[n],F[m])=gcd(F[n],F[m?n]);

    即gcd(F[n],F[m])=gcd(F[n],F[mmodn]);

    则gcd(F[n],F[m])=gcd(F[nmodm1],F[m1]);

    不难发现,整个递归过程其实就是在求解gcd(n,m)

    最后递归到出现F[0],那么此时的f[n]就是答案;

    gcd(F[n],F[m])=F[gcd(n,m)];

  • 相关阅读:
    Pycharm5使用
    flask 分页
    CRM
    课程项目
    vue的属性指令
    vue的文本指令
    vue实例
    vue使用
    ajax的json格式数据
    django知识点小结
  • 原文地址:https://www.cnblogs.com/kamimxr/p/11544191.html
Copyright © 2011-2022 走看看