zoukankan      html  css  js  c++  java
  • 小记

    辗转相减算法

    两个数辗转相减(每次较大变成它本身减去较小的), 待到两数相同时这个数值就是开始时两个数的 gcd

    设有两个数 (a>b), 设其 gcd 为 (g), 则显然 (a=x*g>b=y*g)(gcd(x,y)=1)

    于是相当于证明两个互质的数辗转相减最终会得到 1。

    这个就比较显然, 因为若有数 (p>q)(gcd(p,q)=1), 那么对于 (p-q)(q), 若其 gcd 不为 1, 即 (p-q=x*g)(q=y*g)(g>1,quad x,yge 1), 那么 (p=(p-q)+q = (x+y)*g), 与 (gcd(p,q)=1) 矛盾。所以以两个互质的数开始辗转相减的过程中, gcd 始终为 1, 而每次都是大的减去小的, 所以两个数都始终 (ge 1), 所以最终得到的就是两个 1。

    至于辗转相除算法, 实际上就是加速了辗转相减的过程。

    裴蜀定理

    (ax+by=gcd(a,b)) 一定有解。

    由于上面的定理, 辗转相减/相除 gcd 不变, 可以容易地得出此定理。(辗转相除+归纳法)

  • 相关阅读:
    公司实习职位与要求
    段子
    Python 练习项目1 弹球游戏
    精准控制PWM脉冲的频率和数量
    ST Link 调试问题总结
    验证
    大道至简(第六章)读后感
    动手动脑
    大道至简(第五i章)读后感
    数组课后作业
  • 原文地址:https://www.cnblogs.com/tztqwq/p/14095957.html
Copyright © 2011-2022 走看看