模板——大步小步算法
2016-09-07 12:29
204 查看
//求解模方程 a^x = b(mod n) n为素数,无解返回-1 int log_mod(int a, int b, int n) { int m, v, e = 1, i; m = (int) sqrt(n+0.5); v = inv(pow_mod(a, m, n), n); map<int, int> x; x[1] = 0; for(int i = 1; i < m; i++) { e = e*a%n; if(!x.count(e)) x[e] = i; } for(i = 0; i < m; i++) { if(x.count(b)) return i*m + x[b]; b = b*v%n; } return -1; }
相关文章推荐
- AFNetworking 3.0 上传 下载 网络监听
- iOS通过dSYM文件分析crash
- sitemesh2 集成velocity 装饰页面乱码
- spring事务回滚规则
- 第十一章课后4题6题
- leetcode 389. Find the Difference
- SDN原理 OpenFlow协议 -3
- 360笔试题:研究生考试题目
- Easyui Datagrid每行增加超链接
- 通过jdbc连接数据库
- 【Android_忍者六道】近百android程序源码贡献(收藏)
- Android Studio 快捷键
- 作业
- Linux命令-wc
- 组件篇 一 、Android ListView 子单位大小
- 11章简答6
- 网易2017内推面试题-分苹果
- 部署运行springside4demo遇到的的一些问题
- C++_Primer 16.1 模板定义
- Extjs TextField 同步输入 监听事件