模重复平方算法怎么算

模重复平方算法怎么算

问:模重复平方法怎么计算的?那个b1≡b^2(modm)怎么算的?
  1. 答:MOD用法及意义是:a≡b(modc)的意思是a和b除以c后余数相同读作a与b同余,mod为c例如:amodb=c说明:a除以b余数为c。再比如说2的100次方的个位是什么,可写成2^100≡6。(mod10)特别是进制,用“mod”来代表几进制。modn读作“模n”
问:模重复平方算法的程序
  1. 答:#include <iostream>
    using namespace std;
    int mypower(int a, int b)
    {
    if ( b == 0 )
    return 1;
    while ( b % 2 == 0 )
    {
    b = b >> 1;
    a *= a;
    }
    int sum = 1;
    while ( b >= 1 )
    {
    if ( b % 2 == 1 )
    {
    b -= 1;
    sum *= a;
    }
    else
    {
    a *= a;
    b = b >> 1;
    }
    }
    return sum;
    }
    int main()
    {
    for ( int i = 0; i < 12; ++i )
    cout << mypower(2,i) << endl;
    return 0;
    }
问:C/C++中关于模重复平方计算法
  1. 答:不懂,是不是快速幂乘法呀?
    #include <iostream>
    using namespace std;
    int mypower(int a, int b)
    {
    if ( b == 0 )
    return 1;
    while ( b % 2 == 0 )
    {
    b = b >> 1;
    a *= a;
    }
    int sum = 1;
    while ( b >= 1 )
    {
    if ( b % 2 == 1 )
    {
    b -= 1;
    sum *= a;
    }
    else
    {
    a *= a;
    b = b >> 1;
    }
    }
    return sum;
    }
    int main()
    {
    for ( int i = 0; i < 12; ++i )
    cout << mypower(2,i) << endl;
    return 0;
    }
模重复平方算法怎么算
下载Doc文档

猜你喜欢