首页 > 编程语言 >数论-裴蜀定理-扩展欧几里得算法

数论-裴蜀定理-扩展欧几里得算法

时间:2023-05-28 19:24:22浏览次数:62  
标签:11 gcd 数论 dfrac 欧几里得 整数 int ax 裴蜀

裴蜀定理

对于任意的整数a、b,都存在一对整数x、y(注意x和y可以是负整数),使得\(ax+by = gcd(a,b)\)成立。或者可以这样描述:对方程\(ax+by = c,(a,b,c∈Z)\),只有满足\(gcd(a,b)|c\)(即a和b的最大公约数可以整除c),方程才有整数解。

扩展欧几里得算法的证明

已知\(gcd(a,b) = gcd(b,a\%b)\),递归边界就是\(b=0,a=gcd(a,b)\)。这个时候\(ax+by = gcd(a,b)\),只需令\(x = 1, y = 0\),即可。

从递归边界回归的过程中,当前存在整数x'和y'满足:\(a'x' + b'y' = gcd(a,b)\),再往上一层,则有:\(a' = b , b' = a%b = a - a/b*b\),代入上式有:

\(bx' + (a-a/b*b)y' = gcd(a,b)\),即:\(bx' + ay' - a/b*by' = ay' +b(x'-a/b*y') = gcd(a,b)\)。

比较\(ax + by = gcd(a,b)\)得:\(x = y',y = (x' - a/b*y')\)。

因为\(y'\)是整数,\(x'\)也是整数,而\(a/b\)也是向下取整后的整数结果,因此,可以得知:\(x\)和\(y\)也是整数。由此可归纳得证。

扩展欧几里得算法模板

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 k = x;                //K 为 x'
  x = y;		    //x 为 y'
  y = k - a/b*y;            //y 为 x' - a/b*y'
  return d;
}

求解不定方程

通过调用扩展欧几里得函数\(exgcd(a,b,x,y)\),得到函数返回值为\(gcd(a,b)\),可知方程\(ax+by = gcd(a,b)\)的一组解\((x_0,y_0)\)。

对于方程\(ax+by = c, gcd(a,b)|c\) ,设 \(d=c/gcd(a,b)\),则\(ax_0*d+by_0*d=gcd(a,b)*d=c\),故\((x_0*d,y_0*d)\)是方程\(ax+by = c\) 的特解。

求不定方程\(ax+by = c\) 的任意解,设 x, y 是方程的任一组解

则有 \(ax + by = c\)与 \(ax' + by' =c\) 相减得 \(a(x−x') = b(y'-y)\)

从而\(\dfrac{a}{gcd(a, b)}(x−x') = \dfrac{b}{gcd(a, b)}(y'−y)\), 因为\(gcd(\dfrac{a}{gcd(a, b)},\dfrac{b}{gcd(a, b)})=1\),所以\(\dfrac{a}{gcd(a, b)}|y' − y\)。

故存在整数t,使得 \(y'-y =\dfrac{a}{gcd(a, b)}t\),即 \(y = y'−\dfrac{a}{gcd(a, b)}t\),同理有 \(x = x'+\dfrac{b}{gcd(a, b)}t\)

x, y 的任意性,方程的全部解都可以表示为 \((x'+\dfrac{b}{gcd(a, b)}t,y'−\dfrac{a}{gcd(a, b)}t)\) , 其中\((x',y')\)由\((x_0*d,y_0*d)\)得来,\(t∈Z\)。

求x的最小正整数解,设\(P=\dfrac{b}{gcd(a, b)}\),那么

当\(x'>0\)时,则\(x=x'\%P\),相当于\(t\)为负整数,让\(x'\)减少\(t\)倍\(P\),直到最小正整数解,例如当\(x'=11,P=3,t=-3\) 时,使\(x=11-3*3=2\) , 相当于 \(x=11\%3=2\)

当\(x'< 0\)时,则\(x=(x'\%P+P)\%P\),相当于\(t\)为正整数,让\(x'\)增加到最小正整数,例如当\(x'=-11,P=3,t=4\) 时,使\(x=-11+3*4=1\) , 相当于 \(x=(-11\%3+3)\%3=(-2+3)\%3=1\)

标签:11,gcd,数论,dfrac,欧几里得,整数,int,ax,裴蜀
From: https://www.cnblogs.com/zlaner22/p/17438686.html

相关文章

  • 「外出学习」数论学习笔记
    取模\[(1)\quad5\div3=1\cdots2\\a=b\cdotc+d\\(2)\quada\divb=c\cdotsd\\b>d\ge0\\(3)\quada,b,c=a/b,d=a\bmodb\\(4)\quad(a+b)\bmodc=[a\bmodc+b\bmodc]\bmodc\\a=x\cdot......
  • 230526 // 小数论复习
    裁决已至!称量,你的罪恶!以此身,肃正万象!人总是越活越抽象的,所以怎么还不考期末,我要考期末!A.Minhttp://222.180.160.110:1024/contest/3641/problem/1给出\(n\)个数\(A_{1\simn}\),现求一组整数序列\(X_{1\simn}\)使得\(S=A_1\timesX_1+A_2\timesX_2+\cdots......
  • 类欧几里得算法与万能欧几里得算法
    类欧几里得算法与万能欧几里得算法前置知识\(\lfloor\frac{a}{b}\rfloor\)表示\(a\)除以\(b\)向下取整的结果。在一定情况下,我们希望将带有「向下取整」的不等式转化为不带有「向下取整」的不等式。方便起见,在下面列出其公式,其中\(a,b,c,d\)均为整数:\[c\le\left......
  • 关于一些初等数论的证明
    未完工。目前咕掉的:卢卡斯定理真正有用的一个没有质数:威尔逊定理:\(p\)为质数的充要条件为\((p-1)!\equiv-1\pmodp\)证明:\(1.\)充分性:反证,假设\(p\)是合数。如果\(p\)为质数的平方,例如\(p=4\),则\(3!\equiv2\pmod4\),不成立。令\(p=k^2\),因为\(p>4\),所以\(......
  • 初等数论(Ⅲ):高次同余、阶和原根相关
    前言关于高次同余方程,有\(a^x\equivb(\text{mod}\p)\)和\(x^a\equivb(\text{mod}\p)\)两种类型,后者计算起来较为麻烦,下文就分别记述这两种高次同余方程。离散对数问题离散对数问题是在模\(p\)意义下求解\(\log_ab\),这等价于形如\[a^x\equivb(\text{mod}\p)......
  • 拓展欧几里得算法
    1.拓展欧的用处:求解方程\(ax+by==m\)的一组解2.拓展欧的一般性条件:对于方程\(ax+by=m\),当\(gcd(a,b)\)是m的整数倍时必定有解3.求解:设\(d=gcd(a,b)\),则特解为\(\begin{cases}x=x_0+\frac{d}{m}\quad\\y=y_0+\frac{d}{m}\quad\\\end{cases}......
  • 初等数论学习笔记
    线性筛素数直接上代码。constintMAXN=100000008;boolnp[MAXN];vector<int>prm,pre;voidgg(constintN=100000000){ pre.resize(N+1); for(inti=2;i<=N;i++){ if(np[i]==false){ prm.push_back(i); pre[i]=i; } for(autoj:prm)if(i*j<=N){ int......
  • 数论——组合数学入门
    排列组合排列就是指从给定个数的元素中取出指定个数的元素进行排序;组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。--------OIWiki乘法原理和加法原理加法原理,就好比一个工作,有\(n\)个解决的方案,第\(i\)项方案有\(a_{i}\)种不同的实现方式,所以这个工......
  • [基础数论]同余方程笔记
    前言在学习本节内容前,请确保已完成了二元不定方程的学习。同余方程有无解的判别对于一个方程形如:\[ax\equivb\pmodm\]其中\[a,b\in\mathbbZ,m\in\mathbbZ^+\]并令\[d=(a,m)\]若\(d\nmidb\),则方程\(ax\equivb\pmodm\)无解。若\(d\midb\),......
  • [基础数论]不定方程笔记
    前言在学习本节内容前,最好先学习同余的基本性质以加深理解。一堆定理定理1:若\[a,b,m,n\in\mathbbZ,c\mida,c\midb\]则\[c\mid(ma+nb)\]证明:令\(a=ce,b=cf\),代入\(ma+nb\)再提公因式即可。定理2:若\[a,b,c\in\mathbbZ\]则\[(a+cb,b)=(a,b)\]证......