I_P_W14_M05_Java Algorytmy liczbowe w języku Java - Algorytm Euklidesa
Obejrzyj prezentację, a następnie porównaj oba warianty algorytmu Euklidesa.
Nagranie dostępne pod adresem https://zpe.gov.pl/a/DF1J2ZJ66
Dźwiękowe nagranie lekcji
Zapoznaj się z prezentacją, a następnie porównaj oba warianty algorytmu Euklidesa.
W poniższym schemacie przygotuj algorytm wyliczający NWD z zastosowaniem operatora modulo.
Specyfikacja problemu:
Dane:
a, b – liczby, dla których program wyliczy NWD; liczby naturalne dodatnie
Wynik:
Największy wspólny dzielnik liczb
i
.
W poniższym schemacie przygotuj algorytm wyliczający NWD z zastosowaniem operatora dzielenia z resztą.
Przygotuj algorytm w JavaScript wyliczający NWD z zastosowaniem operatora modulo.
Oto implementacja algorytmu w języku Java:
Wersja programu, która zlicza wykonane operacje, może wyglądać następująco:
Wyznaczmy NWD dla dużych argumentów funkcji. Okaże się, że liczba wykonywanych operacji jest bardzo mała:
Możemy obliczyć NWD dla więcej niż dwóch liczb.
Obliczenie NWD dla trzech liczb odbywa się w dwóch etapach. Najpierw wyznaczamy NWD dla liczb pierwszej i drugiej oraz NWD liczb drugiej i trzeciej. Następnie obliczamy NWD dla otrzymanych wyników. Przedstawmy tę zasadę za pomocą pseudokodu: