闵神的数论

数论

推荐一篇关于逆元的blog
里面也有大部分今天讲的知识>-<

http://www.cnblogs.com/linyujun/p/5194184.html

1. 模运算

除法定理
x=a*p+b,y=c*p+d;
x%p=b,y%p=d;

加减乘
x±y=(a±b)p+(c±d),设c±d=e*p+f,那么
x±y=(a±b+e)p+f,所以(x±y)%p=(c±d)%p=((x%p)±(y%p))%p

x*y=(a*c)*p^2+(b*c+a*d)*p+(c*d),设c*d=e*p+f
那么xy=(a*c*p+b*c+a*d+e)p+f,(xy)%p=(cd)%p=((x%p)(y%p)%p)

然而除法。。。
暴力除法不可取,因为除法不满足同余性质。
举个栗子;
8%7=1,2%7=2,(8/2)%7=4
((8%7)/(2%7))%7=excuse me?
减法和除法本质上是对加法和乘法的逆元做运算

听不懂的玄学逆元

http://www.cnblogs.com/linyujun/p/5194184.html

2. 欧几里德算法求最大公约数。

xa+yb=d=gcd(a,b)=gcd(b,a)=gcd(a,b-a);
因为b不断减a,直到小于a,相当于是b%a;
gcd(a,b)=gcd(a,b%a);

一行gcd
int gcd(int a,int b) {return !b? a:gcd(b,a%b);}

gcd(a,b)时间复杂度(loga+logb)[最坏情况取在斐波那契数列两个相邻数上]
扩展欧几里德

欧拉定理
若x与p互余

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值