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

快速幂算法

要计算一个数 x 的 n 次幂,其中 n 可以是正数、负数或零,你可以编写一个名为 power 的函数,其原型为 double power(double x, int n)。这个函数将返回 x 的 n 次幂的结果。

首先我们能想到的就是暴力循环,每次相乘:
在这里插入图片描述

但是在这里有一个非常严重的问题就是:如果n过大,那么有可能会超出时间限制或者栈溢出

所以我们需要寻找一个规律:
如果要我们平时手动来计算一个数字的幂的时候,肯定不会按顺序一个一个相乘。而是会用:
在这里插入图片描述
这里的规律就是:当指数是偶数的时候,直接指数除以2,底数平方。
当指数为奇数的时候,临时结果*=底数 相当于从中拿出了一个底数,然后再直接指数除以2,底数平方。
一直这这样循环,直到指数为1计算完后,临时结果*=x; 就是结果

在这里插入图片描述

拓展小知识:
判断一个数是否为奇数:n&1

取模运算的常用性质:( ab)%p= [ (a%p)(b%p) ] % p


http://www.mrgr.cn/news/39882.html

相关文章:

  • 【新闻转载】Storm-0501:勒索软件攻击扩展到混合云环境
  • 【Ubuntu】PlantUML工具 | 安装 | 语法 | 使用工具画序列图
  • 未来前端发展方向:深度探索与技术前瞻
  • VS2022 Git功能的使用
  • 【数据驱动预测控制2】Willems基本引理
  • Ubuntu开机进入紧急模式处理
  • 数据中心解决方案
  • 电影《749局》酷燃首映 苗苗神秘感大片释出氛围感拉满
  • CMU 10423 Generative AI:lec10(few-shot、提示工程、上下文学习)
  • 使用Python实现图形学的路径追踪算法
  • 序列化方式四——Hessian
  • zi2zi-chain: 中国书法字体图片生成和字体制作的一站式开发
  • 【Vue】vue2项目打包后部署刷新404,配置publicPath ./ 不生效问题
  • Windows开发工具使用技巧大揭秘:让编码效率翻倍的秘籍!
  • Linux线程标识获取
  • 官网:视觉是第一记忆,没有记忆点的官网设计是失败的。
  • 随笔 漫游互联网
  • 图片加文字怎么弄?分享6种图片加文字方法
  • YAML管理接口框架配置的最佳实践!!
  • QT开发:深入掌握 QtGui 和 QtWidgets 窗口管理:QMainWindow、QDialog 和 QWidget 的高级应用