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

盐城整站优化网站数据分析平台

盐城整站优化,网站数据分析平台,做网站需要什么样的服务器,设计制作软件快速幂算法 文章目录快速幂算法一、简单介绍二、计算7107^{10}710三、一般化1、计算ana^nan的快速方法:2、时间复杂度分析:四、代码五、参考资料一、简单介绍 ​ 快速幂(Exponentiation by squaring,平方求幂)是一种简…

快速幂算法

文章目录

一、简单介绍

快速幂Exponentiation by squaring,平方求幂)是一种简单而有效的小算法,它可以以O(logn)O(log_n)O(logn)的时间复杂度计算乘方。快速幂不仅本身非常常见,而且后续很多算法也都会用到快速幂。

二、计算7107^{10}710

​ 让我们先来思考一个问题:7的10次方,怎样算比较快?

​ 最朴素的想法,77=49,497=343,… 一步一步算,共进行了9次乘法。这样算无疑太慢了,尤其对计算机的CPU而言,每次运算只乘上一个个位数,无疑太屈才了。这时我们想到,也许可以拆分问题。

​ 我们换一个角度来引入快速幂。还是7的10次方,但这次,我们把10写成二进制的形式,也就是 1010。于是这个问题就变成了求7的二进制(1010)次幂。这样就只需要计算4次,相比于9次,大大提升了效率。

做法:计算7107^{10}710,也就是计算 71010=7(1000)2×7(10)2=17(8)10××7(2)107^{1010} = 7^{(1000)_2} \times 7^{(10)_2} = 17^{(8)_{10}} \times \times 7^{(2)_{10}}71010=7(1000)2×7(10)2=17(8)10××7(2)10,那么只需要计算7(8)10+7(2)107^{(8)_{10}}+7^{(2)_{10}}7(8)10+7(2)10。更一般化,只需要计算720,721,722,...,72n7^{2^{0}},7^{2^{1}},7^{2^{2}},...,7^{2^{n}}720,721,722,...,72n

三、一般化

1、计算ana^nan的快速方法:

(1)将nnn 转化成二进制形式,例如1011010

(2)转化后的形式为a(xkxk−1...x2x1x0)2=axk0...00×a0xk−1...00×a00...10×a00...01a^{(x_kx_{k-1}...x_2x_1x_0)_2} = a^{x_k0...00} \times a^{0x_{k-1}...00} \times a^{00...10} \times a^{00...01}a(xkxk1...x2x1x0)2=axk0...00×a0xk1...00×a00...10×a00...01.

(3) 需要计算的数值为a1,a2,a4,a8,....,a2na^{1},a^{2},a^{4},a^{8},....,a^{2^{n}}a1,a2,a4,a8,....,a2n.

2、时间复杂度分析:

一般求解 ana^nan 时,需要计算n次。但是使用快速幂算法之后,将nnn 表示成二进制只需要O(logn)O(log_n)O(logn) 位数字,只需要计算O(logn)O(log_n)O(logn)次。

四、代码

public static Long quickPow(Long a,Long n,Long p){//结果Long res = 1L;while (n != 0) {//判断 n 的二进制的最后一位是否为0if((n&1)!=0){//当n的二进制最后一位为1时,乘以当前的权重res = (res*a)%p;}//更新n,每次n向右移一位n = n >> 1;//更新每一位的权重a = (a*a)%p;}return res;
}

五、参考资料

[1] 基础算法—快速幂详解

[2] 快速幂算法

幂算法](https://blog.csdn.net/HouGOD/article/details/123847315)

http://www.yayakq.cn/news/795856/

相关文章:

  • 做网站网络合同手工大全
  • 中卫网站网站建设wordpress如何设置4个侧边栏
  • 怎么做企业营销型网站深圳企业网站建设公司哪家好
  • 网站建设条件招聘骏域网站建设
  • destoon 网站后台显示不出模板网站开发课设个人总结
  • 嘉兴专业网站排名推广重庆装修公司排名前十名
  • 公司建网站多少钱一年网站建设咨询有客诚信网站建设咨询
  • 广东企业网站模板定制世界工业设计大学排名前25
  • 芜湖建设机械网站中国十大进出口公司排名
  • 成都保障房中心官方网站设计海报
  • 怎样在手机上建网站火锅自助餐网站建设
  • ios7 风格 网站免费网站加速器
  • 自助建站系统营销型网站建设 课程
  • 地方门户网站资讯该怎么做重庆博达建设集团网站
  • 网站推广策略成功的案例建设网站项目计划书
  • 网站建设二级菜单wordpress 旅游模板
  • 网站运营作用云主机网站
  • 烟台 做网站工作内容如何创造价值
  • 专做企业的p2p网站免费字体设计网站
  • 网站开发及维护合同范本免费视频素材网站有哪些
  • 营销型网站建设首选建网站开发费用
  • 如何提升网站搜索排名网站建设有哪几个方面
  • 纯静态网站做优化有什么影响网站推广必做
  • 网站正在建设中 蓝色宝安做网站哪家好
  • 主机 建设网站怎么制作网站来赚钱
  • 官方网站建设计划书涡阳做网站
  • 导购类网站怎么做的济南网络销售公司
  • 短视频素材下载网站无水印延边网站建设
  • 电子商务企业网站的推广方式个人做网站的注意事项
  • 哪个网站做的win10系统好安徽水安建设集团网站