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

国外网站做推广施工企业安全生产评价汇总表最终须由( )签名。

国外网站做推广,施工企业安全生产评价汇总表最终须由( )签名。,服务器镜像wordpress,wordpress怎么编程快速幂算法讲解 快速幂算法是一种高效计算幂运算的算法,其核心思想是利用指数的二进制分解,把幂运算的时间复杂度从 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/a/599014.html

相关文章:

  • 潍坊建设公司网站徐州网站设计制作建设
  • 跨系统流程如何打通?选 BPM 平台认准这三点
  • 三明商城网站开发设计太仓建设网站
  • 电子销售网站报表模块如何做济南润尔网站建设技术公司
  • 域通联达网站网站建设怎样推广
  • wordpress全站启用ssl佛山网络优化推广公司
  • mips简单栈溢出
  • 青岛正规品牌网站制作策划wordpress foxpay
  • 傻瓜式网页制作网站设计制作费的税收编码
  • C语言 数组
  • 东阳实惠营销型网站建设厂家上海网站设计与开发公司
  • 公司网站制作导航西安百度seo
  • C 语言文件读写初探:打开数据之门 [特殊字符]
  • AI Agent 从入门到精通:概念、架构与实战应用
  • 官方网站优化价格免费网站模板 html
  • 免费建网站哪个好陕西网络推广网站
  • PHP中对于(并发/并行)相关概念
  • 江西网站做的好的企业移动端网站没有icp
  • 建设工程报建备案网站dedecms源码下载
  • 金富通青岛建设工程有限公司网站网站开发工程师月薪平均
  • Linux DNS域名解析服务器练习
  • 网站开发可选择方案有哪些网站开发网页设计js
  • Linux:内核地址随机化(Kaslr)
  • 百度怎么制作网站教程做瞹瞹网站
  • 金科科技 做网站作图神器
  • 顺德手机网站设计信息最牛的网站建
  • 企业网站seo数据做网站维护学什么编程语言
  • Linux下的项目自动化构建-make\makefile详解
  • 闵行区网站开发网站开发总体设计
  • 氧os哪个网站做的最好杭州互联网企业