1. 程式人生 > >數學模板合集

數學模板合集

1、擴充套件歐幾里得

擴歐,擴充套件gcd,同餘方程,二元一次方程、不定方程(exgcd)

一般形式:
\[ax+by=c\]
\[ax=c\pmod{b}\]
上下兩個方程可互相轉化
考慮對於
\[ax+by=c\]\[bx'+(a \bmod b)y'=c\]

\[bx'+(a-\biggl\lfloor\frac a b \biggr\rfloor\times b)y'=c\]\[bx'+ay'-\biggl\lfloor\frac a b \biggr\rfloor\times by'=c\]\[b(x'-\biggl\lfloor\frac a b \biggr\rfloor y')+ay'=c\]

\[ay'+b(x'-\biggl\lfloor\frac a b \biggr\rfloor y')=c\]

\[x=y',y=x'-\biggl\lfloor\frac a b \biggr\rfloor y'\]
例如
\[99x+78y=6\]

程式碼如下

struct Extended_gcd{ 
    inline void exgcd(int a,int b,int c){
        if(b==0){
            x=c/a,y=0;
            return ;
        }
        exgcd(b,a%b,c);
        int t=x;
        x=y;
        y=t-(a/b)*y;
    }
}E;