对于大指数幂的处理
来源:互联网 发布:软件源代码查看器 编辑:程序博客网 时间:2024/06/05 16:33
对于大指数幂的处理
一点数论入门知识
打比赛的时候我们经常遇到一个特别大的指数,下面我讲一下通常的处理方式
首先用到一个定理:欧拉定理 a,p互质 或者他的简化形式 费马小定理 a,p互质
通常 n为素数所以两个定理是一样的。
示例 取 7^66666666! %1e9+7;
由费马小定理可知 7^1e9+6%1e9+7=1
所以 原式就变成了 7^(66666666!%1e9+6)%1e9+7,快速幂解决
#include <bits/stdc++.h> #include <chrono>#include <windows.h>using namespace std; typedef long long ll;const ll mod=1e9+7;///快速幂ll fpow(ll a ,ll b){ ll ans=1; while(b){ if(b&1) ans=(ans*a)%mod; a*=a; a%=mod; b>>=1; } return ans;}int main() { ///也不算很暴力的 o(nlog(n))解法 44s(滑稽) ll f=7; for(int i=1;i<=66666666;i++){ f=fpow(f,i); } cout<<f<<endl; /// 费马小定理解法 o(n) ll ans=1; for(int i=1;i<=66666666;i++){ ans=(ans*i)%(mod-1); } cout<<fpow(7,ans); return 0;}/// 来自滑稽的问候
阅读全文
0 0
- 对于大指数幂的处理
- 对于压缩文件的处理
- 对于事件的处理
- 对于权限的处理
- 对于时间的处理
- 三大指数快速入门和应用
- Jsp的三大指令
- 对于浮点数的比较
- xpath 对于 comments的处理
- Oracle对于天数的处理
- IE对于空格的处理
- svn对于大小写的处理
- 对于图片处理的分析
- SQL对于日期的处理
- HPUX对于pthread_kill的处理
- 对于字符输入的处理
- 对于字符串处理的心得
- Python 对于时间的处理
- SharpDevelop 如何切换设计视图和代码视图
- ROBODK仿真如何设置运动速度
- 设计模式——抽象工厂模式
- Java GUI之五大布局
- VB的程序如何破解
- 对于大指数幂的处理
- Sharpdevelop如何在项目中添加类文件
- PS如何绘制虚线圆
- Windows如何安装MSMQ消息队列
- JS中的“!!”
- VC++ 提示无法打开包括文件“iostream.h”怎么办
- 实验三 链栈(c++)
- AE After Effect 如何替换和修改素材
- AE After Effect 如何分段渲染