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

淘宝客怎么建设网站首页关键词排名

淘宝客怎么建设网站,首页关键词排名,网站服务器哪些好,微信公众号免费模板网站快速幂算法 快速幂算法可用分治法实现 不难看出,对任意实数a和非负整数n,有: a n { 1 , n 0 , a ≠ 0 0 , a 0 ( a n 2 ) 2 , n > 0 , n 为偶数 ( a n 2 ) 2 ∗ a , n > 0 , n 为奇数 a^n \begin{cases} 1, & n 0, a\neq 0…

快速幂算法

快速幂算法可用分治法实现

不难看出,对任意实数a和非负整数n,有:
a n = { 1 , n = 0 , a ≠ 0 0 , a = 0 ( a n 2 ) 2 , n > 0 , n 为偶数 ( a n 2 ) 2 ∗ a , n > 0 , n 为奇数 a^n = \begin{cases} 1, & n = 0, a\neq 0 \\ 0, & a = 0 \\ \left( a^\frac{n}{2} \right)^2, & n > 0, n \text{为偶数} \\ \left( a^\frac{n}{2} \right)^2*a, & n > 0, n \text{为奇数} \end{cases} an= 1,0,(a2n)2,(a2n)2a,n=0,a=0a=0n>0,n为偶数n>0,n为奇数
这里n/2是C语言中的整除计算,所以n为奇数时需要额外乘一个a
n=0可作为递归边界

递归实现

  • a如果等于0则返回0

  • n=0时作为递归边界返回1

  • n不等于0时,递归求 a n 2 a^\frac{n}{2} a2n的值,再根据n的奇偶性返回相应值

代码
double exp2(int a, int n){if (a == 0)return 0;if (n <= 0)return 1;else{int x = exp2(a, n/2);if (n % 2)return x * x *a;return x * x;}
}

时间复杂度为O(logn)

非递归实现

非递归实现的方法在于将指数n分解乘二进制,将对应二进制位为1的乘起来,就得到最终的结果

例:计算 3 93 3^{93} 393

93 = ( 1011101 ) 2 = 64 + 16 + 8 + 4 + 1 93=(1011101)_2=64+16+8+4+1 93=(1011101)2=64+16+8+4+1

3 93 = 3 64 ∗ 3 16 ∗ 3 8 ∗ 3 4 ∗ 3 3^{93}=3^{64}*3^{16}*3^{8}*3^{4}*3 393=36431638343

代码
  • 变量s存储当前计算结果,并最终作为返回值

  • 变量b存储当前数位的乘方值

  • 遍历n的每一个二进制位

    • n & 1判断指数当前的最后一位是否为1
    • 每次循环将指数n右移一位(除以2),并将b累乘一次,计算当前的乘方
double exp2(int a, int n) {double b, s = 1.0;b = a;while (n > 0) {if (n & 1) {s *= b;}n /= 2;b *= b;}return s;
}

因为n有logn+1个二进制位,只需要次计算就能得到 a n a^n an,时间复杂度为O(n)

测试
double exp2(int a, int n) {double b, s = 1.0;b = a;while (n > 0) {if (n & 1) {s *= b;}n /= 2;b *= b;}return s;
}
int main()
{cout << exp2(3, 93);return 0;
}

结果

在这里插入图片描述

在这里插入图片描述

结果正确

由于递归算法涉及到对栈的操作,一般建议使用非递归算法


文章转载自:

http://O8V6qM8t.ybgdL.cn
http://d1pTRFtp.ybgdL.cn
http://VRbH2x3P.ybgdL.cn
http://3HIUBt5X.ybgdL.cn
http://A5GOyAIP.ybgdL.cn
http://QIgdGwoA.ybgdL.cn
http://wSvd3OVP.ybgdL.cn
http://S2bFCGT7.ybgdL.cn
http://R7MBUIQh.ybgdL.cn
http://k8OK0Onu.ybgdL.cn
http://wm7UB7yR.ybgdL.cn
http://FIBmhJHy.ybgdL.cn
http://Zdkiv2W0.ybgdL.cn
http://ajR34EUn.ybgdL.cn
http://wXts0PpM.ybgdL.cn
http://ObMo8zUU.ybgdL.cn
http://6W7wPqyK.ybgdL.cn
http://djJa9Ys6.ybgdL.cn
http://Lykta1oi.ybgdL.cn
http://Z7Kzyiyi.ybgdL.cn
http://SThoNypl.ybgdL.cn
http://fQdO179n.ybgdL.cn
http://C2kZCOGl.ybgdL.cn
http://wRUzcvAV.ybgdL.cn
http://IG4uOyaR.ybgdL.cn
http://HSn0dnOQ.ybgdL.cn
http://FwEn6Ji7.ybgdL.cn
http://BhDalmof.ybgdL.cn
http://93NQrPK7.ybgdL.cn
http://6hFC2cbc.ybgdL.cn
http://www.dtcms.com/wzjs/730284.html

相关文章:

  • 国内响应式网站建设腾讯云网站备案流程图
  • 重庆网站建设模板制作内蒙古创意网站开发
  • 找人做事的网站网站被入侵
  • 外贸网站大全wordpress修改文章字体颜色
  • 个人备案网站名称传奇页游排行榜前十名
  • 网站外包 博客学校网站建设技术
  • 四川住房建设厅官方网站高档网站建设
  • 网站不能粘贴怎么做在自己的网站做百度搜索框
  • 免费课程网站有哪些免费打开网站
  • 视觉上体验的网站网站建设昆山博敏
  • 乐陵网站优化项目网站开发
  • 北京网站建设方案策划万网做网站怎么样
  • 美妆网站建设环境分析柳州建设网官网
  • 做seo网站标题重要吗阿里云服务器学生免费领取
  • 菏泽 兼职做网站百度模拟点击
  • 鲜花网站建设项目策 划书网站 新增线路 备案
  • 如何把自己做的网站放到网上溧水城乡建设局网站
  • 扬州市网站建设工作室网站建设与网页制作试卷
  • 有什么做公众号封面图的网站给军方做网站套模板行不行
  • 西安做网站优化的公司如何做自己产品网站
  • 文化传媒网站封面网站竞价托管
  • 西安seo霸屏官网seo是什么
  • 一键建站模板wordpress换头像不显示
  • 网站建设创作思路怎么写网站一直不被百度收录
  • 网站开发与实训报告青岛今天发生的重大新闻
  • 哪些网站可以免费做推广呢如何办好公司网站
  • 西乡建网站公司安防网站源码
  • 网站页面优化技巧免费播放电视剧的app有哪些
  • 电子商务公司网站建立有服务器怎么做网站
  • 网站制作怎么做框架wordpress vps建站