O(logN)时间复杂度内求整数的N次方以及矩阵的N次方

本文探讨如何在O(logN)的时间复杂度内高效求解整数的N次方,以及矩阵的N次方。通过将指数转换为二进制形式,分步计算并利用平方运算,可以大大加快计算速度。同样,矩阵的N次方计算也遵循类似策略,尽管矩阵乘法的细节不同于整数乘法,但核心思想一致。
摘要由CSDN通过智能技术生成

整数N次方

假设一个整数是10,如何最快地求解10的75次方。
1. 75的二进制数形式为1001011
2. 10的75次方=10^64 × 10^8 × 10^2 × 10^1

在这个过程中,我们先求出10^1,然后根据10^2,再根据10^2求出10^4,……,最后根据10^32求出10^64,即75的二进制数形式总共为多少位,我们就要在原基础上平方几次。

  1. 在步骤2进行的过程中,只有遇到位为1时,才将结果累乘当前的平方数。比如,10^64、10^8、10^2、10^1应该累乘。
  /**
   * 巧算
   */
  static int ex2(int n, int m) {
    int pingFangShu = n; //n 的 1 次方
    int result = 1;
    while (m != 0) {
      //遇1累乘现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值