zoukankan      html  css  js  c++  java
  • 快速幂算法——复习

    谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。

    其实相当于二分(╯﹏╰)

    原理:(大家可以自己去想)  :我就不证明了。

     我们可以得出以下的结论:

    1.如果b是偶数,我们可以记k = a2 mod c,那么求(k)b/2 mod c就可以了。

    2.如果b是奇数,我们也可以记k = a2 mod c,那么求

    ((k)b/2 mod c × a ) mod c =((k)b/2 mod c * a) mod c 就可以了。


    c++代码

    int PowerMod(int a, int b, int c)

    {

    int ans = 1;

    a = a % c;

    while(b>0)

    {

    if(b % 2 = = 1)

    ans = (ans * a) % c;

    b = b/2;

    a = (a * a) % c;

    }

    return ans;

    }

  • 相关阅读:
    Python基础知识
    Oracle 总结
    Linux基本命令
    测试理论
    计算机基础
    http常见的状态码,400,401,403状态码分别代表什么?
    html
    day21 包
    day20 模块引入的一些说明
    我又回来了???
  • 原文地址:https://www.cnblogs.com/ffhy/p/5661785.html
Copyright © 2011-2022 走看看