Быстрое возведение в степень — различия между версиями
Bochkarev (обсуждение | вклад) |
Shersh (обсуждение | вклад) |
||
| Строка 12: | Строка 12: | ||
6. } | 6. } | ||
7. return result; | 7. 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://cr.yp.to/bib/2003/joye-ladder.pdf Montgomerry Ladder] | ||
Версия 15:05, 7 мая 2014
Алгоритм быстрого возведения в степень — алгоритм, предназначенный для возведения числа x в натуральную степень n за меньшее число умножений, чем это требуется в определении.
Пусть — двоичное представление степени n. Тогда , где и .
Функция быстрого возведения в степень
Функция int Power(int value, int pow)
1. int result = 1;
2. while (pow) {
3. if (pow & 1) result *= value;
4. value *= value;
5. pow >>= 1;
6. }
7. return result;