数论
Goodbye_yesterday
湖北大学计科18级
展开
-
扩展欧几里得算法
扩展欧几里得可以求a*x+b*y=gcd(a,b)方程关于x,y的整数解(a,b已知)gcd(a,b)=gcd(b,a%b),所以a*x+b*y=gcd(a,b)=gcd(b,a%b)=b*x+a%b*y;根据取余运算公式a%b=a-(a/b)*b;若运算中含有浮点数则只需把(a/b)改为int(a/b)即可上式=b*x+(a-(a/b)*b)*y=y*a+(x-(a/b)*b)*...原创 2018-08-09 10:22:18 · 173 阅读 · 0 评论 -
洛谷P1516
由题意x+m*t-y-n*t=p*l;t代表时间,p代表圈数,这两个量是未知数。整理得:p*l+(n-m)*t=x-y;令a=n-m;b=l,c=x-y;即a*x+b*y=c;先解a*x1+b*y1=gcd(a,b);等式两边同时乘以c/gcd(a,b);x=x1*c/gcd(a,b);t=b/gcd(a,b);x=(x%t+t)%t;#include<...原创 2018-08-09 14:00:04 · 285 阅读 · 0 评论 -
POJ 1845
1.整数的唯一分解定理任何正整数都有且只有一种方式写出其素因子的乘积表达式。A=(p1^k1)*(p2^k2)*(p3^k3)*.....*(pn^kn) p均为素数。2.约数和公式S=(1+p1+p1^2+.....+p1^k1)*(1+p2+p2^2+.....+p2^k2)*......*(1+pn+pn^2+pn^3+.....+pn^kn);3.同余模公式(a+b...原创 2018-08-10 19:33:22 · 332 阅读 · 0 评论 -
辗转相除法
int gcd(int a,int b){ if(b==0) return a; else return gcd(b,a%b);}辗转相除法的基本原理就是gcd(x,y)=gcd(x,y-x);如果想要进一步提高gcd的效率,可以通过不断去除因子2来降低常数。1,若x,y均为偶数,则gcd(x,y)=2*gcd(x/2.y/2);2 ,若x为偶数,y为奇数,则gcd...原创 2018-08-08 19:49:05 · 1278 阅读 · 0 评论 -
中国剩余定理
孙子算经今有物不知其数,三三数之余二,五五数之余三,七七数之余二,问物几何?这个题实际是求解一下同余方程x=2(mod 3);x=3(mod 5);x=2(mod 7);先解下面三个同余方程:x=0(mod 5);x=1(mod 3); 70x=0(mod 7);x=0(mod 3);x=1(mod 5); 21x=0(m...原创 2018-08-18 11:29:47 · 262 阅读 · 0 评论 -
素数的相关问题
线性素数筛法void judge(int n){ int m=sqrt(n+0.5); for(int i=2;i<=m;i++) if(vis[i]) { for(int j=i*i;j<=n;j+=i) vis[j]=1; }}上述代码看起来并不是线性的,但事实上它避免了重复筛查,从i*i开始筛查,因为2*i,3*i.....(i-1)*i之前已经筛...原创 2018-08-20 13:42:50 · 199 阅读 · 0 评论 -
BSGS算法及其扩展算法
该算法是用来解决A^x=B(mod C)这一类问题的。BSGS算法只能适用于C为素数的情况。m=sqrt(C);x=m*i+j;A^x=A^(i*m)*A^j;每次枚举i,令D=A^(i*m);D*A^j=B(mod C);D*A^j+C*y=B;用扩展欧几里得可以求出A^j通过hash查出对应的j;#include<iostream>#in...原创 2018-09-01 12:19:47 · 438 阅读 · 0 评论 -
HDU 1573
其实就是个中国剩余定理的模板题,因为题目没有保证模数是素数,所以用通法直接上代码void getphi(){ phi[1]=1; int i,j; for(int i=2;i<=n;i++) { if(!vis[i]) { phi[i]=i-1; prime[++prime[0]]=i; } for(int j=1;j<=tot;...原创 2018-09-14 10:17:49 · 168 阅读 · 0 评论 -
康托展开及康拓逆展开
康拓展开把一个整数X展开成如下形式:X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!+a[1]*0!其中a[i]为''当前元素''在''所有未出现的元素''中排在第i个(从0开始),并且0<=a[i]<i(1<=i<=n)为了更好的理解康托展开,举个例子序列3 4 6 2 1 7 5 8 ...原创 2019-03-06 22:48:12 · 230 阅读 · 0 评论