ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
Задача 60902
УсловиеБинарный метод возведения в степень. Предположим, что необходимо возвести число x в степень n. Если, например, n = 16, то это можно сделать выполнив 15 умножений x16 = x . x . ... . x, а можно обойтись лишь четырьмя:
x1 = x . x = x2, x2 = x1 . x1 = x4, x3 = x2 . x2 = x8, x4 = x3 . x3 = x16.
Пусть
n = 2e1 + 2e2 +...+ 2er (e1 > e2 >...> er 0).
Придумайте алгоритм, который позволял
бы вычислять xn при помощи
b(n) = e1 + (n) - 1
умножений, где
(n) = r — число единиц в двоичном представлении числа
n.
Источники и прецеденты использования
|
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|