当前位置: 首页 > wzjs >正文

五百人建站推广策略

五百人建站,推广策略,dedecms做微网站,wordpress 链接新窗口打开快速幂 理论 a n a a ⋯ a a^n a a \cdots a anaa⋯a,暴力的计算需要 O(n) 的时间。 快速幂使用二进制拆分和倍增思想,仅需要 O(logn) 的时间。 对 n 做二进制拆分,例如, 3 13 3 ( 1101 ) 2 3 8 ⋅ 3 4 ⋅ 3 1 3^{13}…

快速幂

理论

a n = a × a × ⋯ × a a^n = a × a × \cdots × a an=a×a××a,暴力的计算需要 O(n) 的时间。
快速幂使用二进制拆分和倍增思想,仅需要 O(logn) 的时间。

对 n 做二进制拆分,例如, 3 13 = 3 ( 1101 ) 2 = 3 8 ⋅ 3 4 ⋅ 3 1 3^{13} = 3^{(1101)_2} = 3^8 \cdot 3^4 \cdot 3^1 313=3(1101)2=383431
对 a 做平方倍增,例如, 3 1 , 3 2 , 3 4 , 3 8 ⋯ ⋯ 3^1, 3^2, 3^4, 3^8 \cdots\cdots 31,32,34,38⋯⋯

n 有 logn + 1个二进制位,知道了 a 1 , a 2 , a 4 , a 8 , ⋯ , a 2 logn a^1, a^2, a^4, a^8, \cdots, a^{2^{\text{logn}}} a1,a2,a4,a8,,a2logn后,只需要计算 logn + 1 次乘法就可以了。

快速幂可以应用在任何具有结合律的运算中,例如,取模运算矩阵乘法等。

例如, ( 3 13 ) % p = ( ( 3 8 ) % p ⋅ ( 3 4 ) % p ⋅ ( 3 1 ) % p ) % p (3^{13})\%p = ((3^8)\%p \cdot (3^4)\%p \cdot (3^1)\%p)\%p (313)%p=((38)%p(34)%p(31)%p)%p

模板

int quickpow(int a, int n) {int res = 1;while (n) {if (n & 1) {res = res * a;}a = a * a;n >>= 1;}return res;
}

例题

P1226 【模板】快速幂
题目描述
给你三个整数 a , b , p a,b,p a,b,p,求 a b m o d p a^b \bmod p abmodp

输入格式
输入只有一行三个整数,分别代表 a , b , p a,b,p a,b,p

输出格式
输出一行一个字符串 a^b mod p=s,其中 a , b , p a,b,p a,b,p 分别为题目给定的值, s s s 为运算结果。

输入输出样例 #1

输入 #1

2 10 9

输出 #1

2^10 mod 9=7

说明/提示
样例解释

2 10 = 1024 2^{10} = 1024 210=1024 1024 m o d 9 = 7 1024 \bmod 9 = 7 1024mod9=7

数据规模与约定
对于 100 % 100\% 100% 的数据,保证 0 ≤ a , b < 2 31 0\le a,b < 2^{31} 0a,b<231 a + b > 0 a+b>0 a+b>0 2 ≤ p < 2 31 2 \leq p \lt 2^{31} 2p<231

#include<bits/stdc++.h>
using namespace std;
int quickpow(long long a, long long b, long long p) {int res = 1;while (b) {if (b & 1) {res = res * a % p;}a = a * a % p;b >>= 1;}return res;
}
int main() {long long  a, b, p;cin >> a >> b >> p;cout << a << "^" << b << " mod " << p << "=" << quickpow(a, b, p);return 0;
}

理论

同余式
如果两整数a, b模m的余数相同,则称a, b模m同余,记为a ≡ b (mod m) 。例:8 ≡ 2 (mod 3)

乘法逆元
若a, b互质,且满足同余方程ax ≡ 1 (mod b),则称x为a模b的乘法逆元,记作a⁻¹
例:8x ≡ 1 (mod 5),解得x = 2, 7, 12…

费马小定理
若p为质数,且a, p互质,则a^(p - 1) ≡ 1 (mod p)
例:4^(3 - 1) ≡ 1 (mod 3)

证明
构造一个与p互质的序列A = {1, 2, 3, …, p - 1},现在来证明:∏(i = 1)^(p - 1) a × Ai ≡ ∏(i = 1)^(p - 1) Ai (mod p)
每个a × Ai (mod p)的余数必是独一无二的,且a × Ai (mod p) < p ,则必与Ai (mod p)的余数集合相同。故得证。
所以a^(p - 1) × ∏(i = 1)^(p - 1) Ai ≡ ∏(i = 1)^(p - 1) Ai (mod p) 。证毕。
例:p = 5, A = {1, 2, 3, 4}, a = 2。
则aA = {2, 4, 6, 8}, aA%p = {2, 4, 1, 3}, A%p = {1, 2, 3, 4}

例题

给两个数a, p,p是质数,求a模p的乘法逆元

由费马小定理
a^(p - 1) ≡ 1 (mod p),得 a × a^(p - 2) ≡ 1 (mod p),
所以a^(p - 2) 就是a模p的乘法逆元。
用快速幂求即可。

#include<bits/stdc++.h>
using namespace std;
int a, p;
int quickpow(int a, int b, int p) {int res = 1;while (b) {if (b & 1) {res = res * a % p;}a = a * a % p;b >>= 1;}return res;
}
int main() {cin >> a >> p;if (a % p) {printf("%d\n", quickpow(a, p - 2, p));}return 0;
}
http://www.dtcms.com/wzjs/111645.html

相关文章:

  • 网站建设广告宣传网络推广公司简介模板
  • 南昌网站建设_南昌做网站公司google关键词排名
  • 做导航网站用多大的空间郑州网站优化
  • 邯郸做移动网站哪儿好爱站网长尾词挖掘工具
  • 网站开发做美工自己搜20条优化措施
  • 网站建设属于什么岗位网络营销外包网络推广
  • 企业展示型网站有哪些c盘优化大师
  • 广告公司企业介绍宁波seo网站
  • 深圳网站建设分期付网站seo排名优化
  • 网站建设制作设计营销公司杭州东莞疫情最新消息
  • 需要大量做网站做推广的行业福州百度推广优化排名
  • 哪里有网站可以做动态视频倒计时网络舆情分析
  • 哪家网站做民宿好免费友情链接网
  • 泉州网站建设推广企业怎么免费创建个人网站
  • 做网站需要独立ip吗三只松鼠营销案例分析
  • 襄阳建设网站微信广告投放收费标准
  • 凉州区住房和城乡建设局网站广州日新增51万人
  • 附近的电脑培训班在哪里成都排名seo公司
  • 宁波网站排名优化费用qq推广工具
  • 大学生网站建设申报书seo排名优化公司价格
  • 渭南网站建设服务武汉千锋教育培训机构怎么样
  • 邢台做网站流程优化营商环境心得体会2023
  • 基础网站怎么做seo优化的方法有哪些
  • 承德网站设计公司html网页完整代码作业
  • 好创意设计大赛官网seo全称是什么意思
  • 把收藏夹网站设置成主业怎么做确认已有81人感染
  • 百度网站空间怎么弄一个网站
  • 免费网站申请域名39939cn整站排名优化品牌
  • 网站开发培训成都宁波受欢迎全网seo优化
  • 织梦网站在css中怎样做导航栏百度识图搜索