23
Июл
2016

Возведение в степень по модулю

Не могу реализовать на Java следующий алгоритм:

Алгоритм возведения в степень по модулю

При x=5, y=2, N=4 выдает правильный результат, при x=5, y=10, N=11 - неправильный.

public static double modPower(double x, double y, int N) 
{
    if(y==0) return 1;
    double z = modPower(x, y/2, N);
    if ((y % 2) == 0) 
        return (z*z)%N;
    else 
        return (x*z*z)%N;
}

Источник: https://ru.stackoverflow.com/questions/547687/%D0%92%D0%BE%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D1%81%D1%82%D0%B5%D0%BF%D0%B5%D0%BD%D1%8C-%D0%BF%D0%BE-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E

Share

Тебе может это понравится...