从书上学的东西(顺带总结一发)
Posted cjoierljl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从书上学的东西(顺带总结一发)相关的知识,希望对你有一定的参考价值。
从书上学的东西(顺带总结一发)
数学一本通
各种求逆元
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;
}
}
中国剩余定理
用来求解方程组
[
xequiv B_1(mod W_1)
][
xequiv B_2(mod W_2)
][……
][
xequiv 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;
}
以上是关于从书上学的东西(顺带总结一发)的主要内容,如果未能解决你的问题,请参考以下文章