Быстрое возведение в степень — различия между версиями
Shersh (обсуждение | вклад) |
(→Функция быстрого возведения в степень) |
||
Строка 4: | Строка 4: | ||
== Функция быстрого возведения в степень == | == Функция быстрого возведения в степень == | ||
− | + | '''function''' Power(value, pow: '''int'''): '''int''' | |
− | + | '''int''' result = 1 | |
− | + | '''while''' (pow > 0) | |
− | + | '''if''' pow '''mod''' 2 == 1 | |
− | + | result *= value | |
− | + | value *= value | |
− | + | pow /= 2; | |
− | + | '''return''' result; | |
== Ссылки == | == Ссылки == | ||
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.24.8878&rep=rep1&type=pdf BinPow and 2^k-ary pow] | * [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.24.8878&rep=rep1&type=pdf BinPow and 2^k-ary pow] | ||
* [http://cr.yp.to/bib/2003/joye-ladder.pdf Montgomerry Ladder] | * [http://cr.yp.to/bib/2003/joye-ladder.pdf Montgomerry Ladder] |
Версия 09:08, 11 сентября 2016
Алгоритм быстрого возведения в степень — алгоритм, предназначенный для возведения числа x в натуральную степень n за меньшее число умножений, чем это требуется в определении.
Пусть
Функция быстрого возведения в степень
function Power(value, pow: int): int int result = 1 while (pow > 0) if pow mod 2 == 1 result *= value value *= value pow /= 2; return result;