快速幂模板

原创 2015年11月21日 11:14:58
/*
快速幂 大大提高幂运算效率 原理与二进制有关 
*/

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<vector>
using namespace std;

#define MM 1000000007

int pow3(int a,int b)   //1011  =   11  复杂度log2(N) 
{
	int r=1,base=a;
	while(b!=0)
	{
	if(b&1)   //b不为偶数 
	r*=base;
	
	base*=base;
	b>>=1;   //b除以2 
	}
	return r;
}


long long pow4(long long  a,long long  b)   //配合模的运算 
{
	long long r=1,base=a;
	while(b!=0)
	{
	if(b&1)     //b不为偶数 
	{r*=base;r%=MM;} 
	
	base*=base;
	base%=MM;
	b>>=1;     //b除以2 
	
	//r%=MM; 
	}
	return r;
}

int main()
{
	cout<<pow3(2,3)<<endl;
	cout<<pow3(4,3)<<endl;
	cout<<pow3(3,2)<<endl;
	cout<<pow3(5,2)<<endl;
	
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

矩阵快速幂模板

#define Matr 10 //矩阵大小,注意能小就小 struct mat//矩阵结构体,a表示内容,size大小 矩阵从1开始 { ll a[Matr][Matr],size...

矩阵运算,矩阵快速幂,模板

#include #include #include #include using namespace std; #define MOD 1000000007 struct Mat{ int...

POJ 1995 Raising Modulo Numbers (快速幂模板)

快速幂

HDU 1757 A Simple Math Problem (矩阵快速幂模板)

A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O...

快速幂模板(病毒)

快速幂模板(病毒)

【数论】gcd|扩展gcd|素数筛法|快速幂|欧拉函数(各种模板)

这里总结了一些基础的数学概念。 整除: 一个数可以被另一个数整除是数论中的一个关键概念。d|a(d整除a,a除以d)的含义是存在某个整数k,使得a=kd。称a是d的倍数,d是a的约数(因数)。 带余数...

【模板】快速幂

非递归版qer的while#include #include using namespace std; typedef long long LL;LL a, b, k;LL ksm(LL a, L...

[备战NOI同步赛]快速幂模板(二分/位运算)

/* 快速幂模板 By:qpswwww(ZYK) 含二分快速幂、位运算快速幂 */ #define LONG long long int int MOD; //取模 LONG n...

hdoj 1575 Tr A(矩阵快速幂,模板题)

矩阵也直接给了不用推了。。 代码: #include using namespace std; const int mod = 9973; int n; struct node { ...

HDU2604 Queuing(矩阵快速幂模板)

Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)