online:1
informatyka
facebook
zajęcia pozaszkolne, informatyka

Kontakt «

Fajne «

Kalendarz «

  • Kwiecień 2024
    PnWt¦rCzPiSo Nd
    1 2 3 4 5 6 7
    8 9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30

Imieniny «

  • Ilony, Jerzego, Wojciecha
  • IP: 18.116.42.208
  • Certyfikat   

Sonda «

  • Jakiego języka programowania chcesz się uczyć?
    C++
    Pascal
    Java

» Download

informatyka

Algorytm Euklidesa

Tw. o dzieleniu z reszt±
Dla dowolnych liczb całkowitych $a$ i $b$, $b\neq 0$ istnieje dokładnie jedna para liczb całkowitych $q, r$ taka, że $$a=qb+r.$$ Liczbę $0\leq r < |b|$ nazywamy reszt± z dzielenia liczby $a$ przez $b$.
Przykład
$a=26, b=11$. Wtedy stwierdzamy, że $q=2$ oraz $r=4$, bo
$26=2 \cdot 11 + 4$
Uwaga
Je¶li $r=0$ to mówimy, że $b$ dzieli $a$ (lub $a$ jest podzielna przez $b$), co oznaczamy $b \mid a$.
Przykłady
$12\mid 24$, bo $24=2\cdot 12+0$ (czytamy 12 dzieli 24)
$2\mid 4$, bo $4=2\cdot 2+0$ (czytamy 2 dzieli 4)
ale $3\not\mid 5$, bo $5=2\cdot 2 +1$ (czytamy 3 nie dzieli 5)

Algorytm Euklidesa

Dla dowolnych liczb całkowitych $a$ i $b$ na mocy Tw. o dzieleniu z reszt± mamy
$$a=q_{1}b+r_{1}, 0< r_{1}< |b|$$ $$b=q_{2}r_{1}+r_{2}, 0< r_{2}< |r_{1}|$$ $$r_{1}= q_{3}r_{2} +r_{3}, 0< r_{3}< |r_{2}|$$ $$\vdots$$ $$r_{n-2}= q_{n}r_{n-1}+r_{n}, 0< r_{n} < |r_{n-1}|$$ $$r_{n-1}= q_{n+1}r_{n}$$ Wówczas $r_{n}=NWD(a, b)$ (ostatnia niezerowa reszta).
Dowód
oznaczmy $d = NWD(a, b)$
Algorytm zawsze się zatrzymuje, bo w każdym kroku otrzymujemy liczbę (resztę) co najmniej o 1 mniejsz± od poprzednej, więc kiedy¶ dojdziemy do zera. Z ostatniej równo¶ci $$r_{n-1}= q_{n+1}r_{n}$$ widzimy, że $r_{n}\mid r_{n-1}$. Z pozostałych równo¶ci wynika $r_{n} \mid r_{n-2}, ..., r_{n} \mid r_{1}$ zatem
$r_{n} \mid a, r_{n} \mid b$ (ostatnia niezerowa reszta jest wspólnym dzielnikiem liczb $a$ i $b$) , a więc w szczególno¶ci $r_{n}\mid d$.
Z drugiej strony $d \mid a$ i $d \mid b$, a więc patrz±c na pierwsz± równo¶ć $a=q_{1}b+r_{1}$ stwierdzamy, że $d \mid r_{1}$. Dalej kolejno $d \mid r_{2}, ..., d \mid r_{n-1}, d \mid r_{n}$.
Ponieważ $r_{n} \mid d$ i jednocze¶nie $d \mid r_{n}$, więc $d = r_{n}$.
Dzielimy z reszt± większ± z dwóch liczb przez mniejsz± dopóki obie s± różne od zera. Ostatnia niezerowa reszta, to szukane NWD.
Przykład
Obliczyć NWD(72, 56)
$$72 = 1\cdot 56 + 16$$ $$56= 3\cdot 16 + 8$$ $$16= 2\cdot 8 + 0$$ Widzimy, że ostatni± niezerow± reszt± jest 8.
Zatem NWD(72, 56)=8.
Zalet± algorytmu Euklidesa jest to, że nie musimy liczby rozkładać na czynniki pierwsze, aby obliczyć ich NWD.
Oblicz NWD(128,54)
Wykonujemy kolejno (mniejsz± z dwóch liczb przepisujemy, a druga to dzielenie z reszt± )
12854
2054
2014
614
62
02stop

Ostatni± niezerow± reszt± jest 2, zatem NWD(128, 54)=2
Przykład
Oblicz NWW(12, 32, 514).
Rozwi±zanie
Korzystamy z własnoś¶ci $NWW(12, 32, 514) = NWW(NWW(12,32), 514)$
czyli obliczamy najpierw $NWD(12,32)$ korzystaj±c z algorytmu Euklidesa
1232
128
48
40

czyli $NWD(12, 32) = 4$, dalej korzystamy ze wzoru $a\cdot b = NWW(a, b)\cdot NWD(a, b)$ $$NWW(12, 32) = 12:4\cdot 32=96$$ czyli
$NWW(12, 32, 514) = NWW(96, 514)$ Obliczamy $NWD(90, 514)$ za pomoc± algorytmu Euklidesa.
96514
9634
2834
286
46
42
02

czyli $NWD(96, 514)=2$, dalej $NWW(96, 514)=96:2\cdot 514 = 48\cdot 514 = 25632$
Odp.
$NWW(12, 32, 514) = 25632$.

powrót do spisu

Informatyka
Pozostało
do wakacji!
do góry