Algorytm szybkiego potęgowania
Z Wikipedii
Algorytm szybkiego potęgowania – metoda pozwalająca na szybkie obliczenie potęgi o wykładniku naturalnym. Metoda ta wykorzystuje pośrednio dwójkową reprezentację wykładnika potęgi, a jej złożoność, wyrażona jako liczba wykonywanych mnożeń, wynosi Θ(logn), gdzie n oznacza wykładnik obliczanej potęgi.
Szybkie podnoszenie do potęgi w praktyce stosuje się do liczenia reszty z dzielenia potęgi przez ustaloną liczbę. Używa się go np. w algorytmach szyfru RSA.
[edytuj] Wprowadzenie
Potęgowanie definiuje się za pomocą mnożenia
,
co daje łącznie k − 1 mnożeń.
Dla dużego k liczba wymaganych operacji może być bardzo duża. Jeśli k ma j cyfr, liczba operacji byłaby wykładnicza wobec j.
[edytuj] Algorytm
Algorytm szybkiego potęgowania jest konsekwencją obserwacji, że aby obliczyć wartość ab wystarczy znać a[b / 2] (
oznacza część całkowitą), a następnie wykonać jedno lub dwa mnożenia. Np. aby obliczyć 5175 wystarczy znać wartość x = 587, a następnie policzyć y = x2 = 5174 i wynik wynosi
. W ten sposób aby przejść od 587 do 5175 wystarczy wykonać 2 mnożenia zamiast 88, jak wynikałoby to z przytoczonej wyżej definicji.
[edytuj] Pseudokod
Dostajemy z powyższej obserwacji rekurencyjną funkcję szybkiego podnoszenia do potęgi.
funkcja potęga(x, n)
jeżeli n = 0
zwróć 1
jeżeli n jest nieparzysta
zwróć x · potęga(x, n - 1)
w przeciwnym przypadku
a = potęga(x, n/2)
zwróć a²
Ten sam algorytm w wersji iteracyjnej wygląda następująco:
funkcja potęga(x, n)
w = x
dla każdej, poczynając od drugiej, cyfry c rozwinięcia dwójkowego n
w = w²
jeżeli c jest jedynką
w = w · x
zwróć w
| Nowa StrefaWWW |
|
Po pierwsze chcielibyśmy przeprosić za brak aktualizacji strony. Jest on związany z tworzeniem nowej wersji naszej strony i rozbudową wortalu. Na ten czas mamy dla Was niespodziankę- pierwszy screenshot nowej wersji naszej strony. Mamy nadzieję, że nowa wersja się bardziej spodoba.
|
| Co nowego w GNOME 2.20? |
|
Na blogu tłumacza środowiska GNOME, Tomasza Dominikowskiego, pojawiła się lista nowości wprowadzonych w GNOME w wersji 2.20. Prezentujemy ją na naszych łamach.
|
| Nowe wersje Firefoksa |
|
Mozilla poinformowaÅ‚a o wydaniu nowych wersji swojej flagowej przeglÄ…darki. SÄ… to wersje, które zostaÅ‚y zapowiedziane m.in. w naszym serwisie. ZostaÅ‚y one oznaczone numerami: 2.0.0.4 oraz 1.5.0.12. Trzeba pamiÄ™tać, że wersja 1.5.0.12 jest ostatniÄ… wersjÄ… z gałęzi 1.x. Podczas kilku nastÄ™pnych tygodni użytkownicy tej wersji zostanÄ… poinformowaniu o możliwoÅ›ci aktualizacji do wersji 2.
|
| 1 mln blogów w Wordpress.com |
|
Tak... To już ponad milion blogów opartych na popularnym skrypcie Wordpress utrzymuje serwis Wordpress.com. Taki prezent zrobili użytkownicy im twórcom na czwarte urodziny serwisu. Obecnie w serwisie zaÅ‚ożonych jest 1 022 129 blogów.
|
| Nowy Firefox? |
|
W Mozilla Developer Center pojawiÅ‚a siÄ™ informacja, która sugeruje że pojawiÄ… siÄ™ dwie nowe wersje przeglÄ…darki Mozilla Firefox z gałęzi 2.x i 1.x. Od poÅ‚owy maja gałąź 1.x nie powinna być rozwijana, jednakże najnowsza wersja - 1.5.0.12 zostanie wydana. BÄ™dzie to ostatnia edycja starszej wersji tej przeglÄ…darki.
|