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

网站编写语言怎么做一个网站

网站编写语言,怎么做一个网站,养老网站建设的意义,二级域名解析查询快速幂算法 快速幂算法可用分治法实现 不难看出,对任意实数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://www.yidumall.com/news/90336.html

相关文章:

  • 做的网站必须放在idc机房吗百度网盘资源搜索入口
  • 南京公司网站建设费用百度竞价广告的位置
  • 做国外网站用国内服务器企业网站模板免费
  • 杭州知名网站建设兔子bt搜索
  • 创建网站哪个好搜狗推广登录入口
  • 做ppt图表的网站阿里巴巴seo排名优化
  • 专做排名的网站关键字搜索引擎
  • 游戏开发物语破解版优化设计方法
  • 做推广网站文娱热搜榜
  • wordpress 右侧广告北京网站优化站优化
  • 网站代码开发上海百度推广官网
  • 太原做网站多少钱付费推广方式有哪些
  • 网站建设 黑龙江seo网站建设是什么意思
  • 关于政府网站的建设的意见网站的优化和推广方案
  • 做网站jijianjianzhan石家庄邮电职业技术学院
  • 建设一个微商的网站seo爱站网
  • 电子商务b2c网站java培训班学费一般多少
  • jquery图片效果网站百度应用
  • 陕西个人证书查询网seo查询站长工具
  • 网站建设公司业务跟不上网址提交百度
  • 十堰seo排名seo网站诊断分析报告
  • 网站优化北京哪家强?电商培训基地
  • 绍兴外贸网站建设重庆整站seo
  • 如何查询网站域名备案seo超级外链工具免费
  • 重庆企业站seogoogle下载app
  • 重庆传媒公司前十名郑州纯手工seo
  • 公益网站 做公益赚钱360推广登录平台
  • 厦门做网站软件网站优化排名操作
  • 为什么浏览器打开是2345网址导航天天seo站长工具
  • 怎么做网站赌博代理深圳最好的外贸seo培训