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

网站免费在线客服系统合肥网络推广软件系统

网站免费在线客服系统,合肥网络推广软件系统,建筑公司网址,中国物流网官网快速幂算法讲解 快速幂算法是一种高效计算幂运算的算法,其核心思想是利用指数的二进制分解,把幂运算的时间复杂度从 O(p) 降低到 O(logp)。 原理 假设要计算 an,将 n 表示成二进制形式:n2k1​2k2​⋯2km​,那么 ana…

快速幂算法讲解

快速幂算法是一种高效计算幂运算的算法,其核心思想是利用指数的二进制分解,把幂运算的时间复杂度从 O(p) 降低到 O(logp)。

原理

假设要计算 an,将 n 表示成二进制形式:n=2k1​+2k2​+⋯+2km​,那么 an=a2k1​+2k2​+⋯+2km​=a2k1​×a2k2​×⋯×a2km​。

例如,计算 {3^{13}},13 的二进制是 1101,即 13=2^{3}+2^{2}+2^{0},那么 3^{13}=2^{3}×2^{2}×2^{0}

代码

#include <iostream>
using namespace std;long long fast_pow(long long a, long long b, long long k) {long long result = 1;while (b > 0) {if (b % 2 == 1) {result = (result * a) % k;}a = (a * a) % k;b /= 2;}return result;
}int main() {long long b, p, k;cin >> b >> p >> k;cout << fast_pow(b, p, k) << endl;return 0;
}

我们以计算 (3 ^ 13) % 10 为例,对修正后的 C++ 代码进行一步一步的分析。

分析过程

初始化

在 fast_pow 函数开始时,有如下初始化操作:

  • a = 3(底数)
  • b = 13(指数)
  • k = 10(模数)
  • result = 1
第一次循环
  • 判断 b 是否为奇数b = 1313 % 2 == 1,满足条件。所以执行 result = (result * a) % k,即 result = (1 * 3) % 10 = 3
  • 更新 aa = (a * a) % k,也就是 a = (3 * 3) % 10 = 9
  • 更新 bb /= 2b 变为 6

此时各变量的值为:

  • a = 9
  • b = 6
  • k = 10
  • result = 3
第二次循环
  • 判断 b 是否为奇数b = 66 % 2 == 0,不满足条件,不更新 result
  • 更新 aa = (a * a) % k,即 a = (9 * 9) % 10 = 81 % 10 = 1
  • 更新 bb /= 2b 变为 3

此时各变量的值为:

  • a = 1
  • b = 3
  • k = 10
  • result = 3
第三次循环
  • 判断 b 是否为奇数b = 33 % 2 == 1,满足条件。执行 result = (result * a) % k,即 result = (3 * 1) % 10 = 3
  • 更新 aa = (a * a) % k,也就是 a = (1 * 1) % 10 = 1
  • 更新 bb /= 2b 变为 1

此时各变量的值为:

  • a = 1
  • b = 1
  • k = 10
  • result = 3
第四次循环
  • 判断 b 是否为奇数b = 11 % 2 == 1,满足条件。执行 result = (result * a) % k,即 result = (3 * 1) % 10 = 3
  • 更新 aa = (a * a) % k,也就是 a = (1 * 1) % 10 = 1
  • 更新 bb /= 2b 变为 0

此时各变量的值为:

  • a = 1
  • b = 0
  • k = 10
  • result = 3
循环结束

由于 b = 0,不满足 while (b > 0) 的条件,循环结束,函数返回 result 的值 3

所以,(3 ^ 13) % 10 的结果是 3。这种快速幂算法通过不断将指数 b 减半,减少了乘法运算的次数,时间复杂度为 O(logb)。

http://www.dtcms.com/wzjs/337792.html

相关文章:

  • 网站制作找哪家公司好百度seo怎么查排名
  • 十堰seo优化哪家公司好seo免费课程
  • 党建设计方案哪个网站比较多百度代理公司
  • 什么是网站原创文章培训计划方案
  • 网站内容页面怎么做的sem是什么意思呢
  • 数据库对网站开发的作用农产品网络营销方案
  • 网站建设的网络公十大销售管理软件排行榜
  • 十个常见的网络推广渠道在线刷seo
  • 网站建设合同服务范围上海疫情最新情况
  • 做网站用什么主题国外网站排名前十
  • 如何取消网站备案网站优化方案范文
  • 广州seo技术培训新网站seo
  • 学校网站开发与设计免费发外链的网站
  • 没网站怎么做cpa自动优化app
  • 商标免费查询入口沈阳seo按天计费
  • 网站建设赚钱流程竞价托管外包公司
  • 常州百度网站排名seo是干啥的
  • 襄阳seo营销小熊猫seo博客
  • php如何做局域网的网站建设网站规划与设计
  • 福州企业网站制作网站关键词快速优化
  • 如何在电脑建设网站唐山网站建设方案优化
  • 营销与运营的区别用广州seo推广获精准访问量
  • 内容营销平台有哪些seo整站网站推广优化排名
  • 淮安做网站建设的网络公司好搜网惠州seo
  • 哈尔滨制作网站多少钱流量平台
  • dede网站 地图什么做免费外链网站seo发布
  • 为什么没有专门做代购的网站2024年度关键词
  • 湛江网站seo关键词排名零芯互联关键词
  • 同城型网站开发网站注册账号
  • 哪些网站是做货源的厦门百度推广排名优化