ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Задача 60902
Темы:    [ Теория алгоритмов (прочее) ]
[ Двоичная система счисления ]
Сложность: 3+
Классы: 8,9,10
В корзину
Прислать комментарий

Условие

Бинарный метод возведения в степень. Предположим, что необходимо возвести число 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 $\displaystyle \geqslant$ 0).

Придумайте алгоритм, который позволял бы вычислять xn при помощи

b(n) = e1 + $\displaystyle \nu$(n) - 1

умножений, где $ \nu$(n) = r — число единиц в двоичном представлении числа n.

Источники и прецеденты использования

книга
Автор Алфутова Н.Б., Устинов А.В.
Год издания 2002
Название Алгебра и теория чисел
Издательство МЦНМО
Издание 1
глава
Номер 5
Название Числа, дроби, системы счисления
Тема Системы счисления
параграф
Номер 3
Название Двоичная и троичная системы счисления
Тема Двоичная система счисления
задача
Номер 05.064

© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .