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

网站首页怎么做ps登烈建站

网站首页怎么做ps,登烈建站,app定制开发软件商城分身,如何免费找精准客户快速幂算法 文章目录快速幂算法一、简单介绍二、计算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/399317/

相关文章:

  • 郑州市建设信息网站地方门户网站的前途
  • 网站建设 成功案例四川法制建设网站
  • 秦皇岛市住房和城乡建设局网站传奇网站模板psd
  • 海南网站建设方面高清设计网站推荐
  • 在线课堂网站开发网站规划与建设课程设计
  • 静态页面做网站建湖网站建设价格
  • 扁平化设计的网站网站建设服务器维护内容
  • 沈阳网站建设服务器wordpress怎么配置文件
  • 西昌网站开发公司网站需要更新的频率
  • 开题报告 网站建设泉州建设部网站
  • 网站制作方案和主要内容跟网站开发有关的内容
  • 甘肃省建设类证书查询网站wordpress博客样板
  • 如何登陆建设银行信用卡网站我有域名怎么做网站
  • 济宁网站建设费用400电话收费标准
  • linux系统怎么做网站centos7安装wordpress
  • 江阴市住房与建设局网站小型公司注册资金写多少合适
  • html教程网站wordpress版权文件
  • 学校网站建设的重要性自己 做网站学什么 平面设计
  • 国外辣妹服装设计网站推荐易企cms
  • 视频网站 外链上海自适应网站建设
  • 网站空间怎样设置用户名和密码手机发布WordPress文章
  • 高端品牌有哪些牌子合肥百度seo排名
  • 中企视窗做网站怎么样怎样用dw做网站主页
  • 网站建设服务费属于什么科目房地产营销门户网站建设
  • 射阳住房和城乡建设局网站安徽省建设造价网站
  • 嘉兴网站搜索排名织梦贷款网站模板
  • 中国交通建设集团英语网站石家庄高端网站建设
  • 建设网站需要营业执照吗青海制作网站多少钱
  • 单页面网站有哪些内容网站制作项目
  • 大连意动网站建设有限公司怎么样网站建设企业官网体验版是什么