数论
数论学到这里告一段落了,时间是2017/4/18。这一段时间讲的内容不多,但很重要,数学思维非常重要,大概讲了以下几点。
- 逆元
- 欧拉函数gcd ex_gcd(两个较为重要的函数)
- 费马小定理,欧拉定理,中国剩余定理,Miller-Rabin(判断是否为质数),Pollard-rho(大整数的因子分解)。
逆元
定义是比较复杂的——详见算法导论P550
一般都是乘法求逆元a/b mod p 化为 a* b’mod p b’为b mod p意义下逆元、
a*ex_gcd(b,c)%c,然后快速幂求解
欧拉函数,扩欧
不说了,背背代码。
费马小定理,欧拉定理
欧拉定理 当n>1 a^phi[n]≡1(mod n)
费马小定理 a^(p-1)≡1(mod p) p为素数
中国余数定理
转化为一个线性方程 ax+by=c
a,b
c,d
num Mod a=b;
Num Mod c=d;
求num最小正整数解;
可以化为求解 ax≡(d-b)(mod c);
ax+cy=d-b
用ex_gcd求解出x;
Num=a*x+b;
这样num mod a=b
Num mod c=d-b+b=d
因为x为最小正整数解,所以num为最小解
满足的集合为{x|x=num+k·[a,b],(k∈Z)}
Miller-Rabin,Pollard-rho
这个讲述概率论,bzoj4802典型题目