Baby-Step Giant-Step 解高次同余方程(形如(a^x)%n=b,其中n为素数)
来源:互联网 发布:中国网络诗歌网吴扬晋 编辑:程序博客网 时间:2024/05/15 09:23
//baby_step giant_step// a^x = b (mod n) n为素数,a,b < n// 求解上式 0<=x < n的解#define MOD 76543int hs[MOD],head[MOD],next[MOD],id[MOD],top;void insert(int x,int y) { int k = x%MOD; hs[top] = x, id[top] = y, next[top] = head[k], head[k] = top++;}int find(int x) { int k = x%MOD; for(int i = head[k]; i != -1; i = next[i]) if(hs[i] == x) return id[i]; return -1;}int BSGS(int a,int b,int n) { memset(head,-1,sizeof(head)); top = 1; if(b == 1)return 0; int m = sqrt(n*1.0), j; long long x = 1, p = 1; for(int i = 0; i < m; ++i, p = p*a%n)insert(p*b%n,i); for(long long i = m; ; i += m) { if( (j = find(x = x*p%n)) != -1 )return i-j; if(i > n)break; } return -1;}
0 0
- Baby-Step Giant-Step 解高次同余方程(形如(a^x)%n=b,其中n为素数)
- Baby-step giant-step 解高次同余方程a^x=b(mod n) 模版
- 扩展Baby Step Giant Step (解(a^x)%n=b,其中c没有限制)
- Poj 2417 Discrete Logging (Baby Step Giant Step 解 a^x = b (mod n) n为素数)
- hdu 2815 Mod Tree 模方程a^x=b(mod n),n为任意正整数+模板题(扩展Baby Step Giant Step)
- 高次同余方程(Baby-Step Giant-Step)
- POJ 2417 Discrete Logging(高次同余方程-Baby-Step,Giant-Step)
- 高次同余方程:poj 3243+poj 2417+hdu 2815 (Baby Step Giant Step 算法)
- 高次同余笔记(一):baby-step-giant-step算法
- 高次同余笔记(二):extended-baby-step-giant-step算法
- 【POJ 3243-Clever Y】 与【POJ 2417-Discrete Logging】(解高次同余方程 Baby-Step-Gaint-Step)
- Baby-step giant-step
- Baby-step giant-step
- baby step giant step
- Baby Step Giant Step
- Baby Step Giant Step
- Baby-Step Giant-Step
- Baby step Giant step算法
- JNA调用DLL一点小结
- Codeforces Round #271 (Div. 2) 总结
- 基于Happens-before的数据竞争方法汇总 (三)
- export 原理解析 (Shell Script)
- Codeforces-Round #340 解题报告
- Baby-Step Giant-Step 解高次同余方程(形如(a^x)%n=b,其中n为素数)
- Odd Even Linked List
- hdu 3635 Dragon Balls(并查集)
- 使用@Controller注解为什么要配置<mvc:annotation-driven />
- HDU 2859 Phalanx
- 运维小知识之nginx---nginx配置Jboss集群负载均衡
- 数据结构->图的邻接表存储(C语言)
- 英汉词典开发文件
- 由ECMA规范来看连续赋值