码迷,mamicode.com
首页 > 其他好文 > 详细

从书上学的东西(顺带总结一发)

时间:2018-09-25 20:45:04      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:href   数学   总结   https   方程组   扩展   void   就是   spl   

从书上学的东西(顺带总结一发)

标签: 有用的东西~(≧▽≦)/~啦啦啦
阅读体验:https://zybuluo.com/Junlier/note/1291765

数学一本通

各种求逆元

PS:掌握这两个就够了

1. 费马小定理

笔者用的最多的(因为最容易打)
\(p\)为质数时(局限),\(x\)的逆元为\(x^{p-2}\mod p\)

2. 扩展欧几里德\(exgcd\)

\(exgcd\)本来是用来求 \(ax+by=c\) 的一组特解的
但由于逆元的定义:\(a*x \equiv1(\mod b)\)\(x\)\(a\)的逆元)
所以又可以转化成:\(ax+by=1\) 。。。这就是\(exgcd\)可以做的辣
再放一个\(exgcd\)的板子(总打错。。。)

//把c化为1了。。。
void exgcd(int a,int b,int &x,int &y)
{
    if(!a){x=0,y=c/b;return;}
    else
    {
        int tx,ty;
        exgcd(b%a,a,tx,ty);
        x=ty-(b/a)*tx,y=tx;
        return;
    }
}

中国剩余定理

用来求解方程组
\[ x\equiv B_1(\mod W_1) \]\[ x\equiv B_2(\mod W_2) \]\[…… \]\[ x\equiv B_n(\mod W_n) \]的唯一解\(x\)的算法(具体看书。。。

int CRT(int W[],int B[],int n)
{
    int tot=1,ret=0;
    for(int i=1;i<=n;++i)tot*=W[i];
    for(int i=1;i<=n;++i)
    {
        int x,y,m=n/W[i];
        exgcd(m,W[i],x,y);//这个上面有
        ret=(ret+x*W[i]*B[i])%mod;
    }return ret<0?ret+mod:ret;
}

从书上学的东西(顺带总结一发)

标签:href   数学   总结   https   方程组   扩展   void   就是   spl   

原文地址:https://www.cnblogs.com/cjoierljl/p/9702951.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!