zoukankan      html  css  js  c++  java
  • 关于快速幂

    关于快速幂

    这次学习了下快速幂,所以来总结一下

    快速幂,从字面意思就知道是快速的算出幂次方

    我们先看试题a^b%m(快速幂取模)

                                         

    a^b%m呢,如果靠死算的话不仅慢而且就连long long也会爆掉

    所以就需要靠数学来总结个简单点的方法出来

    下面是公式

                                         

    这个公式一来就觉得很神奇(看不懂啊)还好,有推倒过程

                         

    具体点就是

    a*b=(a1*m*b1*m)+(a1*m*b2)+(a2*b1*m)+(a2*b2)

    又因为要mod m

    所以带m的都为0

    所以最后只剩下a2*b2

    所以a*b%m=a2*b2%m

    又因为a2=a%m,b2=b%m

    所以最终就变为----->a*b%m=[(a%m)*(b%m)]%m

    于是便有了

                             

    (然而这次是真的看不懂了,咳咳)

    这是这个试题的方法

    代码的话

     

    试题看完了,就是真正的快速幂了

    核心思想

                         

    代码的话

                             

    真正的快速幂也知道了,接下来就看看怎么让上面的快速幂取模更快吧

                 

    这样就完工了︿( ̄︶ ̄)︿

    Over

  • 相关阅读:
    Consul注销实例
    sql优化基础篇
    linux下执行java类(运行java定时器)
    ExecutorService 的理解与使用
    精度计算的方法
    内部类详解
    接口的作用
    面向对象之继承和组合浅谈
    构造器前篇
    教师编制考试数据分析
  • 原文地址:https://www.cnblogs.com/Morning-Glory/p/9724096.html
Copyright © 2011-2022 走看看