kkate4ka
@kkate4ka
глупенькая девочка

Что такое «бинарное возведение в степень»?

В интернете видела только непонятные примеры кода, прошу на словах объяснить, или на примере.
  • Вопрос задан
  • 256 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alex_ak1
r := 1;
while (pow > 0) do
if (pow mod 2 = 1) then
begin
r := r * a;
pow := pow-1;
end
else
begin
r := r * r;
pow := pow div 2;
end;
Таким образом возведение в степень занимает чуть больше, чем ln2(pow) действий, а не pow действий.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы