有关数论的杂项

耗尽温柔 提交于 2019-12-03 04:48:50

数论

\(gcd\) & \(exgcd\)

gcd

\[\gcd(a,b)=\gcd(b,a mod b)\]

这个结论还是比较显然的

给出代码:

struct node
{
    int l,r;LL v;//这里官方写法加了一个mutable,看个人写法
    node(int L,int R,LL V):l(L),r(R),v(V){}
    bool operator < (const node& o) const
    {
        return l<o.l;
    }
};

exgcd

什么是exgcd呢----

就是解
\[ ax+by=\gcd(a,b)\]
这样的方程

那么怎么解呢?

首先有一个非常显然的结论

\[ax+by=\gcd(a,b)\]
\[bx+(a \bmod b)y=\gcd(b,a \bmod b)\]

是同解的
那么可以递归求到解集

我们给出边界条件
\[ax+by=\gcd(a,b) (a=1,b=0)\]
时有\(x=1,y=0\)为其边界解

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!