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;

    }

  • 相关阅读:
    CentOS 网络配置
    BUUCTF-PWN爬坑-04-pwn1_sctf_2016
    BUUCTF-PWN爬坑-03-warmup_csaw_2016
    BUUCTF-PWN爬坑-02-rip
    此博客早八百年已停止维护
    重&长剖
    FHQ Treap
    NOIP2020游记
    CSP2020 游记
    线段树套平衡树
  • 原文地址:https://www.cnblogs.com/ffhy/p/5661785.html
Copyright © 2011-2022 走看看