Metoda obliczania wartości potęgi $x^n$.
Naiwne obliczanie $x^n$ polega na wykonaniu aż $n-1$ mnożeń. Jednak można tę liczbę operacji skrócić. Wystarczy, że będziemy podstawę potęgi podnosić do kwadratu jak najdłużej, gdy wartość wykładnika przekroczy $n$, to wykorzystujemy wcześniej obliczone wartości.

Przykład

Obliczyć $2^{11}$
$2\cdot 2 = 2^{2} = 4$
$(2^{2})^{2} = 2^{4} = 16$
$(2^{4})^2 = 2^8 = 256$
Kolejne podniesienie do kwadratu przekroczy 10, więc nie podnosimy dalej, tylko mnożymy przez wcześniej obliczone potęgi.
$2^{11}=2^{8}\cdot 2^{2}\cdot 2 = 256 \cdot 4 \cdot 2 = 2048$
Liczba mnożeń w tym przypadku wynosi $5$, zamiast $10$.
Rząd wielkości liczby operacji jest potęgą dwójki
$2^{k} = n$
$n = \lfloor \log_2(n)\rfloor$
Jest to jest złożoność logarytmiczna, co w porównaniu do poprzedniej naiwnej metody o złożoności liniowej jest szokującym wynikiem. Wystarczy porównać wykresy funkcji liniowej i logarytmicznej, żeby zauważyć, że funkcja logarytmiczna rośnie tym wolniej im większe $n$ i dużo wolniej od funkcji liniowej, która rośnie proporcjonalnie do n.
Jak nauczyć tej metody komputer?
Obliczamy metodą szybkiego potęgowania, tak jak poprzednio: $x^{11} = ((x^2)^2)^2 \cdot x^{2}\cdot x^{1}= x^{8+2+1} = x^{2^{3}+2^{1}+2^{0}} = x^{(1011)_{2}}$
Algorytm szybkiego potęgowania sprowadza się do przedstawienia wykładnika potęgi do postaci binarnej i wykonaniu odpowiednich mnożeń.
Postępujemy według pseudokodu:
Ustawmy wynik = 1:
    jeśli kolejny bit jest równy 0
(licząc od prawej), podstawę nadpisujemy jej kwadratem
jeśli kolejny bit jest równy 1
     wynik przemnażamy przez aktualną wartość podstawy, a podstawę nadpisujemy jej kwadratem.
 Czynności powtarzamy do wyczerpania bitów w liczbie.
Znając efektywny algorytm zapisu wykładnika potęgi w postaci binarnej i stosując powyższy algorytm łatwo zaprogramujemy metodę szybkiego potęgowania w dowolnym języku programowania.
Uwaga
Zapamiętaj, że szybkie potęgowanie polega na ciągłym podnoszeniu potęgi do kwadratu i ewentualnym przemnożeniu wyniku przez obliczone już wartości, natomiast zapis binarny wykładnika służy tylko do sprytnego i efektywnego zapisu tego algorytmu.
Ćwiczenie
Obliczyć metodą szybkiego potęgowania $(\sqrt{2} – 1)^{9}$