zoukankan      html  css  js  c++  java
  • 扩展欧几里得算法

    Bézout定理

    • (ax + by = gcd(a, b))

    证明
    欧几里得算法执行到最后时,存在(x=1,y=0)(a*1+0*0=gcd(a, 0))
    (b>0)(gcd(a,b)=gcd(b,a mod b))。假设存在(x, y),满足(b*x+( a mod b)*y=gcd(b,a mod b)),则(bx+(a mod b)y=bx+y(a-b lfloor a/b floor ) = b(x-b lfloor a/b floor)+ay),其中(x'=y,y'=x-b lfloor a/b floor).

    int exgcd( int a, int b, int &x, int &y ){
    	if( b == 0 ){ x = 1, y = 0; return a; }
    	int d = exgcd( b, a % b, x, y );
    	int z = x; x = y, y = z - y * ( a / b );
    	return d;
    }
    
  • 相关阅读:
    npm改为淘宝镜像
    html中table中td内容换行
    git 切换文件夹路径
    git经常使用的命令
    day16
    day15
    day13
    day14
    day12
    day11
  • 原文地址:https://www.cnblogs.com/hnoi/p/11637632.html
Copyright © 2011-2022 走看看