(扩)欧几里得的一些见解

a x + b y = g c d ( a , b ) g c d ( a , b ) = g c d ( b , a % b ) 首 先 证 明 上 面 这 个 柿 子 假 设 d = g c d ( a , b ) 把 a 展 开 成 k ∗ b + r , 显 然 r = a % b r = a − k ∗ b 显 然 r 是 d 的 倍 数 , 也 就 是 d ∣ r , a % b = a − ( a / b ) ∗ b . 假 设 会 有 个 更 大 的 D 能 ∣ a % b , 那 么 也 一 定 可 以 ∣ a 和 b , 与 前 面 不 符 合 下 面 讲 e x g c d ( a , b , x , y ) a ∗ x 1 + b ∗ y 1 = ( a , b ) b ∗ x 2 + ( a % b ) ∗ y 2 = ( a , b ) b ∗ x 2 + ( a − a / b ∗ b ) ∗ y 2 = a ∗ x 1 + b ∗ y 1 a ∗ x 1 + b ∗ y 1 = a ∗ y 2 + b ∗ ( x 2 − a / b ∗ y 2 ) x 1 = y 2 , y 1 = x 2 − a / b ∗ y 2 ax+by=gcd(a,b)\\ gcd(a,b)=gcd(b,a\%b)\\ 首先证明上面这个柿子\\ 假设d=gcd(a,b)\\ 把a展开成k*b+r,显然r=a\%b\\ r=a-k*b\\ 显然r是d的倍数,也就是d|r,a\%b=a-(a/b)*b.\\假设会有个更大的D能|a\%b,那么也一定可以|a和b,与前面不符合\\ 下面讲exgcd(a,b,x,y)\\ a*x1+b*y1=(a,b)\\ b*x2+(a\%b)*y2=(a,b)\\ b*x2+(a-a/b*b)*y2=a*x1+b*y1\\ a*x1+b*y1=a*y2+b*(x2-a/b*y2)\\ x1=y2,y1=x2-a/b*y2 ax+by=gcd(a,b)gcd(a,b)=gcd(b,a%b)首先证明上面这个柿子假设d=gcd(a,b)把a展开成k∗b+r,显然r=a%br=a−k∗b显然r是d的倍数,也就是d∣r,a%b=a−(a/b)∗b.假设会有个更大的D能∣a%b,那么也一定可以∣a和b,与前面不符合下面讲exgcd(a,b,x,y)a∗x1+b∗y1=(a,b)b∗x2+(a%b)∗y2=(a,b)b∗x2+(a−a/b∗b)∗y2=a∗x1+b∗y1a∗x1+b∗y1=a∗y2+b∗(x2−a/b∗y2)x1=y2,y1=x2−a/b∗y2

上一篇:Python:Fermat素性检测


下一篇:P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题(欧几里得)