I_R_W14_M31_C++ Jak skrócić obliczenia - potęgowanie w wersji smart
W wielu działach matematyki i informatyki pojawiają się liczby tak duże, że ich zapis w zwykłej notacji dziesiętnej staje się niepraktyczny - wymagałby ogromnej liczby cyfr i nie wnosiłby żadnej dodatkowej informacji. W takich sytuacjach kluczowe jest nie samo wykonanie kolejnych mnożeń, lecz sposób organizacji obliczeń.
Metody szybkiego potęgowania pozwalają pracować z dużymi wykładnikami w sposób uporządkowany i efektywny. Wykorzystują strukturę zapisu liczby, własności działań i symetrie, które nie są widoczne przy prostym, „siłowym” podejściu. W tym module zobaczysz, jak te idee prowadzą do algorytmów, które są jednocześnie eleganckie i praktyczne - od teorii liczb po analizę złożoności obliczeniowej.
Przeanalizujesz algorytm iteracyjnego potęgowania liczb.
Zaimplementujesz program potęgujący liczby wykorzystujący algorytm iteracyjny.
Scharakteryzujesz i zaimplementujesz algorytm szybkiego potęgowania liczb.
Porównasz dwie techniki programowania - rekurencyjną i iteracyjną.
Przeanalizujesz algorytmy obliczające wartość potęgi techniką rekurencyjną i iteracyjną.
Zaimplementujesz algorytm szybkiego potęgowania w języku C++.