Professional Documents
Culture Documents
Rozdzia 1
Funkcje boolowskie
1.1 Algebra Boolea
Przykadem algebry Boolea jest zbir dwuelementowy:
z trzema operacjami: alternatyw, koniunkcj i negacj. a a a Alternatywa, ktr b dziemy te nazywa po prostu sum , jest operacj dwuargumentow, a e z c a a a oznaczan przez: a lub i okrelon przez tabel : s a e p 0 0 1 1 q 0 1 0 1
p+q 0 1 1 1
Koniunkcja (lub iloczyn) jest drug operacj dwuargumentow, oznaczan przez: a a a a lub
0 0 0 1
!
%$
" #
Podobnie jak w arytmetyce, kropk b dziemy opuszcza , je eli nie b dzie to prowadzi e e c z e c do niejednoznacznoci. s Operacje alternatywy i koniunkcji mo na te zdeniowa za pomoc nast puj cych z z c a e a wzorw: Negacja jest operacj jednoargumentow, oznaczan przez: a a a lub
p 0 1
1 0
Algebr e mo emy interpretowa jako logik zdaniow. Zmienne s zdaniami, z c e a a ktre mog przyjmowa wartoci prawda lub fasz. Je eli oznaczymy prawd przez i a c s z e fasz przez , to powy ej zdeniowane operacje odpowiadaj znanym operacjom z logiki z a zda . n Lemat 1.1 Operacje alternatywy, koniunkcji i negacji speniaj nast puj ce tosamoci: a e a z s (a) (b) (c) (d) (e) (f) (g) (h) (i)
czne), a
(alternatywa jest rozdzielna wzgl dem koniunkcji), e (koniunkcja jest rozdzielna wzgl dem alternatywy), e , , ,
Najprostsze dowody powy szych to samoci polegaj na sprawdzeniu, ze zachodz one z z s a a dla ka dego mo liwego podstawienia za zmienne wartoci 1 lub 0. Na przykad, udowodz z s nimy to samoc: z s Wszystkie mo liwe podstawienia zebrane s w tabeli: z a
# "
0 " # ) "# # # " " ( ' & & $ % " $ # " ! #
Poniewa trzecia kolumna jest identyczna z pierwsz , wi c rwnoc z a e s jest prawdziwa dla ka dego podstawienia, czyli jest to samoci . z z s a Innym przykadem algebry Boolea jest zbir wszystkich podzbiorw jakiego zbioru s z operacjami okrelonymi w nast puj cy sposb: s e a jest sum mnogociow a s a jest iloczynem
1 jest zbiorem
Tak e te operacje speniaj to samoci z lematu 1.1. z a z s Udowodnimy, dla przykadu, to samoc z s . Je eli element nale y do z z zbioru , to nale y tak e do sumy z z . Je eli za nie nale y do , to nie nale y z s z z tak e do iloczynu z , a wi c nie nale y do zadnego skadnika sumy e z , czyli nie . Tak wi c zbiory i e zawieraj dokadnie te same elementy, a nale y do z a wi c s rwne. e a Oprcz trzech podstawowych, w algebrze Boolea deniuje si inne operacje. Dla nas e wa na b dzie operacja xor (ang. exclusive or) albo alternatywa wykluczajca. xor jest z e a operacj dwuargumentow, oznaczan przez: a a a
0 1 1 0
Operacja ta jest nazywana alternatyw wykluczajc , poniewa w logice zdaniowej a a a z zdanie jest prawdziwe, je eli albo , albo jest prawdziwe, ale nie jest prawdziwe, z gdy i naraz s prawdziwe. Operacja a ma nast puj ce wasnoci: e a s
(a)
Lemat 1.2
(jest przemienna),
0 0 1 1
"
, .
cznoc operacji zapewnia, ze mo emy opuszcza nawiasy w wyra eniach typu a s z c z , bez spowodowania niejednoznacznoci. s Operacj xor mo na zdeniowa poprzez alternatyw, koniunkcj i negacj: e z c e e e
"
(f) zbir
(e) Jeeli z
, to
$
% "
(jest czna), a
Wyra enia boolowskie mo na tak e budowa za pomoc operatorw boolowskich i naz z z c a wiasw. Je eli U i W s dwoma wyra eniami boolowskimi, to wyra eniami boolowskimi z a z z s tak e nast puj ce wyra enia: a z e a z
gdzie b jest zmienn typu boolean, a x zmienn liczbow . a a a Wyra enia boolowskie wyst puj w j zyku Pascal w instrukcjach warunkowych lub z e a e w p tlach while i repeat. e
gdzie
funkcj sta e a
rwn 0, a ,
identycznoc s negacj e
funkcj sta e a
rwn 1. a
0 0
Funkcje boolowskie
U or W (suma lub alternatywa), U and W (koniunkcja), not W (negacja), U xor W (exclusive or lub alternatywa wykluczajca), a (U) (wyra enie U wzi te w nawias). z e
zmiennych to funkcje:
0 1
1 0
1 1
S to wszystkie funkcje boolowskie jednej zmiennej, poniewa s to funkcje ze zbioru a z a w zbir , a takich funkcji jest:
x 0 0 1 1
y 0 1 0 1
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
Zauwa my, ze ci g wartoci ka dej z tych funkcji czytany od gry do dou stanowi zapis z a s z binarny jej numeru. Przyjrzyjmy si bli ej tym funkcjom: e z
jest funkcj sta rwn 0, a a a jest funkcj sta rwn 1, a a a jest koniunkcj, a
jest rwnowanoci , z s a
jest rzutem na drug wsprz dn , a e a jest negacj drugiej wsprz dnej, a e jest negacj pierwszej wsprz dnej, a e
do .
jest implikacj z a
do ,
jest implikacj z a
jest alternatyw, a
jest xorem, do ,
do ,
"
!
$ (
$ %
& '
#
!
Jak wida , ka d z tych funkcji mo na przedstawi za pomoc koniunkcji, alternatywy i c z a z c a negacji. Funkcji boolowskich trzech zmiennych jest:
nie b dziemy ich wszystkich wypisywa . e c Nasuwa si pytanie, czy ka d funkcj zmiennych mo na przedstawi za pomoc e z a e z c a koniunkcji, alternatywy i negacji. Odpowied jest pozytywna. Najpierw przykad. Rozz patrzmy funkcj boolowsk trzech zmiennych: e a x 0 0 0 0 1 1 1 1 Rozwa my wyra enie: z z y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1
f(x,y,z) 0 1 0 1 1 1 0 0
Przyjmuje ono wartoc 1 tylko dla jednego wektora s , czyli dla podstawienia , , . Podobnie, wyra enie z przyjmuje wartoc 1 tylko dla wektora s , wyra enie z tylko dla , a wyra enie z tylko dla . Suma tych wyra e : z n (1.1) , , , , czyli jest przyjmuje wartoc 1 tylko dla wektorw s rwnowa na naszej funkcji . Wyra enie (1.1) jest w tak zwanej dysjunkcyjnej postaci z z normalnej (DNF). Funkcj mo na te opisa w innej formie. Rozwa my wyra enie: e z z c z z
Przyjmuje ono wartoc 0 tylko dla jednego wektora s , czyli dla podstawienia , , . Podobnie, wyra enie z przyjmuje wartoc 0 tylko dla wektora s , wyra enie z tylko dla , a wyra enie z tylko dla . Iloczyn tych wyra e : z n
przyjmuje wartoc zero tylko dla wektorw s , , ,i , czyli jest rwnowa ny funkcji . Jest to tak zwana koniunkcyjna posta normalna (CNF) z c funkcji .
'
'
10
, niech
, dla ka dego z
Jest to dysjunkcyjna posta normalna (DNF) funkcji (sumowanie oznacza tutaj alternatyw). c e Aby otrzyma posta koniukcyjn, zaczynamy od wyra enia: c c a z
, dla ka dego z
$ $
$ $
"
$
$
11
kraw dzie, s to bramki wejciowe. Bramki oznaczone przez maj po jednej krawdzi e a s a e wejciowej, a bramki z pozostaymi operatorami maj po dwie kraw dzie wchodzce. W s a e a sieci boolowskiej nie mo e by cyklu, czyli ci gu kraw dzi z c a e
takiego ze , i dla ka dego speniaj cego warunek z a w sieci istnieje kraw d od wierzchoka do wierzchoka e z . Wierzchoek, z ktrego nie wychodz a zadne kraw dzie, nazywamy wyjciowym. W sieci mo e by kilka bramek wyjciowych. e s z c s Z ka d bramk w sieci mo emy zwi za wyra enie boolowskie z a a z a c z . Robimy to przez indukcj ze wzgl du na struktur sieci: e e e Najpierw przypisujemy wyra enia bramkom wejciowym. W tym wypadku wyraz s zeniem tym jest etykieta bramki : staa lub zmienna. Je eli bramka jest etykietowana negacj i dochodzi do niej kraw d od bramki z a e z oraz bramka ma ju przypisane wyra enie z z , to bramce przypisujemy wyra enie z . Je eli etykiet bramki jest operator dwuargumentowy , to do prowadz kraw dzie z a a e od dwch bramek, i . Je eli przypisano ju wyra enia z z z i bramkom i , to bramce przypisujemy wyra enie z .
z Liczb wszystkich bramek w sieci nazywamy kosztem sieci, a dugoc najdu szej scie ki e s z w sieci nazywamy g bokoci sieci. Je eli w sieci istnieje bramka wyjciowa , to moe s a z s zemy powiedzie , ze sie oblicza wyra enie c c z . Z faktu, ze ka d funkcj boolowsk z a e a mo na przedstawi w postaci normalnej, wynika, ze ka d funkcj boolowsk mo na z c z a e a z przedstawi za pomoc sieci. Jednak konstrukcja sieci dla funkcji boolowskiej poprzez c a wyznaczanie postaci normalnej zazwyczaj prowadzi do sieci o du ym koszcie (liczbie z bramek). Poni ej omwiono przykady sieci o stosunkowo maym koszcie. z
12
G bokoc tej sieci wynosi 3. e s Podobnie mo na skonstruowa sie licz c alternatyw zmiennych, gdzie jest z c c a a e jak s pot g dwjki. G bokoc takiej sieci wynosi a e a e s . Oczywicie tak samo mo emy s z zbudowa sie dla uoglnionej koniunkcji lub operatora . c c
jest
jest funkcj progow o zmiennych z progiem . B dziemy zakada , ze a a e c Sieci funkcji progowych dwch zmiennych s proste, poniewa : a z
$
13
Przypucmy, ze mamy ju sieci funkcji progowych zmiennych. Za ich pomoc s z a mo emy skonstruowa funkcje progowe z c zmiennych (rysunek 1.4). Zrobimy to posugujc si nast puj cymi zale nociami: a e e a z s
Je eli zestawimy rwnolegle sieci funkcji progowych, tak jak zrobiono to na rysunz ku 1.5, to otrzymamy sie sortuj c . Sie ta bierze na wejciu ci g czterech bitw: c a a c s a
1.4.3 Sumator
Zastanwmy si teraz, jak skonstruowa sumator, czyli sie , ktra b dzie dodawa dwie e c c e c liczby -bitowe:
i da w wyniku
bitw sumy:
$
oraz
% % % %
Je eli z
, to:
' ' 0
14
Na wejciu sumatora mamy bitw pierwszej liczby, s , ... , , oraz bitw drugiej liczby, , ... , , a na wyjciu s bitw sumy arytmetycznej , ... , . Nasz sumator naladuje szkolne dodawanie opisane w rozdziale o arytmetyce. Najpierw dodaje bity i s i oblicza ostatni bit sumy oraz przeniesienie , ktre ma by dodane do nast pnego c e dodaje bity , oraz przeniesienie bitu. Potem dla kolejnych pozycji od do z poprzedniej pozycji i oblicza -ty bit sumy oraz przeniesienie do nast pnej e pozycji. Na rysunku 1.6 przedstawiono sie HA (ang. half adder psumator), ktra ma na c wejciu dwa bity, s i , a na wyjciu bit sumy s oraz bit przeniesienia . Na rysunku 1.7 przedstawiono sie FA (ang. full adder), ktra ma na wejciu trzy c s bity, , oraz , a na wyjciu bit sumy s oraz bit przeniesienia . Na rysunku 1.8 przedstawiono schemat konstrukcji sumatora dla . Podobnie mo na skonstruowa sumator dla dowolnego . Taki sumator b dzie zawiera z c e
%
$ ' % % % %
$ ' $
15
Je eli wektor zerowy z oznaczymy przez 0, a wektor zo ony z samych jedyz nek przez 1, to zachodz wszystkie to samoci lematu1.1 oraz to samoa z s z sci (a)(e) z lematu 1.2. Nie jest natomiast na og speniona wasnoc (e) lematu 1.2, s
oraz
$ $
16
poniewa je eli z z , to z dziaaniami i nie jest ciaem (nie ma elementu przeciwnego do ). Zbir jest przestrzeni liniow nad ciaem a a , z jako dodawaniem oraz mno eniem przez skalar zdeniowanym przez: z (tutaj zero po lewej stronie jest zerem z ciaa, a zero po prawej stronie jest wektorem zerowym), .
oraz: (0000 0000 0000 1101) and (0000 0000 0000 0110) =(0000 0000 0000 0100), a ten ostatni ci g reprezentuje 4 w typie integer. Podobnie zachodzi: a 13 or 6=15; 13 xor 6=11; not 0=-1.
6 przez:
$
" "
17
Ci g a nale y traktowa jako funkcj charakterystyczn pewnego podzbioru. z c e a Wtedy operacje boolowskie na ci gach odpowiadaj operacjom na zbiorach. Alternatya a wa odpowiada sumie zbiorw, koniunkcja cz sci wsplnej, a negacja uzupenieniu zbioe ru. Operacja xor odpowiada r nicy symetrycznej. Taka reprezentacja ma dwie zalety. z Zajmuje mao pami ci i operacje na zbiorach s wykonywane bardzo szybko, poniewa e a z operacje boolowskie s operacjami niskiego poziomu. a Na przykad je eli chcemy reprezentowa w pamici komputera uo enie kamieni w z c e z grze w warcaby na 64-polowej szachownicy, to wystarcz dwie liczby typu longint (po 32 a bity). W jednej liczbie reprezentujemy poo enie czarnych, a w drugiej poo enie biaych z z kamieni (w grze w warcaby kamienie mog le e tylko na 32 czarnych polach). a z c
%
$
18
HA
FA
FA
FA
gdzie 0 reprezentuje wektor zerowy. Zalet tego systemu jest to, ze jest on absolutnie beza pieczny. Zrbmy nast puj cy eksperyment. Przypucmy, ze kto ma zaszyfrowan wiae a s s a domoc i chce j odszyfrowa przez odgadnicie samej wiadomoci . Zastanwmy si , s a c e s e dla jakich ci gw istnieje klucz , taki ze a , czyli inaczej, jakie wiadomoci s mog by zaszyfrowane w . Okazuje si , ze dla ka dego ci gu a c e z a istnieje klucz , taki ze . Wystarczy wzi c a . Mamy wtedy:
)
poniewa z
%
%
%
%
%
19
Wad tego systemu jest to, ze klucze musz by tej samej dugoci co sama wiadomoc i a a c s s musz by trzymane w sekrecie. Powoduje to kopoty z przesyaniem i przechowywaniem a c kluczy. System one-pad mo na stosowa w nast puj cy sposb: Najpierw przesya si bezpieczn z c e a e a poczt (na przykad kuriersk) zapasy kluczy, na przykad notesy z kartkami, gdzie ka da a a z strona zawiera jeden klucz. Nast pnie szyfrowane depesze mog by przesyane mniej e a c bezpiecznymi kanaami. Trzeba tylko przestrzega zasady, ze jedna kartka mo e by u yc z c z ta tylko raz (st d angielska nazwa systemu). Same klucze powinny by losowane, aby a c przeciwnik nie mg ich odgadnc. a ami c szyfry cz sto korzysta si z faktu, ze wiadomoci, lub ich fragmenty, wyst puj a e e s e a z r n cz stoci (prawdopodobie stwem). Przypucmy dla prostoty, ze szyfrujemy poz a e s a n s jedyncze znaki i niech b dzie zbiorem wiadomoci (kody ASCII). Dla normale s nych tekstw (listw) rozkad cz stoci poszczeglnych znakw jest bardzo niejednostaje s ny. Kody jednych liter wyst puj du o czeciej, ni innych, a pewne znaki nie wyst puj e a z s z e a wcale. Gdybymy teraz zastosowali jaki prymitywny sposb kodowania bez klucza, s s a , to w zaszyfrowanej wiagdzie ka dy znak zawsze jest szyfrowany za pomoc z domoci rozkad cz stoci b dzie podobny (przepermutowany). Najcz sciej wyst puj cy s e s e e e a znak w wiadomoci zaszyfrowanej odpowiada najcz sciej wyst puj cemu znakowi w teks e e a scie, itd. Mo na to wykorzysta przy amaniu szyfrw. z c Jak zaraz zobaczymy w przypadku szyfrw one-pad tak nie jest. Znaki w zaszyfrowanej wiadomoci posiadaj rozkad jednostajny, tak jakbymy losowali kolejne znaki i s a s dlatego analiza statystyczna jest tutaj bezu yteczna. z Niech b dzie zbiorem wiadomoci z dowolnym rozkadem prawdopoe s dobie stwa, a n zbiorem kluczy z jednostajnym rozkadem prawdopodobie nstwa. Losujemy wiadomoc s i klucz i obliczamy wiadomoc s . Niech oznacza zdarzenie, ze wylosowano wiadomoc , s , ze wylosowano klucz , a zdarzenie, ze otrzymano zaszyfrowan wiadomoc . Zgodnie ze wzorem a s na prawdopodobie stwo cakowite mamy n
'
ale
. Dlatego
"
20 Funkcja
co wynika z faktu, ze operacja jest czna i przemienna. a jest rwna 1, je eli liczba jedynek w ci gu jest nieparzysta, oraz jest rwna z a 0, je eli w ci gu liczba jedynek jest parzysta. Je eli b dziemy uto samia wektor ze z a z e z c zbiorem, to jest rwne parzystoci mocy zbioru . s Twierdzenie 1.3 dla dokadnie poowy wejc. To znaczy: s
Pierwszy dowd. Twierdzenie wynika z faktu, ze dokadnie poowa podzbiorw zbioru jest nieparzystej mocy. Drugi dowd. We my wektor: z
Ponadto:
a st d wynika, ze dla ka dej pary , a z dokadnie jedna z dwch liczb jest jedynk, czyli dla dokadnie poowy a ,
% %
, to
% % ) % % %
%
%
21
w tym przypadku nie mo e mie pewnoci. Zauwa my, ze je eli z c s z z jednym bicie, to ma tylko jedn jedynk, wi c: a e e
Tak wi c je eli w przesyanych danych zostanie zmieniony (przekamany) jeden bit, b dzie e z e mo na to wykry porwnujc z c a z . Jest to bardzo stary system kontroli danych. Dziaa on dobrze, je eli przekamania s z a przypadkowe i prawdopodobienstwo przekamania dwch bitw jest du o mniejsze ni z z prawdopodobie stwo przekamania jednego bitu. Funkcja n jest jednak zbyt prosta, aby zabezpieczy dane przed zoliwym przekamywaniem. Wystarczy bowiem zawsze c s przekamywa parzyst liczb bitw, aby rzecz si nie wykrya. c a e e Poka emy teraz bardziej zo ony sposb zabezpieczania danych przed przekamaz z niem. Dla dowolnego wektora zdeniujmy funkcj: e
Funkcja oblicza parzystoc liczby bitw wektora , ale liczone s tylko bity na s a pozycjach wyznaczonych przez wektor , inaczej to parzystoc przekroju i s . Funkcja jest addytywna:
Wektor powinien mie jedynk na pozycji, na ktrej te ma jedynk. Podobnie jak w c e z e dowodzie twierdzenia 1.3, mo emy teraz okreli funkcj: z s c e
% $ $ % $ $ % $
% % $ % $ $ $ $ $ $
oraz
%
r ni si tylko na z a e
Wykorzystujc funkcje a , mo na zbudowa lepszy system zabezpieczania daz c nych. Na pocz tku Magosia i Ja zaopatruj si w ci g wylosowanych kluczy: a s a e a
Klucze te powinny by trzymane w sekrecie. Je eli teraz Magosia chce przesa Jasioc z c a i wysya razem z wi wiadomoc , to bierze kolejny klucz z ci gu s podpisem . Ja po odebraniu wiadomoci razem z podpisem s s (tak jak poprzednio zakadamy, ze nie jest przekamywane) porwnuje i . Je eli z , to dla ka dego : z
1.8 Zadania
1. Udowodnij lematy 1.1 i 1.2. 2. Udowodnij, ze to samoci lematu 1.1 s to samociami w algebrze podzbiorw z s a z s zbioru . 3. Ktre z poni szych rwnoci s to samociami w algebrze z s a z s : a) p+qr=q+pr, b) (p+q)r=p+qr, c) (r+q)r=r+qr, d) (p+q)r=p(q+r)+qr. 4. Udowodnij, ze wszystkie funkcje boolowskie dwch zmiennych mo na przedsta z wi za pomoc dwch operatorw, koniunkcji i negacji (lub alternatywy i negacji). c a
Tak wi c z prawdopodobie stwem jedna druga Ja wykryje, ze e n s . Aby zwi kszy to prawdopodobie stwo mo na bra kilka kolejnych kluczy e c n z c Wtedy prawdopodobie stwo, ze w przypadku, gdy n , mamy dla ka dego z , jest rwne .
Je eli za z s
, to
% % $ $ $
. ,
1.9. Problemy
23
5. Udowodnij, ze wszystkie funkcje boolowskie dwch zmiennych mo na przedsta z wi za pomoc jednego operatora nand (lub nor). c a
6. Ile funkcji
spenia rwnanie
7. Funkcja przyjmuje wartoc 1 tylko dla wektorw s , oraz . Przedstaw funkcj w postaciach normalnych (dysjunkcyjnej i koe niunkcyjnej). 8. Narysuj sie boolowsk dla funkcji z poprzedniego zadania. c a 9. Zaprojektuj sie odejmujc od siebie dwie liczby w postaci dwjkowej. c a a 10. Zaprojektuj sie , ktra mno y dwie liczby dwubitowe. c z e s 11. Opisz schemat sumatora dla liczb -bitowych, ktrego g bokoc jest proporcjonalna do . 12. Oblicz wartoc wyra e x or y, x and y, not x, x xor y: s z n a) je eli zmienne x i y s typu shortint i przyjmuj wartoci: x=6, y=-3, z a a s b) je eli zmienne x i y s typu byte i przyjmuj wartoci: x=6, y=3. z a a s 13. Dany jest wektor . Dla jakich wektorw
1.9 Problemy
1.9.1 System one-pad
System one-pad mo e by stosowany do ci gw liter alfabetu acinskiego. Wtedy uto z c a z samiamy litery z liczbami od 0 do 25 i zamiast operacji stosujemy:
czyli reszt z dzielenia e przez 26. Jak wygl da wtedy operacja deszyfrowania? a Poka , ze system one-pad z literami jest rwnie bezpieczny jak system z dwoma cyframi z 0 i 1.
1.9.2 Zabezpieczanie
Zaproponuj zmiany w systemie podpisw opisanym pod koniec rozdziau, tak aby prawdopodobie stwo wykrycia b du zwi kszy do 0.75. n e e c
oraz
, ? . Dla jakich wektorw
24
taki ze:
' 0 $
Rozdzia 1
Arytmetyka
1.1 System dziesi tny e
Najpowszechniej u ywanym sposobem przedstawiania liczb naturalnych jest system dziez si tny, gdzie na przykad zapis: e przedstawia liczb skadajaca si z jednej setki, siedmiu dziesiatek i omiu jednoci. Moe e s s zemy to zapisa w postaci: c
!
albo inaczej: Tak wi c w systemie dziesi tnym kolejne cyfry oznaczaja wspczynniki przy kolejnych e e pot gach liczby dziesi c, zaczynajac od najwi kszej, a konczac na najmniejszej pot dze. e e e e Mwimy, ze liczba dziesi c jest podstawa lub baza systemu dziesi tnego. W systemie e e dziesi tnym u ywamy dziesi ciu cyfr: e z e
! H ! ! ! D ! C ! @ ! 7 ! 4 ! ! 2E98GF9E98BA986532 1 0 ' $ )(&%#"
oznacza liczb : e
! 0 0 I ' ' I 1 1 1 3S ' RP Q ' 3P Q I P % P I
!
a zapis:
(1.1)
(1.2)
0 V
4
U I
Rozdzia 1. Arytmetyka
gdzie sa cyframi nale acymi do zbioru z . Liczby mo na te zapisywa w systemach z inna baza. Je eli za baz systemu wybiez z c z e rzemy liczb , to potrzebujemy cyfr, a zapis: e
0 ' I I 1 1 331 ' 3P Q
Poni ej w pierwszej tabeli przedstawiono siedemnacie kolejnych liczb w postaci dwjz s kowej i dziesi tnej, a w drugiej jedenacie pierwszych pot g liczby 2 w postaci dwjkowej e s e i dziesi tnej. e
H %
S@
1 4
4 #@
99
4 (7
@ D
0 V
lub:
UT
. Podobnie zapis:
0 4 "
' 4 )%
'
1 1 1 Q 4 3S)' 3P
' RP Q
P 4
oznacza liczb : e
)'
'
H!1 11 ! ER39
I
1 1 1 Q "33S)' 3P
0 V
I P
' RP Q
P
(1.3)
(1.4)
1.3. Zwi kszanie liczby o jeden e dwjkowy 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 pot ga e 0 1 2 3 4 5 6 7 8 9 10 dziesi tny e 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 dziesi tny e 1 2 4 8 16 32 64 128 256 512 1024
dwjkowy 1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000 10000000000
powtarzamy, co nast puje: e je eli wskazany bit jest zerem, to zamieniamy go na jedynk i ko nczymy z e algorytm, je eli jest on rwny jeden, to zamieniamy go na zero i wskazujemy nast pny z e bit w lewo; je eli nie ma nast pnego bitu w lewo, to stawiamy jedynk na poczatku z e e liczby i ko czymy algorytm. n
Rozdzia 1. Arytmetyka
Mwiac inaczej, szukamy pierwszego zera od prawej strony, zamieniamy go na jedynk , e a wszystkie jedynki stojace za nim zamieniamy na zera. Przykad 1.2 Liczba o jeden wi ksza od liczby e to
%22 %9%2
Je eli liczba nie zawiera zer, tylko same jedynki, to zamieniamy te jedynki na zera i z stawiamy jedynk na poczatku. e Przykad 1.3 Po liczbie jest liczba
% %%
Zauwa my, ze podobnie dziaa algorytm zwi kszania o jeden liczb w systemie dziesi tz e e nym (lub dowolnym innym systemie). Szukamy pierwszej od prawej cyfry r nej od dziez wiatki (najwi kszej cyfry w systemie), zwi kszamy t cyfr o jeden, a wszystkie stojace e e e e za nia dziewiatki zamieniamy na zera.
je eli zapisy liczb sa rwnej dugoci, to porwnujemy bit po bicie od lewej strony z s do prawej: je eli bity sa takie same, to przechodzimy do nast pnego bitu w prawo, z e
je eli bity sa r ne, to ko czymy i stwierdzamy, ze wi ksza jest ta liczba, z z n e ktra ma wi kszy bit na tej pozycji, e je eli wszystkie bity sa takie same, to porwnywane liczby sa rwne. z
922
Przykad 1.4 . Liczby te sa tej samej dugoci, maja takie same trzy s pierwsze bity, a rnia si dopiero czwartym bitem czwarty bit pierwszej liczby jest z e wi kszy od czwartego bitu drugiej liczby. e
22
Przypucmy, ze chcemy doda dwie liczby w postaci dwjkowej. Zakadamy tu, ze obie s c liczby sa tej samej dugoci. Je eli nie sa, to krtsza z nich uzupeniamy na poczatku s z zerami. Algorytm dodawania. Aby doda dwie liczby w postaci binarnej: c
! 0 ! 0 0 I 1 1 31 ' RP Q I P I
dla kolejnych pozycji od 0 do obliczamy bit sumy sienia do nast pnej pozycji: e
0 0
oraz
nast pnie po kolei, dla ka dego od 1 do , obliczamy: e z , je eli co najmniej dwa spord bitw z s , oraz
P
i 1
+ 1 1
Aby odja od siebie dwie liczby w systemie dwjkowym, odejmujemy bit po bicie c od prawej do lewej, a w przypadku gdy trzeba odja bit wi kszy od mniejszego, po yc e z czamy dwjk z nast pnej (w lewo) pozycji (szczegy algorytmu pozostawiono jako e e cwiczenie). Przykad 1.6 Odejmowanie liczb i
22
%
99
'
(mo e si zdarzy , ze z e c
).
0 1
'
' Q
P
(czyli
najpierw obliczamy
oraz
4
Q 31 ' 3P P 1 1
' Q
0
S U U
P
0 0
0 U
I 0 U U 0
przez 2),
sa jedynkami,
Rozdzia 1. Arytmetyka
Aby pomno y dwie liczby, mno ymy pierwsza liczb przez poszczeglne cyfry druz c z e giej liczby, a wyniki podpisujemy pod spodem odpowiednio przesuni te wzgl dem siebie. e e Ka dy kolejny wynik jest przesuni ty o jedna kolumn w lewo. Nast pnie sumujemy te z e e e iloczyny. Przykad 1.7 Oto przykad mnoenia liczb z 1 1 0 1 0 i
9 22
: 1 1 1
0 0 0 0 1
1 1
0 0 1
1 1 1 0 1 0
0 0 0 0 0
Zauwa my, ze pomno enie liczby w postaci dwjkowej przez 2 oznacza dopisanie z z jednego zera na ko cu liczby. Podobnie pomno enie liczby przez -ta pot g 2 oznacza n z e e dopisanie na ko cu liczby zer. n Przykad 1.8 pomnoone przez z daje wynik
%22%
1 1
1 0
0 0 0
1 1 0
Je eli liczba jest podzielna przez 2, to ma w postaci binarnej zero na ko ncu, a je eli dzieli z z si przez -ta pot g dwjki, to ma na koncu zer. Podzielenie liczby przez 2 oznacza e e e skrelenie w jej postaci binarnej jednego zera z konca. s Przykad 1.9 podzielone przez 2 daje
%9%9
'
99%
1 1 31
%
' RP Q
22
99
Podobnie mo emy post powa przy zamianie w odwrotna stron , z systemu dziesi tnego z e c e e na dwjkowy. Najpierw korzystamy ze wzoru (1.1):
! 0 ' C 7 0E '
nast pnie przedstawiamy cyfry i podstaw systemu 10 w postaci dwjkowej i wykonujee e my wszystkie dziaania w systemie dwjkowym:
1 $
Ten sposb zamiany liczb z postaci dziesi tnej na dwjkowa jest analogiczny do sposobu, e w jaki wy ej zamienialimy liczby z postaci dwjkowej na dziesi tna. Byby to naturalny z s e sposb dla kogo, kto swobodnie liczy w systemie dwjkowym. Sposb ten ma t wad , s e e ze wolno dziaa. Zobaczymy na przykadach dwa szybsze algorytmy zamiany postaci liczby z dziesi tnej na dwjkowa. e We my liczb 178. Pierwszy sposb polega na tym, ze wyszukujemy najwi ksza poz e e t g liczby 2, ktra jeszcze jest mniejsza od naszej liczby (w przykadzie e e ), nast pnie odejmujemy t pot g od naszej liczby i z r nica post pujemy tak samo. Na e e e e z e ko cu mamy liczb w postaci sumy pot g dwjki. W naszym przykadzie wyglada to tak: n e e
4
4 1 4 D 9 4 (7 4 4 7 4 C 4 %# #""
Drugi sposb polega na kolejnym dzieleniu liczby w sposb cakowity przez 2 i zapami tywaniu reszt z dzielenia. Reszty te zapisane w odwrotnej kolejnoci tworza zapis e s binarny liczby. Na przykad, we my znowu liczb 178. W poni szej tabeli przedstawiono z e z kolejne ilorazy i reszty. liczba 178 89 44 22 11 5 2 1 iloraz 89 44 22 11 5 2 1 0 reszta 0 1 0 0 1 1 0 1
C 7
@
D 4 S%7
4 S
92
@ 08 '
C 7
D %
92%
4 7 (
99%
10
Rozdzia 1. Arytmetyka
i tak dalej. Ostatni sposb mo na atwo uoglni na algorytm zamiany liczb z systemu dziesi tz c e nego na system z inna baza . Nale y tylko dzieli przez . Je eli chcemy, na przykad, z c z przedstawi liczb c e w systemie trjkowym, to dzielimy ja kolejno przez 3 i spisujemy reszty z dzielenia: liczba 60 20 6 2 W wyniku otrzymamy: iloraz 20 6 2 0 .
reszta 0 2 0 2
Podobnie w systemie z podstaw , liczba ma cyfr wtedy i tylko wtedy gdy a , czyli:
0'
H H H %H
! $ Q 4
0 '
%
%4 0 8' D 4
$ V
UT
'
oraz iloraz:
! ' Q 4
' V
U 4 U
0 V
UT
P I
05 '
' Q
0 '
D
0 '
11
Korzystaj c z tego faktu mo emy ustala przybli on liczb cyfr potrzebn do zapisu a z c z a e a liczb. e Wniosek 1.12 Liczba, posiadaj ca cyfr w systemie dziesi tnym ma okoo a bitw w systemie dwjkowym, a liczba maj ca bitw w postaci dwjkowej ma a okoo cyfr w postaci dziesi tnej. e Dowd: Je eli liczba ma w postaci dziesi tnej cyfr, to z e . W postaci dwjkowej ma okoo bitw, a , poniewa z . Podobnie, je eli liczba ma w postaci dwjkowej bitw, to w postaci dziesi tnej z e ma okoo .
7 " 9
1.8 Du e liczby z
Aby si zorientowa jak du e mog by liczby przedstawione za pomoc systemu dziesi tnego e c z a c a e lub dwjkowego przypatrzmy si poni szej tabeli: e z Liczba sekund w roku Wiek ukadu sonecznego w latach Wiek ukadu sonecznego w sekundach Liczba cykli w roku (100 MHz) Liczba ci gw 64 bitowych a Liczba ci gw 128 bitowych a Liczba ci gw 256 bitowych a Liczba atomw na Ziemi Liczba atomw w naszej galaktyce
' ' ' ' 0'
Dane do tabeli zaczerpnito z ksi zki A. Menezes, P. van Oorschot and S. Vanstone, e a Handbook of Applied Cryptography. oraz z ksi zki B. Schneier, Applied Cryptography. a Tabela ta pozwala oceni niektre algorytmy. c Przykad 1.13 Rozwamy prosty algorytm sprawdzaj cy, czy liczba naturalna jest pierwz a sza. Algorytm ten dzieli przez kolejne liczby od 2 do . Jeeli ma 120 bitw, to z potrzeba dziele . Jeeli zaoymy, ze komputer potra wykona n z z c milionw dziele w ci gu sekundy i n a w ci gu roku, to b dzie liczy okoo 300 lat. W rozdziale a e o teorii liczb b dziemy mwi o szybszych algorytmach sprawdzaj cych pierwszoc liczb e c a s maj cych po kilkaset bitw. a Przykad 1.14 Przypucmy, ze chcemy zaprojektowa tablic , ktra dla kadego ci gu s c e z a zoongo z omiu liter przechowuje jak s informacj (jeden bajt). W przypadku 26 liter z s a e takich ci gw mamy a zatem potrzebowalibymy wi cej ni 100 gigabajtw pamici. s e z e
! 8' ' %
! "
$ 0 '
% # $
$ 4 4 1 $' 4 @ 97 1 4 % 1 7 7 S
&
$ 0'
(w przyblieniu z
' @' 1# 90
$ G3 7
$ 5 4 0 G876$ 23 1#
7 G S %(27 9 D H H H 4 1
'
)7
D 4
0'
$
# ('
4
0 '
0'
0 '4
7 G
7
12
Rozdzia 1. Arytmetyka
1.9 Uamki
Przypomnijmy najpierw krtko, jak przedstawia si uamek w systemie dziesi tnym. Na e e przykad, oznacza:
@ 7 1 4 9 $ $ U U I I I I
U ylimy kropki do oddzielania cz sci cakowitej od uamkowej. Jest to cz sto u ywany z s e e z w informatyce sposb, stosowany mi dzy innymi w j zyku Pascal. Oglniej, zapis: e e
P I 1 1 31 ' I 1 9
Podobnie mo emy zapisywa uamki w systemie dwjkowym. Jedyna r nica polega na z c z tym, ze w systemie binarnym podstawa pot g jest dwjka i ze u ywamy tylko dwch cyfr, e z 0 i 1. Tak wi c w systemie dwjkowym zapis: e
P I 1 1 31 ' I 1 9
Przykad 1.15
1 0'
W poni szej tabeli przedstawiono kilka pierwszych ujemnych pot g liczby 2 w systemie z e dwjkowym i dziesi tnym. e
0' C 9 1 C4 9 1 9%% 9 1 $ 2% 9 1 $ 9% 9 1 $ 2 9 1 $ 1 9 9 9 1
%D 9 $ 9 2 C 4 1 1
0'
0'
C % 9 4 D 1 % 9 C 4 1
0'
A$
2 C 1
4 Q
' V
lub inaczej:
UT
! P Q 4
1 1 31
&$ Q 4
9 1
' Q 4
Q G4 G4 Q Q 4 G4 Q $ G4 Q ' G4 Q
'
oznacza liczb : e
! P Q
1 1 31
$ Q
' V
' Q
'
0'
oznacza liczb : e
1 Q @
&$ Q 7
)' Q 4
C 2 $ 9 1 1
13
W j zyku Pascal liczby w systemie szesnastkowym poprzedza si znakiem dolara , a w e e j zyku znakami . e
D S
Dzi ki temu, ze 16 jest pot ga dwjki, prosta jest zamiana postaci liczby z systemu dwje e kowego na szesnastkowy, i na odwrt. Przy zamianie z systemu szesnastkowego na dwjkowy wystarczy zamienia kolejne cyfry przedstawienia na grupy odpowiednich czterech c bitw wedug powy szej tabeli. z
Przy zamianie z postaci dwjkowej na posta szesnastkowa post pujemy odwrotnie. Zac e st pujemy grupy po cztery bity pojedynczymi cyframi. e
Przykad 1.18
Przykad 1.17 Liczba, ktra w systemie szesnastkowym wyglada tak dwjkowym ma posta c .
2 2 9
9H
w systemie
14
Rozdzia 1. Arytmetyka
Je eli liczba cyfr w postaci dwjkowej nie dzieli si przez 4, to uzupeniamy ja zerami na z e poczatku.
W ten sposb mo emy u ywa zapisu szesnastkowego do zwi zego przedstawiania duz z c e gich ciagw bitw.
1.11.1 Integer
Zmienne typu integer przechowywane sa zwykle w dwch bajtach. Jeden bajt (ang. by te) zawiera osiem bitw, tak wi c wartoc zmiennej typu integer przechowywana jest w e s szesnastu bitach. Pierwszy bit oznacza znak. Je eli jest on zerem, to liczba jest dodatnia, z je eli jedynka, to ujemna. z Je eli liczba jest dodatnia, to pozostae pi tnacie bitw stanowi binarny zapis tej z e s liczby. Na przykad liczba jest przechowywana jako:
1 % % %% % C
Najwi ksza liczb dodatnia, jaka mo na przechowa w zmiennej typu integer, jest: e e z c
! % % %% 2
Liczby ujemne sa przechowywane w tak zwanym systemie uzupenieniowym. Liczba ujemna o wartoci bezwzgl dnej jest przedstawiana jako liczba: s e
jako:
Przykad 1.19
4 D % D
G"%(7 D 4
'
4
' 4
1.11. Reprezentacja liczb w komputerze czyli jedynka i pi tnacie zer, ktra koduje liczb : e s e
1 08 '
15
Cz sto nie ma zadnego zabezpieczenia przed przekroczeniem maksymalnego lub minie malnego zakresu liczb typu integer. Je eli, na przykad, do liczby z , ktra jest przechowywana jako: dodamy jedynk , to otrzymamy: e
! 2% % % % D 4 (%%7 ! %% % % %9
1.11.2 Real
Liczby typu real sa zapisywane w dwch notacjach: staopozycyjnej,
zmiennopozycyjnej.
czyli notacja dziesi tna. Zwr my uwag , ze kropka oddziela cz sc cakowita liczby od e c e e cz sci uamkowej. e W notacji zmiennopozycyjnej liczba przedstawiona jest w postaci:
!
W poni szej tabeli mamy kilka liczb w postaci stao- i zmiennopozycyjnej. z 4837.92 0.034
9 1 4 4 1 4 1 @ 27 7 4 H 7 1 # ("G 2@
Sposb przechowywania wartoci zmiennych typu real jest skomplikowany i nie b dzie s e przedstawiony szczegowo.
1 3%
gdzie
jest mantysa, liczba w postaci dziesi tnej z przedziau e lub , a , zwana cecha, jest liczba cakowita. Zapis oznacza liczb : e
%(7 D 4
' 4 D 4 %"%(7
16
Rozdzia 1. Arytmetyka
do , ,
word, zawiera liczby cakowite z przedziau od do longint, zawiera liczby cakowite z przedziau od
do
Elementy typu byte i shortint przechowywane sa w jednym bajcie (osiem bitw) pa mi ci, typu word w dwch bajtach, a typu longint w czterech bajtach pami ci. e e Liczby typu shortint i longint moga by dodatnie lub ujemne i sa zapami tywane w po c e staci uzupenieniowej z pierwszym bitem oznaczajacym znak (podobnie jak liczby typu integer). Elementy typu byte i word moga by tylko dodatnie i sa przechowywane w po c staci dwjkowej.
oraz zmienne typw liczbowych (np. integer lub real). Wyra enia mo na tak e budowa c z z z za pomoca operatorw arytmetycznych i nawiasw. Je eli U oraz W sa dwoma wyra enia z z mi arytmetycznymi, to wyra eniami arytmetycznymi sa tak e: z z U+W, U-W, U*W, U/W, (U), U div V, U mod V. Gwiazdka reprezentuje tutaj znak mno enia, a operacje div oraz mod to iloraz i reszta z z dzielenia cakowitoliczbowego (sa one opisane dokadnie w rozdziale o teorii liczb). Na przykad, wyra eniami arytmetycznymi sa: z -(2-3)/2+7*4, (2-3)/(3*2), 7 div 2, 7 mod 2. Je eli x oraz y sa zmiennymi liczbowymi, to wyra eniami arytmetycznymi sa tak e: z z z 2*x, x*x-2/y. Dla danego wyra enia mo emy obliczy jego wartoc. Robi si to wedug zwykych regu z z c s e znanych ze szkoy. Najpierw oblicza si wyra enia w nawiasach, potem mno enie i dziee z z lenie (od lewej do prawej), a na koncu dodawanie i odejmowanie (od lewej do prawej).
@ D 7 @ @ G(6364
@ D 7 @ @ (%%"G64
4 (
64 97 1
C 7 C C %%%D
4 C C 4
! C 1 7 9(@ 94
! 7 4 1 9 9
! 7 4 2
! @ 7 24
17
Najpierw uprocmy nieco t gr . Za my, ze mo emy zada tylko cztery pytania i ze s e e z z c odgadujemy liczb naturalna ze zbioru: e
1 C ! @ ! 7 ! 4 ! ! ! H ! ! ! D ! C ! @ ! 7 ! 4 ! ! 2R9366989E652E652E9E98%39
! ! ! ! ! ! ! 93%3%6392332393239% ! ! ! ! ! ! ! 93%3%639%6E232E22E9%2 ! ! ! ! ! ! ! 93%3%93993%6E232E%9%E99% ! ! ! ! ! ! ! 63%9393%6E%62E%9%E2%
Dlaczego te cztery pytania wystarcza? Sprawa stanie si jasna, je eli przedstawimy liczby e z w postaci binarnej. Ka da za pomoca czterech bitw (z zerami na poczatku). Wtedy nasz z zbir wyglada tak:
1 ! ! ! ! ! ! ! ( %369393%3%6929%9% ! ! ! ! ! ! ! ! 2E69899E932E%689289%89%
Zauwa my, ze zbir z zawiera wszystkie liczby z pierwszym bitem rwnym jedynce, w sa wszystkie liczby z drugim bitem rwnym jedynce, i tak dalej. Tak wi c nasze e pytania sa w rzeczywistoci pytaniami o kolejne bity odgadywanej liczby. Na przykad w s pierwszym pytaniu pytamy, czy pierwszy bit odgadywanej liczby jest jedynka. Ale mo na do tych pyta podejc inaczej. Najpierw dzielimy zbir na poowy: na z n s liczby mniejsze od omiu i na liczby wi ksze lub rwne omiu, i pytamy, do ktrej poowy s e s nale y odgadywana liczba (dokadniej pytamy, czy liczba nale y do grnej poowy). Po z z uzyskaniu odpowiedzi mamy dwa razy w zszy przedzia poszukiwa n. Przypucmy, ze e s odgadywana liczba jest 11. W drugim etapie dzielimy przedzia
%3232E2 ! ! H !
i dolna:
23939 C ! @ ! 7 ! 4
na poowy, grna:
93963%3232E2 C ! @ ! 7 ! 4 ! ! ! H !
Czy
nale y do zbioru z
'
Czy
nale y do zbioru z
Czy
nale y do zbioru z
'
Czy
nale y do zbioru z
Czy
nale y do zbioru z
9%398GF682E% C ! 7 ! ! H ! ! C ! 7 !
Czy
nale y do zbioru z
RB33%9GF9E2E94 C ! @ ! ! ! ! D ! 7 !
Czy
nale y do zbioru z
RB3326GF9E98B@ C ! @ ! 7 ! 4 ! ! D ! C !
'
Czy liczba
nale y do zbioru z
R2R9363%329E2 C ! @ ! 7 ! 4 ! ! ! H !
? ?
18
Rozdzia 1. Arytmetyka
i pytamy, do ktrej poowy nale y szukana liczba. Po drugiej odpowiedzi przedzia poz szukiwa jest ju cztery razy krtszy. Po dwch kolejnych pytaniach przedzia zaw za si n z e e do jednej liczby. Drugi sposb jest cakowicie rwnowa ny pierwszemu, tutaj te pytamy z z o kolejne bity i otrzymujemy takie same odpowiedzi. Potrzeba cztery razy kolejno dzieli zbir na poowy, aby z poczatkowej dugoci c s 16 przejc na ko cu do dugoci 1. A ile trzeba podziaw, je eli na poczatku mamy s n s z elementw? Po pierwszym podziale nasz zbir b dzie mia dugoc e s , po drugim , a po -tym . Jak wida , potrzeba c kolejnych podziaw, aby dojc do 1. Tak wi c je eli mamy do dyspozycji s e z pytan, to mo emy odnale c jedna z z spord s liczb cakowitych z przedziau od do . Metod poszukiwa binarnych mo na zastosowa do stwierdzenia, czy jaka liczba e n z c s naturalna jest kwadratem (lub jaka inna ustalona pot ga) innej liczby naturalnej. Inas e czej, czy istnieje liczba naturalna taka, ze , lub oglniej, czy istnieje liczba naturalna taka, ze . Poni ej przedstawiamy taki algorytm. Algorytm ten u ywa dwoch dodatkowych zmienz z s z nych i , wartoci tych zmiennych przybli aja pierwiastek stopnia z od dou i od gry. W trakcie wykonywania algorytmy przybli eniaa te sa coraz lepsze z
Dane wyjciowe: pierwiastek stopnia z , (liczba naturalna s informacja, ze nie ma pierwiastka stopnia .
, taka ze
Powtarzaj a do skutku: z
je eli z
, to koniec, , to , to
jest pot ga . e
je eli z
je eli z
1.14 Zadania
1. Zwi ksz o jeden nast pujace liczby zapisane w postaci dwjkowej: a) e e b) . 2. Porwnaj nast pujace pary liczb: a) e
% 9
b)
9%%
%9%9
%
2%
2% 2%
je eli z
, to koniec,
nie ma pierwiastka.
. ,
Algorytm sprawdzajacy, czy dana liczba naturalna liczby naturalnej. Dane wejciowe: liczba naturalna . s
' 4 Q
C C @ (&%
$
0 E$ 4 4
Q 4
$
%%
9
$ 4 Q
0 A$ 4
jakiej s
) lub
1.15. Problem: Waga 4. Napisz dokadny algorytm odejmowania dwch liczb w postaci dwjkowej.
19
5. Liczby 81, 126 przedstaw w postaci dwjkowej. Jak b da one reprezentowane w e komputerze jako stae typu integer (byte, word)? 6. Nast pujace liczby przedstaw w postaci dwjkowej: 6.75, 5.625, $B1, $FF. e 7. Nast pujace liczby przedstaw w postaci trjkowej: 80, 120. e 8. Nast pujace liczby w postaci dwjkowej, 10001101, 100101, przedstaw w postaci: e a) dziesi tnej, b) szesnastkowej. e 9. Opisz algorytm zamiany uamka z postaci dziesi tnej na posta dwjkowa. e c 10. Ile maksymalnie pyta z odpowiedziami TAK/NIE trzeba zada , aby odgadna liczn c c b z przedziau od 0 do 100 000? e 11. Zastosuj algorytm wyznaczania pierwiastkw do znalezienia pierwiastka stopnia 3 z liczby 512.
r nych ci zarw. z e
7
(b) Je eli nominay odwa nikw sa kolejnymi pot gami trjki, to znaczy z z e dla , to za ich pomoca mo na zwa y ka dy (cakowity) ci zar o nominale z z c z e od 1 do . Wskazwki: (a) Poniewa ka dy odwa nik mo e si znajdowa na prawej lub lewej szalce, lub na stole, z z z z e c to mamy r nych poo e odwa nikw. Wrd tych poo e jest takie, gdzie wszystkie z z n z s z n odwa niki le a na stole (wtedy wa ymy zerowy ci zar). Ponadto je eli odwa niki le a z z z e z z z na szalkach i odwa aja ci zar , to zamieniwszy poo enia odwa nikw na szalkach z e z z (odwa niki z lewej przekadamy na prawa szalk , i na odwrt), b dziemy odwa a c ci zar z e e z e .
C 4
4 # 4 7
4
4
20
w (1.5)
gdzie . Aby przedstawi ci zar c e w postaci (1.5), najpierw przedstawiamy liczb e w systemie trjkowym: , a nast pnie od ka dej cyfry odejmujemy jedynk : e z e .
0 '
331 1 1
' Q
7 U
0 V 4
32E% ! !
7
U I
Rozdzia 1
Grafy (nieskierowane)
Denicja 1.1 Graf (nieskierowany) jest to para skadaj ca si ze sko a e n czonego zbioru wierzchokw oraz ze zbioru kraw dzi e , gdzie kraw dzie to pary e wierzchokw.
O krawdzi e mwimy, ze czy wierzchoki i , a o wierzchokach i , a ze s ko cami kraw dzi . Stopie wierzchoka , oznaczany przez a n e n , jest to liczba kraw dzi wychodzcych z . e a Graf cz sto przedstawiamy na rysunku jako zbir punktw (lub kek) po czonych e a odcinkami (lub ukami). Rysunek 1.1: Przykad grafu
ze zbiorem wierzchokw .
% "
'e' T S dA' S B dA' S G db' S R cb' T R cb' R Q c!' T P dA' B P cb' G T P ScbB ' Q G P R !a P U ' Q ` U #Y1XW8V U U U
IH% G R T
Dowd: Je eli policzymy wszystkie kraw dzie wychodzce ze wszystkich wierzchokw z e a grafu, to z jednej strony mamy sum e , a z drugiej poniewa ka da z z krawdz e jest liczona dwa razy, raz jak liczymy krawdzie wychodzce z i e a drugi raz jak liczymy kraw dzie wychodzce z . e a
e a)
e b)
Graf jest dwudzielny, je eli zbir jego wierzchokw mo na rozbi na z z c dwie cz sci e , , tak, ze ka da krawd z e z ma konce w obu zbiorach i . Peny graf dwudzielny ma zbir wierzchokw rozbity na dwa podzbiory: i , a krawdzie cz ka dy e a a z wierzchoek z z ka dym wierzchokiem z , czyli z .
G E
G H G E PIF
C 7 @ DB A
7 9
7 8 6 ($
' ($
) 0
Graf peny o wierzchokach, oznaczany przez , jest to graf z w ktrym ka de dwa wierzchoki po czone s krawdzi . z a a e a
% &$ #
Przykad 1.5 Grafy przedstawione na rysunkach 1.5 i 1.6 s podgrafami grafu z rysuna ku 1.1 . Graf z rysuku 1.5 zawiera szec wierzchokw s i trzy kraw dzie e . Graf z rysuku 1.6 zawiera siedem wierzchokw i pi c kraw dzi e e .
" !
4 5
3
1 2
Graf oraz
, je eli z
wierzchokami,
G Q "
F
S G RQ T P B P G P Q P Y '!' c!' dA' dA' cb' cb' !# F b ' !' T R dA' R Q dA' B P b`Y # ! Y F
) ) ) e) (
T R
% % G
% G
F S P
' (&%$#" B
'
G Q
Graf z rysunku 1.4a jest izomorczny z grafem . Izomorzmem z jest funkcja okrelona nast puj co: s e a , , , . Graf z rysunku 1.4b nie jest izomorczny z grafami i . Graf zawiera wierzchoek stopnia jeden, a w grae takiego wierzchoka nie ma. Rysunek 1.3: Rysunki a) i b) przedstawiaj ten sam graf a a b a d
c a)
b b)
c a)
c b)
Je eli mamy izomorzm grafu z powiedzie , ze jest takim samym grafem co c chokw.
s izomorczne, to: a
F a F a F
'
izomorczny z
. b) Graf
nieizomorczny z b
'
'
G
na
P Y R Q Q R P
1FA
' 2 (&%$#"
2 ' % H" F
6 (a) (b)
Dowd: (a) wynika bezporednio z denicji. s (b) Niech b dzie izomorzmem z e na . Ale okrela tak e wzajemn jednoznaczs z a noc pomidzy zbiorem krawdzi s e e . (c) Udowodnimy, ze je eli z jest stopnia , to i jest stopnia . Wi c e odwzorowuje wierzchoki stopnia na wierzchoki stopnia . Niech , ... , b d wszystkimi wierzchokami z e a po czonymi krawdziami z a e . Wtedy , ... , s wszystkimi wierzchokami z a po czonymi kraw dziami a e . z
z Graf jest spjny, je eli dla ka dych dwch wierzchokw , z z istnieje scie ka cz ca i . Skadowa spjnoci to maksymalny spjny podgraf grafu. Zauwa my, ze w a a s z zbiorze wierzchokw grafu istnieje relacja osi galnoci: i s w relacji je eli a s a z lub jest osi galny z . Relacja ta jest relacj rwnowa noci i dzieli zbir wierzchokw a a z s grafu na skadowe spjnoci. s Przykad 1.9 Graf z rysunku 1.1 jest spjny, zawiera jedn skadow spjnoci (cay a a s graf). Graf z rysunku 1.5 nie jest spjny i zawiera trzy skadowe spjnoci: s ze zbiorem wierzchokw ze zbiorem wierzchokw z jednym wierzchokiem
" % % a " % " % " 42 % " T T R Q P G P B P RQ P G S B P P G S B P &ccc# U % % % %@@@ %&#c#c1bF % @ @ @ U % % % % U% % % % @ @ @ % Fc#cc U &A% % U % 2 &' &% U D% &%#c@c@#@ F%b% U
i ,
, to istnieje te droga z
% 7 " % "
'B P
) V ) !) ) ) V ) !) )
% "
1.3. Drzewa
Dowd: Niech , b dzie najkrtsz drog cz c i . Droga e a e a a a ta jest prosta. Przypucmy bowiem, ze s , dla jakiego s ; mielibymy wtedy s , cz c i , wbrew zao eniu. a a a z krtsz drog a e Dowolne dwa wierzchoki w cyklu mog by po czone dwoma drogami prostymi. a c a Na przykad w cyklu na rysunku 1.1, wierzchoki i czy droga a oraz droga . Tak, wi c, je eli w grae s cykle, to istniej pary wierzchokow, ktre s e z a a a po czone dwoma drogami prostymi. Ale i na odwrt. a Lemat 1.11 Jeeli w grae istniej dwa wierzchoki i , z a dwoma rnymi drogami prostymi, to w grae istnieje cykl. z
7 9 7
, , b d dwoma ro e a z Dowd: Niech nymi prostymi drogami cz cymi i . Mo emy zao y , ze a a z z c (w przeciwnym przypadku mo emy usun c wsplny pocztek obu drg). Niech z a a b dzie pierwe szym wierzchokiem po , ktry wyst puje w drodze e , i niech . Wierzchoki nie wyst puj w drodze e a i droga tworzy cykl (w drodze tej wyst puj conajmniej trzy r ne e a z wierzchoki , oraz ). Z tego lematu wynika, ze graf jest acykliczny (nie ma cykli) wtedy i tylko wtedy, gdy ka de dwa wierzchoki grafu mo na po czy co najwy ej jedn drog prost . z z a c z a a a
C D7 @ @ A @ 7 6 7 9 6 7 9 7 B 7 B 7 7 7 @ 7 B 7 9 C 9 C 7 7
1.3 Drzewa
Denicja 1.12 Spjny i acykliczny (bez cykli) graf to drzewo. Z rozwa a z poprzedniego podrozdziau wynika: z n Lemat 1.13 Graf jest drzewem wtedy i tylko wtedy, gdy kade dwa jego wierzchoki moz z na po czy dokadnie jedn prost drog . a c a a a
U U % % % U ccc# U ! @@@ F%dc@#@c@A% #c@#@c@ b U &%#c@#@c@ U % % #c@c@#@ U !U % % U U 7 b% % " %C3 dc@#@c@e " C F%dc@#@c@eb&% C " U % U % % 7 " % "
RQ P
% "
R T
Q
R P
7 B
% "
Q
@ A C @
Twierdzenie 1.14 Nast puj ce trzy warunki s rwnowane: e a a z (a) Graf (b) (c)
jest drzewem.
jest acykliczny, ale dodanie dowolnej kraw dzi psuje acyklicznoc; dodana kraw d e s e z wraz z innymi kraw dziami grafu tworzy cykl. e jest spjny, ale usuni cie dowolnej kraw dzi e e kraw dzi e nie ma drogi cz cej i . a a
Poniewa z jest drzewem, wi c jest acykliczny, przypucmy, ze dodanie e s krawdzi e nie dodaje cyklu w grae, ale to oznacza, ze w grae nie ma drogi cz cej i . W przeciwnym przypadku mielibymy dwie drogi proste z do : jedna, a a s ktra bya w drzewie i druga zo ona tylko z dodanej kraw dzi, a wi c na podstawie z e e lematu 1.11 dodanie krawdzi zamykaoby cykl. Mamy sprzecznoc, bo jako drzewo e s jest spjny. Trzeba pokaza , ze jest spjny. Przypucmy, ze nie jest, i ze nie ma drogi c s cz cej wierzchoki i . Ale wtedy dodanie kraw dzi a a e nie dodaje cyklu (gdyby taki cykl powsta, to po usuni ciu krawdzi e e z cyklu mielibymy drog prost s e a acz c i ). a a jako drzewo jest spjny. Przypucmy, ze odj cie kraw dzi nie psuje spjs e e noci. To znaczy, ze w grae istniay dwie drogi proste cz ce i , czyli na podstawie s a a Lematu 1.11 w grae jest cykl; sprzecznoc. s Trzeba pokaza , ze w nie ma cyklu. Gdyby w istnia cykl, to usuni cie c e dowolnej krawdzi tego cyklu nie psuje spjnoci; sprzecznoc. e s s
Dowd: Przez indukcj ze wzgl du na liczb wierzchokw. Je eli drzewo ma jeden e e e z wierzchoek, to nie ma zadnych kraw dzi. e
wierzchokami mamy
kraw dzi. e
% "
% "
' 5F%ED"
' 5F%ED"
% "
Dowd:
R T ' (&%$#"
% "
Q S G B
' (&%$#"
P R P % " P R P Q
Za my teraz, ze twierdzenie zachodzi dla ka dego drzewa maj cego mniej ni z z a z wierzchokw i niech drzewo ma wierzchokw. W istnieje wierzchoek stopnia . Rzeczywicie, we my drog prost w o maksymalnej dugoci s z e a s . Wierzchoek jest w grae po czony tylko z , bo inaczej mielibymy cykl lub du sz a s z a drog prost . Usu my teraz z grafu wierzchoek i prowadzc do niego kraw d . e a n a a e z wierzchokw i z zao enia indukcyjz Otrzymany graf jest spjny i acykliczny ma nego kraw dzi, czyli w grae byo e krawdzi. e
#
b dzie grafem z e
jest drzewem.
E
Dowd: Na podstawie lematu 1.15 z (a) wynika (b) i (c). jest acykliczny, przypucmy, ze nie jest drzewem. Wtedy na podstawie s twierdzenia 1.14 mo na do niego doda jak s krawd nie psuj c acyklicznoci. Je ez c a e z a s z li tak powstay graf nie jest drzewem, to dodajemy kolejne krawdzie, a dojdziemy do e z acyklicznego grafu, w ktrym ju zadnej kraw dzi nie mo na doda bez dodania cyklu. z e z c Tak powstay graf jest drzewem, ma wierzchokw i wi cej ni e z kraw dzi. Doszlie smy wi c do sprzecznoci z lematem 1.15. e s jest spjny, przypucmy, ze nie jest drzewem. Wtedy na podstawie twiers dzenia 1.14 mo na z niego usun c jak s kraw d nie psuj c spjnoci. Je eli tak powstay z a a e z a s z graf nie jest drzewem, to usuwamy kolejne kraw dzie, a dojdziemy do spjnego grafu, e z z ktrego ju zadnej kraw dzi nie mo na usun c bez popsucia spjnoci. Tak powstay z e z a s graf jest drzewem, ma wierzchokw i mniej ni z kraw dzi. Doszlimy wi c do e s e sprzecznoci z lematem 1.15. s Z powy szego dowodu wynika, ze spjny graf z wierzchokami nie mo e mie c z z mniej ni z kraw dzi, czyli drzewo to spjny graf z minimaln liczb kraw dzi. e a a e Podobnie, je eli graf ma wierzchokw i jest acykliczny, to nie mo e mie wi cej ni z z c e z krawdzi, czyli drzewa to grafy acykliczne z maksymaln liczb krawdzi. e a a e Przykad 1.17 W drzewie z rysunku 1.6 nie mona usun c zadnej kraw dzi bez rospjz a e nienia grafu. Nie mona te doda zadnej kraw dzi tak, aby nie powsta cykl. W grae z z z c e rysunku 1.1 mona usun c kraw d z a e z i graf nadal b dzie spjny. Do grafu z rysune ku 1.5 mona doda kraw d z c e z i nie powstanie zaden cykl.
# # E E
'Q P
'Q P
kraw dzi. e
kraw dzi. e
F%c#@c@c@! &% U % %
U A%
P Q
P R
IH% G
E
10
odwiedzamy dzony,
dopki STOS nie jest pusty, powtarzamy: je eli jest wierzchokiem na wierzchu STOSU, to sprawdzamy, czy istnieje z a e a wierzchoek , ktry jest po czony kraw dzi z wierzchokiem i nie by jeszcze odwiedzony, je eli takie si znajdzie, to odwiedzamy , wkadamy go na wierzch STOz e SU i zaznaczamy jako wierzchoek odwiedzony, je eli takiego nie ma, to zdejmujemy z choka b d cego na STOSIE pod spodem. e a
Przykad 1.18 Zastosujmy algorytm przeszukiwania w g b do grafu z rysunku 1.7. Poa nisza tabela pokazuje jaki wierzchoek jest odwiedzany i jaka jest zawartoc stosu po z s kadej kolejnej iteracji p tli algorytmu (przeszukanie zaczynamy od w za ). Przyj to z e e e zasad , ze jeeli jest kilka wierzchokw do wyboru, to wybieramy ten, ktrego nazwa stoi e z wczeniej w alfabecie. s
2% %
"
0F a Q B "
"
% "
1.4. Przeszukiwanie grafw Wierzchoek a b c d c g f g c b e b a STOS a ab abc abcd abc abcg abcgf abcg abc ab abe ab a
11
W metodzie przeszukiwania w g b po ka dym kroku algorytmu wierzchoki znajduj ce a z a si na stosie tworz drog od wierzchoka wejciowego do wierzchoka aktualnie odwiee a e s dzanego. Udowodnimy teraz, ze algorytm odwiedzi wszystkie wierzchoki osi galne z wierz a choka pocz tkowego . Przypucmy bowiem, ze w grae istnieje wierzchoek osi galny a s a z , ale nie odwiedzony przez algorytm. Skoro jest osi galny z , to istnieje droga a
7
Poniewa by odwiedzony, a nie, to na tej drodze mamy dwa s siednie wierzchoki z a oraz takie, ze by odwiedzony, a nie. W pewnym momencie algorytmu wierzchoek by na stosie, a potem zosta z niego zdj ty, poniewa algorytm ko nczy e z prac dopiero po zdj ciu wszystkich wierzchokw ze stosu. Zastanwmy si teraz nad e e e c e krokiem algorytmu, w ktrym jest zdejmowany ze stosu. Ale nie mg by zdj ty ze stosu, poniewa istnieje jego s siad z a , ktry nie by odwiedzony. Aby udowodni , ze algorytm zawsze si zatrzyma wystarczy zauwa y , ze w ka dej c e z c z iteracji p tli albo jaki wierzchoek jest wkadany na stos, albo jaki jest zdejmowany ze e s s stosu. Z drugiej strony ka dy wierzchoek jest tylko raz wkadany na stos (bo wkadane z s tylko wierzchoki nieodwiedzane). Mamy wi c nie wi cej ni a e e z iteracji p tli, e a poniewa w ka dej p tli algorytm wykonuje tylko kilka krokw, wi c czas dziaania z z e e algorytmu jest rz du e .
dopki KOLEJKA nie jest pusta, powtarzamy: bierzemy jeden wierzchoek z pocz tku KOLEJKI, a
2%
F
) ( )
@ A
U% % @ F%dc@#@c@eb&% 9 % U %
7 @ A
U%
@ A
V
@ A
U% %
@
12
Rozdzia 1. Grafy (nieskierowane) odwiedzamy wszystkie wierzchoki, ktre nie byy jeszcze odwiedzane, a s a po czone kraw dzi z wierzchokiem , wkadamy je na koniec kolejki i zaznaa e a czamy jako odwiedzone.
Przykad 1.19 Poniej przedstawiono odwiedzane wierzchoki oraz zawartoc kolejki po z s kadej kolejnej iteracji p tli algorytmu przeszukiwania wszerz dla grafu przedstawionego z e na rysunku 1.7 (przeszukanie zaczynamy od w za ): e wierzchoki a b,c,d,e f g KOLEJKA a bcde cdef defg, efg, fg, g,
4
W metodzie przeszukiwania wszerz wierzchoki s przeszukiwane w kolejnoci od wierza s chokw b d cych najbli ej wierzchoka pocztkowego do wierzchokw b d cych dalej. e a z a e a
. .
lsp:=0;
Powtarzaj dopki s jeszcze nieodwiedzone wierzchoki w grae: a We jeden nieodwiedzony jeszcze wierzchoek ; lsp:=lsp+1; z przeszukaj (za pomoc algorytmu przeszukiwania grafu w g b) wszystkie a a wierzchoki osi galne z i zaznacz je jako odwiedzone. a
Denicja 1.20 Drzewo spinaj ce (rozpinaj ce) grafu a a speniaj ce warunek a (zauwamy, ze z chokw co ).
Przykad 1.21 Drzewo z rysunku 1.6 jest drzewem spinaj cym dla grafu z rysunku 1.1. a
0
0F %
E F
13
Twierdzenie 1.22 Kady graf spjny zawiera jako podgraf drzewo spinaj ce. z a Jako dowd przedstawimy algorytmy konstruowania drzewa spinaj cego. W tym celu a lekko przerobimy algorytm przeszukiwania grafw w g b. a Algorytm konstruowania drzewa spinaj cego przy przeszukiwania grafu w g b. a a oraz wierzchoek pocz tkowy a ; Dane wejciowe: graf s Dane wyjciowe: drzewo spinaj ce s a . na pocztku drzewo spinaj ce nie zawiera zadnych kraw dzi: a a e odwiedzamy dzony, i wkadamy go na STOS; zaznaczamy
4
dopki STOS nie jest pusty, powtarzamy: je eli jest wierzchokiem na wierzchu STOSU, to sprawdzamy, czy istnieje z wierzchoek , ktry jest po czony kraw dzi z wierzchokiem i nie by jeszcze a e a odwiedzony, je eli takie si znajdzie, to odwiedzamy , wkadamy go na wierzch STOz e SU i zaznaczamy jako wierzchoek odwiedzony, krawd e z dodajemy do drzewa spinaj cego: a je eli takiego nie ma, to zdejmujemy z choka b d cego pod spodem. e a
Przykad 1.23 Rysunek 1.8 przedstawia drzewo spinaj ce utworzone przez powyszy ala z gorytm dla grafu z rysunku 1.7
2 %
' E&"#%
"
F
Faa
"
"
"
14
Poka emy teraz, ze algorytm jest poprawny, czyli ze tak utworzony graf jest drzez wem. Zauwa my, ze je eli wierzchoek (poza pocz tkowym) jest wkadany na stos, z z a to do dokadana jest kraw d cz ca z wierzchokiem znajdujcym si na stosie e z a a a e pod nim. Dlatego w ka dym momencie wierzchoki na stosie stanowi drog w , czy z a e a ona wierzchoek pocz tkowy z aktualnie odwiedzanym wierzchokiem. Poniewa graf a z jest spjny, to algorytm odwiedzi wszystkie wierzchoki grafu i jest grafem spjnym. Z ka d krawdzi z mo emy zwi za wierzchoek, ktry jest wkadany na stos z a e a z a c w momencie jej powstania. Poniewa , ka dy wierzchoek jest wkadany na stos tylko z z raz, mamy w krawdzi (z pocztkowym wierzchokiem nie jest zwi zana zadna e a a krawd ). Tak wi c jest spjny, zawiera wszystkie wierzchoki grafu i ma e z e krawdzi, jest wi c drzewem spinaj cym. e e a Podobnie mo na przerobi algorytm przeszukiwania grafu wszerz. Mwi c w skrcie z c a do drzewa nale a te krawdzie, ktrymi przeszed algorytm przeszukujc graf. z e a
Lemat 1.25 Rnica symetryczna dowolnej liczby pseudocykli jest pseudocyklem. z Dowd: Wystarczy pokaza , ze r nica symetryczna c z dwch pseudocykli , jest pseudocyklem. Dla dowolnego wierzchoka zbir kraw dzi przylegych e do w jest r nic symetryczn kraw dzi przylegych do w z a a e iw .A poniewa s to zbiory parzystej mocy, wi c ich r nica symetryczna te jest parzystej z a e z z mocy. Rzeczywicie dla dowolnych dwch zbiorw i mamy s
)@
5 ) ) ) ) !) )
2 `% U
2B
"
"
) )
'
) b)
'
15
Jest to r nica symetryczna cykli fundamentalnych utworzonych z ci ciw wchodzcych z e a do . Poka emy, ze z
Na podstawie lematu 1.25, zbir ten jest pseudocyklem. Z drugiej strony nie zawiera zadnych ci ciw, poniewa ka da ci ciwa albo nie nale y do zadnego skadnika tej e z z e z r nicy, je eli z z , albo nale y do dokadnie dwch: do i do . Zatem zbir z jest podzbiorem drzewa , i jest pusty, bo inaczej musiaby zawiera wierzchoki stopnia c jeden, co jest sprzeczne z faktem, ze jest pseudocyklem. Zatem
Udowodnilimy zatem nast pujce: s e a Twierdzenie 1.26 Kady cykl (pseudocykl) jest rnic pewnej liczby cykli fundamentalz z a nych. Przykad 1.27 (Kontynuacja przykadu 1.24) Cykl symetryczn cykli a i . Rzeczywicie s
jest rnic z a
Je eli graf nie jest spjny, to ka d skadow spjnoci mo emy traktow osobno. z z a a s z c Niech , , ... , b d skadowymi spjnoci grafu i niech skadowa e a s ma wierzchokw i krawdzi. Dla ka dej skadowej e z mamy drzewo spinaj ce z a kraw dziami oraz e cykli fundamentalnych. Niech zbir cykli fundamentalnych caego grafu b dzie sum cykli fundamentalnych skadowych. Ka dy cykl w grae nale y e a z z
@ E #
Lemat 1.28 Jeeli graf jest spjny oraz posiada z cykli fundamentalnych.
E
wierzchokw i
kraw dzi, to ma e
kraw dzi e
@
'
E & @
'
Cykl Rzeczywicie s
Y' P G R P `e S ! B '
grafu
i utwrzmy rznic e
2 B
'
0 U
16
w caoci do jednej skadowej spjnoci, bo sam jest spjny, i mo e by przedstawiony s s z c jako r nica symetryczna cykli fundamentalnych. W caym grae mamy wi c z e
cykli fundamentalnych. Udowodnilimy wi c nast puj ce s e e a Twierdzenie 1.29 W dowolnym grae mamy cykli fundamentalnych, gdzie jest liczb wierzchokw, liczb kraw dzi, a liczb skadowych spjnoci. a a e a s
i je eli z
z funkcj wagi a
grafu
Przykad 1.30 Po zastosowaniu powyszego algorytmu do grafu z rysunku 1.9a otrzymaz my drzewo przedstawione na rysunku 1.9b Najpierw poka emy, ze tak utworzony graf jest drzewem spinaj cym. Po ka dej z a z iteracji p tli, graf nie zawiera cyklu, wi c na koncu te jest acykliczny. Przypucmy, e e z s ze po zako czeniu algorytmu nie jest spjny. Istniej wi c w dwa wierzchoki i , n a e ktre s po czone w drog a a a (bo jest spjny), ale ktre nie s a po czone w . Na drodze tej s wi c dwa s siednie wierzchoki a a e a i , ktre nie s a po czone w drog. Ale wtedy dodanie kraw dzi a a e do drzewa nie tworzy w nim cyklu i algorytm powinien doda krawd c e z do , sprzecznoc. s
Fa 7
. .
B
# 2
0
U'
U'
#c@#@$U @
@ B 0
D
@
0F
2 B
U
$ F
, to
17
a s Poka emy teraz, ze jest minimalnym drzewem spinaj cym. Przypucmy, ze nie z jest minimalne. Niech b dzie takim minimalnym drzewem, ktre ma z e najwi ksz liczb wsplnych kraw dzi. Niech b dzie krawdzi z minimaln wag , e a e e e e a a a ktra nale y do , ale nie nale y do . Je eli dodamy do to otrzymamy cykl. Niech z z z b dzie krawdzi w tym cyklu, ktra nale y do , ale nie nale y do . e e a z z Niech b dzie drzewem, ktre powstaje z po zamianie na . e powstaje przez usuni cie z grafu e . Jest to graf spjny z krawdziami, czyli drzewo. e Je eli z , to drzewo byoby drzewem z mniejsz od wag , wbrew mia a nimalnoci . Je eli s z , to drzewo byoby minimalnym drzewem z wi ksz e a od liczb wsplnych z krawdzi, znowu sprzecznoc. Mamy wi c a e s e . Je eli dodamy teraz kraw d do , to otrzymamy cykl (to mo e by inny cykl z e z z c ). W tym cyklu istnieje kraw d , ktra nale y do , ale nie e z z ni ten w z do . Przypucmy, ze s . W takim przypadku algorytm powinien wstawi c kraw d do drzewa , bo w momencie rozpatrywania w drzewie nie ma jeszcze e z i wstawienie nie zamyka cyklu. Wynika, to z faktu, ze graf jest drzewem, wi c krawd nie tworzy cyklu z kraw dziami z e e z e . Mamy wi c e co jest sprzeczne z faktem, ze bya najl ejsz krawdzi z i z a e a nienale ac do . z a
S
B0
B S
X
1 (
18
dwa jego wierzchoki s stopnia nieparzystego. Pami tamy, wniosek 1.4, ze w ka dym a e z grae liczba wierzchokw nieparzystego stopnia jest parzysta. Tak wi c graf z drog e a Eulera ma dwa lub zero wierzchokw nieparzystego stopnia. Przykad 1.31 Graf na rysunku 1.1 ma dwa wierzchoki nieparzystego stopnia posiada drog Eulera e .
Wyobra my sobie, ze idziemy wzdu krawdzi grafu, i po przejciu ka dej krawdzi z z e s z e usuwamy j z grafu. Przechodzc przez jaki wierzchoek usuwamy dwie krawdzie, t , a a s e a ktr weszlimy do wierzchoka, i t , ktr go opucilimy. Dlatego, je eli po dojciu do a s a a s s z s jakiego wierzchoka, nie ma ju krawdzi z niego odchod acych, to albo doszlimy do s z e z s wierzchoka pocz tkowego, albo do wierzchoka nieparzystego stopnia. a Z tego wynika, ze je eli w grae istnieje droga Eulera, to mog w nim by co najwy ej z a c z dwa wierzchoki nieparzystego stopnia, pocztek i koniec drogi, a je eli droga Eulera jest a z zamknita i stanowi cykl Eulera, to wszystkie wierzchoki w grae s parzystego stopnia. e a Poka emy teraz, ze s to tak e warunki wystarczajce. Zaczniemy od cyklu Eulera. z a z a Twierdzenie 1.32 Spjny graf posiada cykl Eulera wtedy i tylko wtedy, gdy kady jego z wierzchoek jest parzystego stopnia. Dowd: Koniecznoc warunku udowodnilimy wy ej. Teraz poka emy, ze jest to was s z z runek wystarczaj cy. Za my, ze ka dy wierzchoek jest parzystego stopnia. Niech a z z b dzie najdu sz pod wzgl dem liczby krawdzi drog w grae bez powtarzania kraw dzi. e z a e e a e Z rozwa a zrobionych wy ej wynika, ze jest to droga zamkni ta. Przypucmy, ze droga z n z e s ta nie zawiera jeszcze wszystkich krawdzi grafu. Poniewa graf jest spjny, wi c istnieje e z e wierzchoek na tej drodze, od ktrego odchodzi krawd nie nale aca do . Mo ee z z z my teraz utworzy du sz drog bez powtarzania krawdzi: zawiera ona i potem idzie c z a e e wzdu . Jest to sprzeczne z zao eniem, ze bya najdu sz drog . z z z a a Twierdzenie 1.33 Spjny graf posiada drog Eulera wtedy i tylko wtedy, gdy posiada co e najwyej dwa wierzchoki nieparzystego stopnia. z Dowd: Koniecznoc warunku pokazano wy ej. Teraz poka emy, ze jest to warunek s z z wystarczaj cy. Poniewa graf nie mo e posiada tylko jednego wierzchoka stopnia niepaa z z c rzystego, to wystarczy rozwa y graf z dwoma wierzchokami i nieparzystego stopnia. z c Dodajmy do grafu nowy wierzchoek i po czmy go krawdziami z i . Teraz ka dy a e z wierzchoek jest stopnia parzystego i posiada cykl Eulera. Po usuni ciu z niego nowych e krawdzi i wierzchoka otrzymamy drog Eulera w pierwotnym grae. e e Powy szy dowd, chocia krtki, ma t wad , ze nie daje dobrego algorytmu znajz z e e dowania drogi Eulera. Nie sposb przegld c wszystkich mo liwych drg, bo jest ich a a z bardzo du o. z Poni ej poka emy dwa znacznie szybkie algorytmy znajdowania cyklu Eulera. z z Algorytm wyszukiwania cyklu Eulera Dane wejciowe: spjny graf ze wszystkimi wierzchokami parzystego stopnia. s Zaczynamy od dowolnego wierzchoka
T R
i
% "
% "
T S G P TR S B PQR
19
Je eli z bierz cego wierzchoka odchodzi tylko jedna krawd , to przez a e z chodzimy wzdu tej krawdzi do nast pnego wierzchoka, usuwamy t krawd i z e e a e z wierzchoek z grafu. Je eli z odchodzi wi cej ni jedna krawd , to wybieramy t kraw d , ktz e z e z a e z rej usuni cie nie rozspjnia grafu; przechodzimy wzdu tej krawdzi do nast pnego e z e e wierzchoka, usuwamy t krawd z grafu. a e z
Przykad 1.34 W grae z rysunku 1.10 wszystkie wierzchoki s parzystego stopnia. Przea sledmy, jak dziaa powyszy algorytm. Zaczynamy od wierzchoka i przyjmijmy, ze w z z razie wyboru algorytm wybierze kraw d do wierzchoka z wczeniejsz (wedug alfabee z s a tu) liter . Tak wi c przejdzie do potem do i do . Rysunek 1.11 przedstawia nasz graf a e po tych trzech krokach, usuni ciu odwiedzanych kraw dzi i wierzchoka (z ktrego nie e e odchodz ju zadne kraw dzie). a z e poniewa usuni cie tej kraw dzi rozz e e Teraz algorytm nie moe wybra kraw dzi z c e spjni graf. Zamiast tego algorytm powinien wybra kraw d c e z i przejc do wierzs choka , a potem do . Teraz znowu nie powinien ic do tylko do , a potem ju bez s z problemw do ko ca cyklu Eulera: , , , , , . n Poka emy teraz poprawnoc tego algorytmu. Przypucmy, ze po kilku krokach jez s s stemy w wierzchoku , z ktrego odchodzi kilka kraw dzi. Poka emy, ze wrd tych s e z s kraw dzi co najwy ej jedna jest za (jej usuni cie mo e rozspjni graf). Z przebiegu e z e z c algorytmu wynika, ze graf w aktualnej postaci (po usuni ciu by mo e jaki krawdzi e c z s e lub wierzchokw) jest nadal spjny i co najwy ej dwa wierzchoki w nim s nieparzyz a stego stopnia i (co zachodzi je eli z ). Wi c posiada on drog Eulera. Id my e e z
' B G
' P G
P G T S Q
% 7 %
% %
20
t drog zaczynajc od . Droga ta konczy si w lub a a a e i przechodzi kilka razy przez a . Mamy wi c kilka p tli, ktre zaczynaj si i koncz w i by mo e ko cowy odcie e a e c z n nek zaczynajcy si w i ko czcy w . Ot tylko pierwsza krawd tego ostatniego a e n a z e z odcinka mo e rozspjnia graf. Wszystkie inne krawdzie wychodzce z s cz sciami z c e a a e cykli. Aby udowodni , ze algorytm dobrze dziaa, trzeba pokaza , ze wszystkie krawdzie c c e grafu b d odwiedzone. Po ka dej iteracji algorytmu graf jest spjny, wi c je eli z wierze a z e z a e z e choka nie odchodz zadne kraw dzie, to znaczy, ze nie ma ju zadnych kraw dzi w grae. Powy szy algorytm mimo, ze prosty i szybki wymaga sprawdzania, czy usuni cie z e krawdzi nie rozspjni grafu. e Drugi algorytm wyznaczania cyklu Eulera. Dane wejciowe: spjny graf, w ktrym wszystkie wierzchoki s parzystego stopnia. s a Pomocniczy STOS. Dane wyjciowe: CE cykl Eulera. s Zaczynamy od dowolnego wierzchoka
i wkadamy go na STOS,
je eli z odchodz jakie nieodwiedzane kraw dzie, to wybieramy jedn z z a s e a nich, przechodzimy na jej drugi koniec, zaznaczamy jako odwiedzon i jej drugi a koniec wkadamy na STOS. Je eli wszystkie kraw dzie odchodzce z byy ju odwiedzone, to zdejmuz e a z jemy ze STOSU, przekadamy na wyjcie CE oraz przechodzimy do wierzchoka s znajduj cego si pod na STOSIE. a e
Q G S
21
Przykad 1.35 Przeledmy dziaanie algorytmu na przykadzie z rysunku 1.10. Ponisza s z z tabela zawiera: odwiedzany wierzchoek, stan STOSU oraz stan pliku wyjciowego CE po s kadym kroku z pierwszych szesnastu krokw. z Krok 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 wierzchoek a b c d a d e f g d g f h b i f STOS a ab abc abcd abcda abcd abcde abcdef abcdefg abcdefgd abcdefg abcdef abcdefh abcdefhb abcdefhbi abcdefhbif CE a a a a a ad adg adg adg adg adg
Po szesnastu krokach wszystkie kraw dzie zostay odwiedzone i teraz STOS krok po e kroku zostanie przeo ony na wyjcie CE. Otrzymamy nast puj cy cykl Eulera: z s e a
Z algorytmu wynika, ze kolejne wierzchoki na obu stosach s po czone kraw dziami a a e i ze ka da kraw d (jako para s siednich wierzchokw) pojawia si na STOSIE tylko z e z a e raz. Nale y wi c tylko pokaza , ze wszystkie kraw dzie znajd sie na wyjciu. Je eli z e c e a s z pominito jakie kraw dzie, to poniewa graf jest spjny jaka nieodwiedzona krawd e s e z s e z musi przylega do wierzchoka , ktry jest w wynikowym cyklu, ale jest przekadany c na wyjcie tylko tedy, gdy nie odchodz od niego ju zadne nieodwiedzane krawdzie. s a z e W ka dej iteracji algoryt przechodzi jak s krawd . Albo wkadajc jej koniec na z a e z a STOS, albo przekadajc j na wyjcie CE. A poniewa ka da krawd jest odwiedzana a a s z z e z dokadnie dwa razy, raz jak jest wkadana na STOS i drugi raz jak jest przekadana na CE, wi c czas dziaania algorytmu jest proporcjonalny do liczby krawdzi w grae. e e
B S TRQ P G
@ P Q R 1GB S Q S T G P
#
% ($ H
22
Inaczej ni dla cyklu lub drogi Eulera nie jest znane zadne proste kryterium rozstrzyz gania, czy dany graf posiada drog lub cykl Hamiltona. Nie jest tak e znany zaden ale z gorytm wyszukiwania drogi lub cyklu Hamiltona dziaaj cy w czasie wielomianowym. a Naiwnym sposobem szukania drogi Hamiltona jest sprawdzanie wszystkich mo liwych z drg w grae, ale algorytm ten jest bardzo czasochonny, bo mamy okoo mo liwych z drg w grae z wierzchokami. Innym algorytmem szukania drogi Hamiltona jest tak zwane wyszukiwanie z nawrotami. Mwi c w skrcie szukanie z nawrotami idzie pierwsz mo liw scie k tak daleko a a z a z a jak to tylko mo liwe okadajc kolejne odwiedzane w zy na stos. W momencie, gdy alz a e gorytrm utknie w slepej uliczce, to cofa si o jeden krok i prbuje innej drogi. Za my, e z ze wierzchoki grafu s uporzdkowane na przykad wedug alfabetu lub s kolejnymi a a a liczbami naturalnymi
Algorytm z nawrotami wyszukiwania drogi Hamiltona Dane wejciowe: graf s oraz wierzchoek pocztkowy a
Dane wyjciowe: droga Hamiltona zaczynajca si od , lub informacja, ze takiej drogi s a e nie ma.
w z
na STOS
powtarzaj a do skutku: z je eli jest wierzchokiem na wierzchu STOSU, to szukamy wierzchoka z o najni szym mo liwie numerze po czonego z krawdzi i nie wyst puj cy z z a e a e a na STOSIE. Je eli w poprzedniej iteracji zdj to ze STOSU wierzchoek , to z e powinien by wi kszy od . c e Je eli takie znajdziemy, to wkadamy je na STOS. Je eli wierzchoki na z z STOSIE tworz ju drog Hamiltona, to koniec algorytmu. a z e Je eli takiego z
ze STOSU.
Przykad 1.37 Przeledmy dziaanie algorytmu na przykadzie grafu z rysunku 1.1. Pos z nisza tabela zawiera: odwiedzany wierzchoek, oraz stan STOSU po kadym kolejnym z z kroku (szukanie rozpoczynamy od wierzchoka ).
42 %
"
"
' d#@c@#@! a
#
0F
"
1.11. Kolorowanie grafw Krok 1 2 3 4 5 6 7 8 9 10 11 12 13 wierzchoek d a b c f e f g f c g f e STOS d da dab dabc dabcf dabcfe dabcf dabcfg dabcf dabc dabcg dabcgf dacgfe
23
Powy szy algorytm mimo, ze szybszy od naiwnego algorytmu sprawdzania wszystz kich drg, ma wykadnicz zo onoc czasow . a z s a
kolorw
oznacza, ze
nie ma jeszcze
powtarzaj a do skutku: z je eli jest wierzchokiem na wierzchu STOSU, to prbujemy przypisa mu z c kolor, wi kszy od bie acego koloru e z , ktry nie koliduje z kolorami wierzchokw znajdujcych si na STOSIE. Je eli to si uda, to wkadamy kolejny wierzchoa e z e ek na stos. Je eli si nie uda, to zdejmujemy ze stosu i podstawiamy z e .
R R
X " R
"
H" R IH% R
"
Faa
2 %
"
24
W tym algorytmie prbujemy kolejnym wierzchokom przypisa pierwszy z rz du c e a kolor i pokolorowane wierzchoki umieszczamy na stosie. Jak zabrniemy w slep uliczk , e to cofamy si do poprzedniego wierzchoka na stosie i prbujemy nast pnego koloru. e e Przykad 1.39 Zastosujmy powywszy algorytm do grafu z rysunku 1.12, aby znalec z z kolorowanie trzema kolorami . Najpierw kady wierzchoek dostaje kolor , co z oznacza, ze nie jest jeszcze pokolorowany. Rysunek 1.12: Przykad grafu
Zaczynamy od wierzchoka . W pierwszych pi ciu krokach algorytm pokoloruje wierze choki , , , i w nast puj cy sposb: e a
u c(u)
a 1
b 2
c 1
d 2
e 3
f 0
Teraz algorytm nie moe pokolorowa wierzchoka , bo jest on po czony z , , , ktre z c a s pokolorowane kolorami 1, 2, 3. Dlatego jest zdj te ze stosu: a e
Teraz zdejmujemy wierzchoek , bo nie mona mu przypisa wyszego koloru, i podstaz c z wiamy .
u c(u)
B @ S AG R Q P
B @ bG R Q P
i wkadamy
B G P
B R
B @ bG R Q P S S B @ S AG R Q P
Q R @ GRQP G
na
' !
G R G
B B GRQ P
S B R
25
Wierzchoek ma w tym momencie najwyszy kolor z , wi c zmiana koloru nie jest e moliwa i zdejmujemy go ze stosu. Mamy teraz nast puj ce kolorowanie z e a u c(u) i stos a 1
b 2
c 1
d 0
e 0
f 0
Teraz zmieniamy kolor na , a nast pnie ju bez nawrotw kolorujemy e z , , . Ostateczne kolorowanie wygl da tak: a u c(u)
a 1
b 2
c 3
d 1
e 2
f 3
E
Je eli zastosujemy powy szy algorytm do pokolorowania grafu penego z z ko lorami, to wyprbuje on wszystkie kolorowan dla pierwszych wierzchokw. Pesymistyczny czas dziaania algorytmu jest wi c e . Problem kolorowania grafw jest trywialny, je eli mamy tylko jeden kolor z . Jednym kolorem mo na pokolorowa tylko grafy bez krawdzi. z c e Proste jest te kolorowanie grafw dwoma kolorami. Grafy, ktre mo na pokolorowa c z z dwoma kolorami, to grafy dwudzielne. Grafu nie mo na pokolorowa dwoma kolorami, z c je eli zawiera cykl nieparzystej dugoci. Poni ej poka emy, ze i na odwrt: je eli graf z s z z z nie ma cyklu nieparzystej dugoci, to mo na go pokolorowa dwoma kolorami. s z c Poni ej przedstawiamy algorytm kolorowania grafw dwoma kolorami. Dla prostoty z zakadamy, ze kolorowane grafy s spjne. Algorytm mo na atwo przerobi c tak, aby a z kolorowa wszystkie grafy. Algorytm kolorowania grafu dwoma kolorami a Dane wyjciowe: pokolorowanie wierzchokw grafu za pomoc dwch kolorw s lub informacja, ze takiego pokolorowania nie ma. we pierwszy wierzchoek , pokoloruj go pierwszym kolorem z
E
powtarzaj a do skutku: We wszystkie wierzchoki, ktre s po czone krawdzi z z a a e a z jakim wierzchokiem pokolorowanym w poprzedniej iteracji i nie maj jeszcze s a koloru.. Je eli wrd nich zadne dwa nie s po czone kraw dzi , to pokoloruj je z s a a e a jednym kolorem (innym ni wierzchoki kolorowane w poprzedniej iteracji). z Je eli wrd nich s dwa po czone krawdzi , to pokolorowanie dwoma z s a a e a kolorami nie jest mo liwe. z
% R
G R
% $
G R @ GRQP
%
@RQP
0F a
D
#
S R B R R R R
' I!
26
Kolorowanie otrzymywane w tym algorytmie jest prawidowe. Niech oznacza wierzchoki kolorowane w -tej iteracji, . Wierzchoki z s kolorowane na a pierwszy kolor, je eli jest parzyste, i na drugi kolor, je eli jest nieparzyste. Zauwa my, z z z ze dowolny wierzchoek mo e by po czony kraw dzi tylko z wierzchokaz c a e a mi ze zbiorw i . zawiera wszystkie wierzchoki, ktre s po czone z a a i nie miay koloru po pokolorowaniu , tak wi c zaden ze zbiorw e wierzchokami z z nie zawiera wierzchokw poczonych z a . Zauwa my, ze je eli dwa wierzchoki i z z nale a do z , to istniej drogi a oraz takie, ze . Niech , b dzie ostatnim wsplnym wierzchokiem na obu drogach. Poniewa zbiory e z s roz czne, to wsplne wierzchoki musz mie te same indeksy. Droga a a a c jest drog z parzyst liczb kraw dzi. Dlatego, je eli i s po czone krawdzi , a a a e z a a e a to w grae mamy cykl nieparzystej dugoci i pokolorowanie dwoma kolorami nie jest s mo liwe. z Z powy szych rozwa a wynika z z n Lemat 1.40 Graf jest dwudzielny (moe by pokolorowany dwoma kolorami) wtedy i tylz c ko wtedy, gdy nie zawiera cykli nieparzystej dugoci. s Wniosek 1.41 Kade drzewo mona pokolorowa dwoma kolorami. z z c Nie jest znany algorytm kolorujcy grafy trzema kolorami (lub dowoln wi ksz a a e a liczb kolorw) dziaaj cy w czasie wielomianowym. a a Poniewa nie s znane szybkie algorytmy kolorowania grafw stosuje si heurystyki, z a e czyli algorytmy niedokadne. Na przykad nast puj ca heurystyka e a Heurystyka kolorowania grafu
C
W wielu przypadkach heurystyka ta da optymalne rozwi zanie, na przykad dla grafu a z rysunku 1.12.
1.12 Hiperkostka
Hiperkostka wymiaru 1 jest przedstawiona na rysunku 1.13a. Skada si ona z dwch e wierzchokw 0 i 1 po czonych krawdzi . Hiperkostk a e a e wymiaru 2 (rysunek 1.13b) budujemy z dwch kostek . W pierwszej kostce numerujemy wierzchoki przez 00 i 01 (dopisujemy 0 na pocz tek nazwy ka dego wierzchoka). W drugiej kostce numerujemy a z wierzchoki przez 10 i 11 (dopisujemy 1 na pocz tek). Nast pnie czymy kraw dziami a e a e odpowiadajce sobie wierzchoki z obu kopii 00 z 10 i 01 z 11. a Podobnie budujemy hiperkostk e wymiaru z dwch kostek . W pierwszej kostce numerujemy wierzchoki dopisujc 0 na pocz tku nazwy ka dego wierzchoka. a a z W drugiej kostce numerujemy wierzchoki dopisujc 1 na pocztek. Nast pnie czymy a a e a
"
&"cc@c@#@E"
2 "
C 7B C @
% "
' (#%
7 7
c#@c@c@ % U
@ B 7
"
U
7 9
U U 2 a"
@
c#@c@c@I
7
7
27
01
11
0 a)
00 b)
10
jest kraw dziami odpowiadajce sobie wierzchoki z obu kopii, czyli wierzchoek e a po czony z wierzchokiem , dla ka dego a z . Rysunek 1.14 przedstawia hiperkostk e . W rezultacie hiperkostka to graf , gdzie zawiera wszystkie ci gi bitw dugoci , a dwa wierzchoki , a s s po czone krawdzi wtedy i tylko a a e a wtedy, gdy r ni si dokadnie jednym bitem. z a e Jak atwo wida w kostkach c i s cykle Hamiltona (w a jest droga Hamiltona). Oglniej mamy Lemat 1.42 Kada hiperkostka z zawiera drog Hamiltona. zaczynaj c si w wierze a a e choku i ko cz c w wierzchoku n a a . Dowd przez indukcj ze wzgl du na wymiar kostki. e e zawiera drog Hamiltona e Za my, ze z zawiera drog Hamiltona z e do . skada si z dwch e hiperkostek . Droga w zaczyna si w punkcie . W pierszej hiperkostce (tej z e 0 na pocztku ka dego wierzchoka) przechodzi do a z , potem krawdzi do e a i w drugiej hiperkostce (tej z 1 na pocz tku ka dego wierzchoka) w odwrotnym kierunku a z do . Cykl Hamiltona w tworzy tak zwany kod Graya. Jest to ci g wszyskich elemena towych ci gw bitw, ka dy wyst puje raz, ka de dwa kolejne r ni si jednym bitem a z e z z a e oraz ostatni ciag r ni si jednym bitem od pierwszego. z e
E 0
E E
E 0
U U
E 0
, b) Hiperkostka
U U
0F
28
Najpierw przeled my dziaanie tego protokuu na hiperkostce s z (rysunek 1.14). Za my, ze wierzchoek z jest zrdem wiadomoci. W pierwszym takcie przeka s zuje on j do wierzchoka a . Zauwa my, ze po pierwszym takcie wiadomoc jest z s znana wierzchokom o numerach mniejszych od 2 i, ze te wierzchoki tworz hiperkostk a e wymiaru 1. W drugim takcie wierzchoek przeka e wiadomoc do wierzchoz s ka , a wierzchoek do . Po drugim takcie wiadomoc znaj s a wierzchoki o numerach mniejszych od 4 i tworz one hiperkostk wymiaru 2. W trzecim a e takcie przekazuje wiadomoc do s , do , do ,a do . Tak wi c po trzech taktach wszystkie wierzchoki w e znaj wiadomoc. a s
Protok rozsyania wiadomoci w hiperkostce s Na pocz tku wiadomoc ma wierzchoek a s . Powtarzaj dla
Aby pokaza poprawnoc tego protokou, poka emy przez indukcje, ze po -tym c s z takcie wiadomoc jest znana wszystkim wierzchokom o numerach mniejszych od . s Przed pierwszym taktem wiadomoc jest znana wierzchokom o numerach mniejszych s od , czyli wierzchokowi 0. Za my, ze przed -tym taktem wiadomoc jest znana z s
@ H E
E " E
E E A"
E "
E AE E
E AE
E AE
E "
E " E
E E "
4
E
E AE E
U dc@#@c@b $
E E
E AE
29
wszystkim wierzchokom o numerach mniejszych od . S to dokadnie wierzchoki a postaci , gdzie (je eli z to jest pustym ci giem). W a -tym takcie ka dy taki wierzchoek przeka e wiadomoc do z z s , czyli po -tym takcie wiadomoc b d znay wszystkie wierzchoki, ktre maj na s e a a pierwszych bitach zera, czyli wszystkie wierzchoki o numerach mniejszych od . Protok ten (po maych przerbkach) mo na tak e stosowa do grafu penego lub do z z c innego grafu, ktry zawiera hiperkostk. e
(rysunek 1.14). Przykad 1.43 Przeledmy dziaanie tego protokuu na hiperkostce s z W pierwszym takcie wierzchoek przekazuje swoja wiadomoc do s , wierzchoek do , wierzchoek do , a wierzchoek do . W drugim takcie wierzchoek przekazuje zebrane wiadomoci (swoja i te, kt.ore s otrzyma w poprzednim takcie) do , a wierzchoek do . W trzecim takcie wierzchoek przekazuje zebrane wiadomoci do s . a wierzchoek do .
1.15 Plotkowanie
Plotkowanie polega na tym, ze na pocztku ka dy wierzchoek ma jak s wiadomoc i a z a s chce j rozesa do wszystkich innych wierzchokw w grae. a c Znaj c protokoy do zbierania i rozsyania wiadomoci mo emy zaprojektowa protoa s z c k plotkowania, ktry najpierw zbiera wszystkie informacje do jednego w za, a nast pnie e e rozsya je do wszystkich wierzchokw.
1.16 Zadania
2. Ile maksymalnie kraw dzi mo e mie graf z e z c
# % $
? wierzchokami?
E E
E AE
E AE E
, gdzie
@
' e 2
E 8
E "
E E
Powtarzaj dla
H
@
U
@ @
U
E @
' U e 5 2
@ E 0
cc@c@#@!
U
E
E E
E " E
H H
30
Rozdzia 1. Grafy (nieskierowane) 3. Ile jest grafw ze zbiorem wierzchokw 4. Ile kraw dzi ma dwudzielny graf peny e
5. Udowodnij, ze izomorzm grafw jest relacj rwnowa noci. a z s 6. Narysuj wszystkie grafy ze zbiorem wierzchokw izomorczne?
7. Narysuj mo liwie jak najwi cej nieizomorcznych grafw z czterema wierzchoz e kami . 8. Narysuj dwa nieizomorczne grafy z t sam (mo liwie jak najmniejsz ) liczb a a z a a wierzchokw. 9. Narysuj dwa nieizomorczne drzewa z t sam (mo liwie jak najmniejsz) liczb a a z a a wierzchokw. 10. Narysuj dwa nieizomorczne grafy z t sam (mo liwie jak najmniejsz ) liczb a a z a a wierzchokw i t sam liczb kraw dzi. a a a e 11. Narysuj dwa nieizomorczne grafy, ktre maj t sam liczb wierzchokw stopa a a a z nia , dla ka dego . 12. Zastosuj algorytm przeszukiwania grafu w g b (wszerz) do grafw z rysunkw 1.1 a i 1.10. 13. Zkonstruuj drzewa spinaj ce dla grafw z rysunkw 1.1 i 1.10. a 14. Korzystaj c z drzew spinaj cych z poprzedniego zadania, znajd zbir cykli fundaa a z mentalnych dla grafw. 15. Zmodykuj algorytm przeszukiwania grafu wszerz tak, aby wyznacza on tak e z drzewo spinaj ce (zo one z tych kraw dzi, ktrymi przeszed algorytm). Zastosuj a z e ten algorytm do grafw z rysunkw 1.1, 1.7 i 1.10. 16. Sprawd , ktre grafy przedstawione na rysunkach w tym rozdziale posiadaj cykl z a (lub drog) Eulera. e 17. Sprawd , ktre grafy przedstawione na rysunkach w tym rozdziale posiadaj cykl z a lub drog Hamiltona. e 18. Zastosuj algorytm kolorowania z nawrotami do grafu z rysunku 1.7. 19. Znajd graf, dla ktrego heurystyka przedstawiona w podrozdziale o kolorowaniu z grafw nie znajduje optymalnego kolorowania. 20. Narysuj hiperkostk e . Wska w niej cykl Hamiltona. Przeled na niej protok z s z rozsyania wiadomoci. s
'RQ P
' d#@c@c@b
?
# % ) E
6 $
. Ktre z nich s a
' GRQ P
1.17. Problemy
31
1.17 Problemy
Oto algorytm konstrukcji minimalnego drzewa spinaj cego a dla grafu : (1) zaczynamy od zbioru wszystkich krawdzi e grafu , (2) sortujemy kraw dzie wedug dugoci, od najdu szej do najkrtszej (3) dla ka dej kraw dzi e s z z e usuwamy j z a , je eli jej usunicie nie rozspjnia grafu . z e Udowodnij poprawnoc tego algorytmu. s Zastosuj powy szy algorytm do grafu z rysunku 1.9a. z b dzie dowolnym grafem z wagami krawdzi , a e e Niech dowolnym minimalnym drzewem spinaj cym. Poka , ze dla dowolnego wierzchoka a z do nale a te krawdzie wychodzcych z , ktre maja najkrtsze wagi, to znaczy, z e a je eli i s dwiema krawdziami przylegymi do takimi, ze z a e oraz , to .
4 2 S 2%
2B
$
42 B
0
S 0S B B 0
F
Rozdzia 1
Grafy skierowane
W tym rozdziale zajmiemy si algorytmami wyszukiwania najkrtszej drogi w grafach e skierowanych. Ka dej krawdzi przypiszemy dugoc (wag ) i algorytmy b d szuka z e s e e a c drogi, dla ktrej suma dugoci krawdzi jest najmniejsza. s e
W grae skierowanym kraw d e z jest skierowana od wierzchoka do wierz choka . Wierzchoek nazywamy pocz tkiem krawdzi, a wierzchoek ko ncem. Na a e rysunkach kraw dzie skierowane b dziemy przedstawia jako strzaki. Droga w grae e e c skierowanym jest to ci g wierzchokw a , taki, ze dla ka dego z , wierzchoki , s po czone kraw dzi , czyli a a e a . Drog e nazywamy cyklem je eli z , oraz wszystkie wierzchoki s r ne. Na a z przykad ci g wierzchokw a jest cyklem w grae z rysunku 1.1. Dla grafw skierowanych dopuszczamy cykl zo ony z dwch wierzchokw, na przykad ci g z a stanowi cykl w grae z rysunku 1.1. Kraw d typu e z , w ktrej pocztek i koniec a pokrywaj si , nazywamy p tl . Mo na przyj c, ze p tla jest cyklem dugoci jeden. a e e a z a e s 3
!
'
, ze sko czon
I2$`P$
Denicja 1.2 Graf skierowany jest (silnie) spjny, jeeli dla kadych dwch jego wierzz z chokw i istnieje droga z do . Przykad 1.3 Graf z rysunku 1.1 nie jest spjny, bo nie ma w nim drogi z do .
Przypucmy teraz, ze ka dej krawdzi przypisano dugoc (wag ) s z e s e przy tym ujemne dugoci. Dla ka dej drogi w grae s z
. Dopuszczamy
Je eli z , droga skada si z pojedynczego punktu, to przyjmujemy, ze jej dugoc wye s nosi 0. W tym rozdziale interesuj nas algorytmy wyznaczania najkrtszej drogi cz cej a a a dwa wierzchoki i w grae. Przykad 1.4 Jako przykad zastosowania algorytmu wyszukiwania najkrtszej drogi w grae rozpatrzmy sie po cze , czyli graf, w ktrym kraw dzie reprezentuj cza pomi dzy c a n e a a e w zami. Z kad kraw dzi zwi zane jest prawdopodobie stwo e z a e a a n , ze kraw d za e z dziaa bez awarii. Zakadamy, ze awarie poszczeglnych kraw dzi s od siebie niezalene. e a z Przyjmijmy teraz dugoc kraw dzi jako s e . Najkrtsza droga jest wtedy drog z najmniejszym prawdopodobie stwem awarii. a n atwo zauwa y , ze je eli w grae s cykle o ujemnej dugoci, to dla pewnych par z c z a s wierzchokw nie istnieje najkrtsza droga mi dzy nimi. Powtarzaj c przejcie wzdu e a s z cyklu mo na wtedy otrzymywa drogi o dugoci dowolnie maej. Dlatego w dalszej z c s cz sci b dziemy zakada , ze w grae wszystkie cykle s dodatniej dugoci. e e c a s Problem znajdowania najkrtszej drogi w grae nieskierowanym, je eli wszystkie z krawdzie maj dodatnie dugoci, mo na sprowadzi do przypadku grafu skierowanee a s z c go. Wystarczy ka d krawd z a e z zast pi przez dwie kraw dzie a c e i . Je eli z w grae s krawdzie o ujemnych dugociach, to sposb ten prowadzi do powstania cykli a e s ujemnej dugoci. s Opisane tu algorytmy skadaj si z dwch etapw. W pierwszym etapie wyznaczamy a e dugoci najkrtszych drg z do wszystkich wierzchokw w grae. A dopiero w drugim s etapie wyznaczymy najkrtsz drog z do . a e Najpierw opiszemy drugi etap, czyli jak znale c najkrtsz drog z do , je eli znane z a e z s odlegoci z do wszystkich wierzchokw grafu. Algorytm ten b dziemy opisywa a s e c przy pomocy przykadu grafu z rysunku 1.2. Dla prostoty algorytmu przyjmujemy , je eli z . Za my, ze z macierz zawiera odlegoci od do wszystkich pozostaych wierzchokw grafu. s
$ %' 2'`P$
#R $('&%$
"
"
! "
5 Q42'4I%H4P' &G G 3 G 3
D 2'`P$
2'76670U' 555)
"
"
' $
zawiera odlegoc od , czyli dugoc najkrtszej drogi z do . Przyjmujemy s s przy tym, ze oraz , je eli nie ma zadnej drogi z do . Najkrtsz z a drog od do wyznaczamy teraz od konca. Najpierw szukamy przedostatniego wierze choka tej drogi, p niej trzeciego od konca i tak dalej. Przedostatni wierzchoek najz krtszej drogi spenia rwnoc s
W naszym przykadzie tylko wierzchoek spenia t rwnoc. Zauwa my, ze isnieje a s z droga dugoci s z do . Je eli przedu ymy t drog o krawd z z e e e z , to otrzymamy drog z do dugoci e s , czyli najkrtsz drog z do . Jest te a e z jasne, ze taki wierzchoek istnieje. Jest to przedostatni wierzchoek dowolnej najkrtszej drogi z do . Trzeci od ko ca wierzchoek spenia rwnoc n s
W naszym przykadzie jest to i tak dalej, a odtworzymy ca drog z a e . Algorytm ten musi zako czy prac, poniewa kolejne wierzchoki odsanianej drogi s n c e z a r ne. Inaczej mielibymy cykl, co nie jest mo liwe, je eli w grae wszystkie cykle s z s z z a dodatniej dugoci. s
!
'
'
%'
'
' %
$ '2`P$ $ % ' % $ ' % D %' ' % % ' ' ' 5 P' ' % %
'
' %
' %
' %
s 0
a 1
b 0
c -1
d 1
t 2
A
!
'
%
' % ' %
' %
dla ka dego z
zrb:
Algorytm Forda-Bellmana najpierw podstawia przybli enie. Potem w z rundach, dla ka dego wierzchoka z czy istnieje wierzchoek , ktry wyznacza krtsz drog do . a e
Przykad 1.5 Algorytm Forda-Bellmana zastosowany do grafu z rysunku 1.2 dziaa w nast puj cy sposb: Na pocz tku macierz przedstawia si nast puj co: e a a e e a
! !
W pierwszej iteracji zewn trznej p tli, dla e e , algorytm dla kadego wierzchoka z sprawdza, czy istnieje wierzchoek , przez ktry wiedzie krtsza droga do . I tak dla , stwierdza, . Oznacza, to, ze droga z do a potem kraw dzi do jest krtsza od dotychczasowego oszacowania . e a . Dla wartoc s nie zmienia si e Dlatego algorytm podstawia 3 na poniewa droga przez z nie jest krtsza od dotychczasowego oszacowania. Dla algorytm znajduje krtsz drog przez ; a e i zmienia na . Dla wartoc macierzy nie jest s korygowana, a dla algorytm odnajduje drog przez , e i posya . Tak wi c po pierwszej iteracji p tli macierz ma nast puj ce e e e a wartoci: s
W trzeciej iteracji p tli dla e algorytm najpierw znajduje krtsz drog do (przez ) a e i poprawia , a potem znajduje krtsz drog do (przez ) i poprawia a e . Po trzeciej iteracji macierz wygl da tak a
' %
s 0
a 1
b 0
c -1
d 1
t 2
%
' %
s 0
a 3
b 0
%
% %
' %
s 0
a 3
b 2
c -1
d 1
t 4
'
E
' %
s 0
dla ka dego z
zrb:
b 2
c 2
d 1
Algorytm [Forda-Bellmana] , dugoci kraw dzi s e Dane wejciowe: Graf skierowany s Dane wyjciowe: Macierz odlegoci z do wszystkich wierzchokw. s s dla ka dego z podstaw ; dla ka dego od 1 do z zrb:
(' ' %
%
$
% E
A %
A A
%
Jest to ostateczna posta macierzy, gdy w czwartej iteracji jej wartoci nie s ju poprac z s a z wione. Aby udowodni , ze algorytm dziaa poprawnie poka emy przez indukcj, ze po -tej itec z e racji zewn trznej p tli e e zawiera dugoc najkrtszej drogi z do zawieraj cej co s a najwy ej z krawdzi. Przed pierwsz iteracj e a a zawiera dugoc drogi zo onej z s z jednej lub zero krawdzi. Za my, ze po iteracjach zawiera dugoc najkrtszej drogi e z s z lub mniej krawdziami. e Przypucmy, ze s jest najkrtsz spord drg z do z a s lub mniej kraw dziami. Droga e jest najkrtsz drog do a a z lub mniej krawdziami. Gdyby istniaa krtsza droga e do z co najwy ej z krawdziami, to mielibymy krtsz drog do z co najwy ej e s a e z krawdziami; sprzecznoc. Czyli dugoc drogi e s s jest rwna po tej iteracji. Dlatego po iteracji b dzie zawiera dugoc najkrtszej drogi e c s do z krawdziami. e Po zako czeniu pracy algorytmu n zawiera dugoc najkrtszej drogi z do , s poniewa , je eli w grae wszystkie cykle s dodatniej dugoci, to w minimalnej drodze z z a s zaden wierzchoek nie powtarza si i droga nie zawiera wi cej ni e e z kraw dzi. e Algorytm zawiera trzy p tle zagnie d one jedna w drug. Zewn trzna p tla wykonuje e z z a e e si e razy. Dla ka dego wewn trzna p tla wykonuje si z e e e razy, raz dla ka dego z , a dla ka dego mamy wykonan najbardziej wewn trznej p tli, czyli czas z e e dziaania algorytmu mo na oszacowa przez z c , gdzie i to stae. Tak wi c zo onoc czasowa algorytmu wynosi e z s .
dla ka dego z
podstaw
podstaw
dopki
powtarzaj:
taki, ze
Algorytm Dijkstry Dane wejciowe: Graf skierowany s , dodatnie dugoci krawdzi s e . Dane wyjciowe: Macierz odlegoci z do wszystkich wierzchokw. s s
C WA 6 ' E A A ' ' % ' % A @ 3 ' % 555 ' 3 2'6667 ) ' A @ A @ 3 ' @ ' 5 5 3 '66756 ) ' ' ' 3 2'7667 ) ' 555 @
%
'
' %
2' ' %
R'
' %
%
$
R '
%
A @
@ @' @ 3 '
R '
A @
Podobnie jak w poprzednim algorytmie na pocztku macierz a zawiera dugoc s krawdzi e , a je eli takiej kraw dzi nie ma, to z e . Zbir zawiera wierzchoki, dla ktrych nie jest jeszcze wyliczona dokadna odlegoc od . Poni ej poka es z z my, ze dla , zawiera dugoc najkrtszej spord drg, ktrej przedostatni s s wierzchoek nale y do z . Nast pnie w ka dej iteracji zewn trznej p tli bierzemy e z e e , ktry le y najbli ej od . Jak si za chwile oka e ten wierzchoek ma z z e z wierzchoek ju prawidow wartoc z a s i dlatego jest on usuwany z . Teraz korygujemy wartoci s dla pozostaych wierzchokw z uwzgl dniaj c drogi, w ktrych wierzchoek e a jest przedostatni. Przykad 1.6 Rysunek 1.3 przedstawia graf z dodatnimi dugociami kraw dzi. Ponis e z sza tabela ilustruje dziaanie algorytmu Dijkstry. Pokazuje jak w kolejnych iteracjach zewn trznej p tli wybrano wierzchoek oraz jak przedstawiaj si zbir i macierz . e e a e iteracja 0 1 2 3 4 5
%
Aby udowodni poprawnoc tego algorytmu, poka emy przez indukcj, ze po ka dej itec s z e z racji p tli mamy e (a) dla ka dego wierzchoka z drogi z do . ,
(b) dla ka dego wierzchoka z , zawiera dugoc minimalnej spord wszysts s kich drg z do , w ktrych przedostatni wierzchoek nale y do z Przed pierwsz p tl tylko a e a , a dla ka dego innego wierzchoka z , . Warunki (a) i (b) s wi c spenione, Poniewa w najkrtszej drodze do a e z nie ma p tli, wi c drogi, w ktrych jest przedostatni skadaj si tylko z jednej krawdzi. e e a e e
'
R '
2 2 2 2 2
4 4 4
0 0 0 0 0 0
1 1 1 1 1 1
5 4 3 3 3 3
6 6 5 5
! ! ! % ! % % % % %
$ %
! "
$ %
' %
' %
R'
R'
! ! ! !
$ %
'
'
(' ' %
' %
W kolejnej iteracji wybieramy wierzchoek , dla ktrego jest najmniejsza. Poka emy, ze wartoc z s jest ju ostateczna, czyli jest rwna dugoci najkrtszej spord z s s wszystkich drg z do . Przypucmy, ze istnieje krtsza droga i niech b dzie takim s e wierzchokiem, ze droga z do zawiera tylko wierzchoki z i wierzchoek przed nie nale y do . Mamy z , bo inaczej mielibymy sprzecznoc z zao eniem induks s z zawiera dugoc najkrtszej spord drg, z ktrych przedostatni wierzs s cyjnym, ze choek nie jest z . Zauwa my, ze droga z do ma dugoc rwn aktualnej wartoci z s a s . Z drugiej strony poniewa dugoci s nieujemne mamy z s a
sprzecznoc z zasad wyboru . s a Dlatego mo e by usunity z . Nast pnie algorytm sprawdza dla ka dego z c e e z , czy istnieje jaka droga z do , w ktrej wierzchoek jest przedostani i ktra jest krts sza od aktualnej wartoci s . Zauwa my, ze dotychczasowa wartoc z s zawieraa dugoc najkrtszej drogi do , w ktrych przedostatnim wierzchokiem by jaki wierzs s choek z r ny od . Dlatego po tym sprawdzeniu b dzie speniony warunek (b). z e Czas dziaania algorytmu Dijkstry jest , poniewa mamy tylko podwjne zaz gnie d enie p tli i liczba iteracji obu jest ograniczona przez . z z e
Dowd: We my dowolny wierzchoek . Je eli nie wchodzi do niego, zadna kraw d , z z e z to koniec, znale limy. Je eli wchodzi, to niech b dzie wierzchokiem, z ktrego proz s z e wadzi kraw d do . Albo e z jest dobry, albo prowadzi do niego kraw d od jakiego e z s wierzchoka itd. Poniewa zbir wierzchokw jest skonczony i nie ma w nim cyz klu, wi c ten ci g musi si kiedy sko czy i dojdziemy do wierzchoka, do ktrego nie e a e s n c prowadz zadne krawdzie. a e Lemat 1.8 W skierowanym grae acyklicznym mona tak ponumerowa z c wierzchoki, aby kada kraw d prowadzia od wierzchoka z niszym numerem do wierzz e z z choka z wyszym numerem, czyli istnieje wzajemnie jednoznaczna funkcja z taka, ze jeeli z , to . Dowd:
R '
' %
$ %
$ % ! C ! % $
P' IP$
'
R $
3'
R 2'`P$
$ %
'
$ ' '
$ % $ 3 V'
$ %
'
#
# 86761A 555
10
Jako dowd przedstawimy algorytm, ktry odpowiednio numeruje wierzchoki grafu kolejnymi liczbami naturalnymi. Najpierw s numerowane i usuwane z grafu wierza choki, do ktrych nie wchodz zadne kraw dzie. Po usuni ciu tych wierzchokw i a e e wychodzcych z nich kraw dzi znowu otrzymamy graf bez cykli, ktry zawiera wierza e choki bez wchodzcych krawdzi. Teraz te z koleji wierzchoki s numerowane kolejnya e a mi numerami i usuwane z grafu, i tak dalej a do ponumerowania wszystkich wierzchoz kw. Rysunek 1.4: Graf acykliczny
Przykad 1.9 Zastosujmy powyszy algorytm do grafu z rysunku 1.4. Wierzchokami bez z wchodz cych kraw dzi s i . Przypisujemy wi c a e a e i oraz usuwamy i z grafu wraz z wychodz cymi z nich kraw dziami. Teraz wierzchoek nie ma a e wchodz cych kraw dzi, przypisujemy mu a e i usuwamy z grafu. W dalszych krokach algorytm przypisze wartoci s , oraz . Ostatecznie hunkcja ma posta : c
Przedstawimy teraz algorytm wyliczaj cy odlegoci z do wszystkich wierzchokw w a s grae acyklicznym. Zakadamy przy tym, ze w grae wierzchoki s ponumerowane a tak, jak opisano to w lemacie 1.8. Bez straty oglnoci mo na zao y , ze jest pierwszy, s z z c z poniewa nie ma scie ek z do wierzchokw o ni szych numerach. z z
dla ka dego z
podstaw
dla ka dego z
dla ka dego z
' %
, dugoci krawdzi s e
Y
'
s 1
a 4
b 2
c 3
d 5
t 6
A
!
!
R '
R '
1.6. Zadania
11
Udowodnimy przez indukcj, ze po -tej iteracji zewntrznej p tli wierzchoki o nue e e merch od 1 do maj ju prawidowe wartoci w macierzy . Po pierwszej iteracji a z s ma prawidow wartoc a s . W tej iteracji p tli (zakadamy, ze wierzchoki o e numerach od 1 do maj ju prawidowe wartoci w macierzy ) obliczamy a z s . Zauwa my, ze najkrtsza droga z do przebiega przez wierzchoki o mniejszych od z numerach. Niech b dzie przedostatnim wierzchokiem na tej drodze. Dugoc tej drogi e s wynosi i zostanie odnaleziona w p tli. e Poniewa mamy podwjne zagnie d enie p tli i w obu liczba iteracji jest ograniczona z z z e przez , czas dziaania algorytmu jest . Przykad 1.10 (kontynuacja przykadu 1.9) Jeeli zastosujemy ten algorytm do grafu z z rysunku 1.4, to w kolejnych iteracjach zewn trznej p tli obliczy on e e , , , , oraz .
1.6 Zadania
1. Narysuj wszystkie grafy skierowane ze zbiorem wierzchokw z nich s spjne? Ktre z nich s izomorczne? a a
. Ktre
Wskazwka: Denicja izomorzmu grafw skierowanych jest taka sama jak dla grafw nieskierowanych. 2. Ktre z grafw przedstawionych na rysunkach w tym rozdziale s spjne? a 3. Narysuj mo liwie jak najwi cej nieizomorcznych grafw skierowanych z trzema z e wierzchokami . 4. Narysuj par r nych i izomorcznych grafw skierowanych z mo liwie najmniejsz e z z a liczb wierzchokw. a Rysunek 1.5: Graf skierowany
5. Zastosuj algorytm Dijkstry i znajd najkrtsz drog z do w grae z rysunku 1.5. z a e 6. Zastosuj algorytm Forda-Bellmana do grafu z rysunku 1.5. 7. Znajd najkrtsz drog z do w grafach z rysunkw 1.3 i 1.4. z a e 8. Zastosuj algorytm Forda-Bellmana do grafw z rysunkw 1.3 i 1.4.
@ %
!
% %
%
A
! %
A % %
12
1.7 Problemy
1.7.1 Cykl Eulera w grae skierowanym
Cykl Eulera w grae skierowanym jest to droga zamkni ta przechodzaca przez ka da e z kraw d grafu dokadnie jeden raz. Udowodnij, ze je eli graf skierowany jest spjny jako e z z graf nieskierowany, to ma cykl Eulera wtedy i tylko wtedy, gdy w ka dym jego wierzz choku liczba kraw dzi wchodzacych jest rwna liczbie kraw dzi wychodzacych. Je eli e e z w grae jest p tla e , to liczymy ja jako kraw d wchodzaca do i jako wychodzaca e z z . Zaproponuj algorytm wynajdywania cyklu Eulera w grae skierowanym. Ktre z grafw przedstawionych na rysunkach w tym rozdziale maj cykle Eulera? a
A X
'
A 1A
R ('&%$
A
' $ ' $ R A 3 H 7
A 1A
$&%$
AA 10A A
Rozdzia 1
Kombinatoryka
1.1 Ci gi a
Zastanwmy si , ile ci gw dugoci mo na utworzy z elementw zbioru zawieraj cego e a s z c a symboli. Je eli zbir symboli zawiera dwa elementy: z
Aby uzyska ci gi dugoci trzy, post pujemy w nast puj cy sposb: bierzemy cztery c a s e e a ci gi dugoci dwa i najpierw do ka dego z nich dopisujemy na pocz tku . Otrzymujemy a s z a w ten sposb komplet:
Zauwa my, ze s to wszystkie ci gi dugoci trzy z pierwsz liter . Potem do tych z a a s a a samych czterech ci gw dugoci dwa dopisujemy na pocz tku symbol i otrzymujemy a s a komplet: Komplety te s roz czne i oba zawieraj r ne ci gi. Razem tworz zbir wszystkich a a a z a a ci gw dugoci trzy: a s
Dowd przez indukcj . Jak ju pokazano, s dwa ci gi dugoci jeden. e z a a s i zauwa my, ze wszystkich z Za my teraz, ze liczba ci gw dugoci wynosi z a s ci gw dugoci a s jest dwa razy wi cej. Jest e ci gw z pierwszym elementem i a ci gw z pierwszym elementem . Razem mamy a ci gw dugoci a s . Je eli zbir symboli zawiera elementw, to powtarzajc powy sze rozumowanie, z a z mo emy si przekona , ze istnieje ci gw dugoci jeden, z e c a s ci gw dugoci dwa i a s oglnie ci gw dugoci a s jest razy wi cej ni ci gw dugoci . Zachodzi zatem e z a s twierdzenie. Twierdzenie 1.2 Liczba ci gw dugoci a s nosi . o elementach ze zbioru -elementowego wy %$
1.2 Funkcje
0 1
opisuje jedn funkcj. Mianowicie funkcj, ktra dla ka dego przypisuje wartoc a e e z s .
0
6
8
6 6 2
to ci g a
@9 5A1 6
7 7 6 6
B 2
2
Ci g ten jest dugoci , a jego elementy s wzi te ze zbioru a s a e funkcji odpowiada jeden ci g, i na odwrt, ka dy ci g a z a
" '
2 2 2
Ka d funkcj z a e
mo na przedstawi jako ci g z c a
w zbir
. Przypucmy, ze zbir s
zawiera
" #!
' (
wynosi
)
4 !
3 2
&
Z powy szego wynika, ze funkcji ze zbioru w zbir jest tyle samo co ci gw dugoci z a s z elementami ze zbioru . Udowodnilimy wi c poni sze twierdzenie. s e z
1
Twierdzenie 1.4 Jeeli zbir zawiera elementw, a zbir z liczba funkcji ze zbioru w zbir wynosi .
1 0 0
zawiera
Nie ma, oczywicie, du szych ci gw r nowartociowych utworzonych z elementw s z a z s zbioru . Twierdzenie 1.5 Jeeli elementy wybieramy ze zbioru -elementowego , to liczba ci gw z a -elementowych bez powtrze , ktre mona wybra z tego zbioru, wynosi: n z c
0
Dowd. Je eli budujemy ci g bez powtrzen, to na pierwszy element ci gu mo emy wyz a a z bra ka dy z elementw zbioru , na drug pozycj w ci gu mo emy wybra ju tylko c z a e a z c z jeden z elementw (wszystkie poza tym, ktry zosta wybrany na pierwszy element ci gu) i tak dalej, na ka d kolejn pozycj mamy o jeden element do wyboru mniej. a z a a e Zauwa my, ze je eli z z , to: , co jest zgodne z tym, ze w takim przypadku nie mo na utworzy zadnego -elementowego ci gu bez powtrzen z c a z elementami ze zbioru .
0 &
6
6
6
B)
9 6
6
6 9
7 6
6 9
6 7
9 6
6 9
6 @9
0
elementw, to
, a ko cz c n a
Rozdzia 1. Kombinatoryka
1.4 Permutacje
Permutacje to ci gi bez powtrzen dugoci , wybierane ze zbioru -elementowego. Na a s przykad, mamy dwie permutacje dwuelementowe:
Dla ka dego z
Dowody wzoru Stirlinga oraz powy szych oszacowan wychodz poza zakres tego podrcznika. z a e Czasami u ywa si innej denicji permutacji. Mianowicie permutacja -elementowa z e to dowolna funkcja r nowartociowa ze zbioru z s na ten sam zbir. Na oznaczenie permutacji u ywa si zapisu: z e
6 8
8 6
7 9
8 B 8 6 8
4 13 52
7 8
% 0
# )
6
! "
'
6
' (
% &
# $
! "
Dodatkowo przyjmujemy
. Mamy wi c e
"
6 6 7 7 9 9 6 6 6 6
(1.1)
(1.2)
1.5. Podzbiory Dwie permutacje -elementowe mo na skada tak, jak skada si funkcje. Zo enie z c e z permutacji i okrelone jest wzorem: s
!
Na przykad:
Wrd permutacji istnieje identycznoc , czyli permutacja, ktra ka demu z s s z . Identycznoc jest elementem neutralnym s dziedziny przypisuje wartoc s skadania permutacji, poniewa dla ka dej permutacji : z z
!
Powy sze zale noci oznaczaj, ze zbir wszystkich permutacji na zbiorze z z s a dziaaniem skadania permutacji stanowi grup. e
1.5
Podzbiory
Policzmy teraz, ile podzbiorw ma skonczony zbir -elementowy. Je eli zbir skada z si z trzech elementw: e to mo emy atwo wypisa wszystkie jego podzbiory: z c
Tych podzbiorw jest osiem. Ka dy zbir trzyelementowy posiada osiem podzbiorw, z poniewa nie ma znaczenia, jak nazywaj si elementy zbioru. Zbir pusty ma tylko jeden z a e podzbir: zbir pusty. Je eli zbir zawiera jeden element z , to ma dwa podzbiory:
"
3
"
"
"
!
'
7 9
8 8 "
3
'
"
! 6
'
"
'
Rozdzia 1. Kombinatoryka
jest zwi zana jego funkcja charakterystyczna, okrelona nast puj cym wzorem: a s e a
Dziedzin funkcji a jest zbir , a przeciwdziedzin zbir a . Zauwa my, z ze ka demu podzbiorowi odpowiada jedna funkcja charakterystyczna, i na odwrt, je eli z z we miemy dowoln funkcj: z a e
Z powy szych rozwa a wynika, ze liczba podzbiorw zbioru -elementowego jest rwz z n na liczbie funkcji ze zbioru w zbir . Czyli na podstawie twierdzenia ?? mamy twierdzenie poni sze. z
podzbiorw.
9 0 6
@9 6 8
0
@8
3 3 0
3 3
7 6
7 0 6
Z ka dym podzbiorem z
9 6
8 7 6
, to ma cztery podzbiory:
7 6
8 6 @9 7
Jest to tak zwany symbol Newtona. Inaczej, jest rwne liczbie sposobw na jakie mo na wybra elementw ze zbioru elementowego. Wanie pokazalimy, ze: z c s s
Wzr (??) bierze si z prostej obserwacji, ze wybranie elementw, ktre nale a do e z z elementw, ktre do nie nale a. z podzbioru , jest rwnowa ne wybraniu Aby uzasadni rwnoc (??), rozwa my -elementowe podzbiory zbioru c s z
0
Policzmy osobno te podzbiory, ktre zawieraj element a , i osobno te, ktre go nie zawieraj . Podzbiorw nie zawieraj cych a a jest , bo wszystkie elementw trzeba wybra ze zbioru c . Podzbiorw zawierajcych a jest , bo elementw trzeba wybra ze zbioru c . Razem wszystkich -elementowych podzbiorw zbioru jest . Korzystajc z rwnoci (??), mo emy oblicza symbole Newtona rekurencyjnie. Naja s z c pierw mamy , poniewa jest jeden zeroelementowy (pusty) podzbir zbioru zeroz elementowego (pustego). Je eli mamy ju policzone symbole Newtona dla , to mo emy z z z liczy , ile jest podzbiorw zbioru c -elementowego. Zaczynamy od oraz , a nast pnie korzystamy z rwnania (??). Metod t ilustruje tak zwany trjk t e e e a Pascala: 1 1 1 1 1 1 1 6 5 15 4 10 20 3 6 10 15 2 3 4 5 6 1 1 1 1 1 1
"# " #
"
"
, to
7
8 9 6
8
@8 9 6
7 6 @9 9 8 6
@9 8
7
8
@9 6
6
7
" #
10
Rozdzia 1. Kombinatoryka
Na skraju znajduj si jedynki, poniewa a e z . -ty element w -tym wierszu dla jest sum dwch elementw stoj cych bezporednio nad nim: a a s
Je eli z
Oto uzasadnienie wzoru (??): Aby wybra podzbir -elementowy ze zbioru c , wybieramy -elementowy ci g bez powtrzen i bierzemy do podzbioru elementy tego a ci gu ignorujc ich kolejnoc. Poniewa ka demu -elementowemu podzbiorowi odpoa a s z z wiada ci gw o tych samych elementach, wi c podzbiorw jest a e razy mniej ni z -elementowych ci gw bez powtrzen. Wzr (??) wynika teraz z twierdzenia ??, a a wzr (??) bezporednio ze wzoru (??). s Wzr (??) pozwala wyprowadzi oszacowania na wartoc symbolu Newtona, dla c s :
'
Poniewa , jak atwo sprawdzi z c dla ka dego z . Korzystaj c a wyprowadzonej ze wzoru Stirlinga (??), otrzymujemy grne z nierwnoci s ograniczenie:
B
'
'
'
'
lub
B
7 7
7
6 6
'
'
'
'
(1.5)
(1.6)
'
11
razy
Przy rozwijaniu tego wyra enia wybieramy z ka dego czynnika lub , potem wymnaz z zamy wybrane elementy i sumujemy tak utworzone iloczyny. W iloczynie otrzymamy wtedy, gdy wybierzemy razy oraz wybierzemy razy. Mo na to zrobi na z c sposobw, tak wi c wspczynnik przy wynosi e .
Drugi dowd przez indukcj . Wzr jest oczywisty dla e prawdziwy dla . Mamy:
. Za my teraz, ze jest z
Pierwszy skadnik pochodzi od iloczynu: , a drugi od iloczynu: . Ze . wzoru (??) wynika, ze wspczynnik przy wynosi Je eli do wzoru Newtona podstawimy z , a potem pomno ymy obie strony przez , z to otrzymamy inn znan wersj wzoru Newtona. a a e
co potwierdza jeszcze raz, ze wszystkich podzbiorw zbioru -elementowego jest . Zobaczymy teraz, ze wrd wszystkich podzbiorw zbioru s jest tyle samo podzbiorw mocy parzystej (o parzystej liczbie elementw) i podzbiorw mocy nieparzystej (o nieparzystej liczbie elementw). Twierdzenie 1.11 Dla kadego zbioru zawieraj cego elementw, liczba podzbiorw z a parzystej mocy jest rwna liczbie podzbiorw nieparzystej mocy.
Je eli podstawimy z
&
" #
"
"
Wspczynnik przy
6
# "
12
Rozdzia 1. Kombinatoryka
0
Zauwa my, ze w sumie po prawej stronie z plusem wyst puj symbole Newtona z e a dla parzystych , a z minusem dla nieparzystych . Tak wi c z plusem mamy liczb e e podzbiorw parzystej mocy, a z minusem liczb podzbiorw nieparzystej mocy. Z powy e z szego wzoru wynika, ze podzbiorw parzystej mocy jest tyle samo co podzbiorw mocy nieparzystej. z Drugi dowd. Rozwa my funkcj , ktra ka demu podzbiorowi z e
przyporzdkuje podzbir a
czyli r nic symetryczn zbioru z e a i zbioru jednoelementowego . Zauwa my, ze z funkcja czy podzbiory w pary, poniewa je eli a z z , to . Rzeczywi i . Je eli natomiast nie zawiera z scie, je eli zawiera , to z , to i rwnie z . Pozostaje zauwa y , ze z pary zbiorw i z c jeden jest mocy parzystej i jeden nieparzystej.
1.9
Zasada sumy
1
1
0 1 0 1 0
jest rwna
&
0
0 1 2
0
0
0 2
0 B
0 2
0
0
0 B
1 0 A1
0 2
A1
13
Wyobra my sobie, ze obliczaj c praw stron tej rwnoci liczymy po kolei elementy z a a e s zbioru i dla ka dego elementu dodajemy z do oglnej sumy, nast pnie liczymy elee menty zbiorw i dla ka dego dodajemy z , a na koncu liczymy elementy przekroju i dla ka dego dodajemy . Zastanwmy si teraz jaki jest udzia poszczeglnych z e elementw w tak powstaej sumie. Je eli jaki element wyst puje tylko w lub tylko w z s e , to jego udzia wynosi 1. Ale tak e, je eli nale y do obu zbiorw i to jego udzia z z z wynosi . Dlatego na ko cu wynik b dzie rwny liczbie elementw, ktre n e nale a do jednego lub drugiego zbioru. z Przykad 1.13 Policzmy ile spord liczb od 1 do 30 jest podzielnych przez 2 lub 3. Niech s oznacza zbir liczb z tego przedziau podzielnych przez 2, a zbir liczb podzielnych przez 3. Liczby podzielne przez 2 lub 3 tworz zbir a . Mamy
0 1 0
oraz
zawiera liczby podzielne przez 2 i 3, czyli podzielne przez 6. Ze wzoru na sum e otrzymujemy: Podobnie mo emy uzasadni wzr na sum trzech zbiorw: z c e
B$ $B$ 1 0 1 0 1 0 1 0 1 0
Je eli zastosujemy podobne liczenie, to udzia elementw, ktre nale a tylko do jednego z z zbioru, wynosi 1, tych, ktre nale a do dwch (ale nie do trzech naraz), wynosi z , a tych, ktre nale a do wszystkich trzech zbiorw, z . Przykad 1.14 Policzmy ile spord liczb od 1 do 30 jest podzielnych przez 2, 3, lub 5. s Niech oznacza zbir liczb podzielnych przez 2, zbir liczb podzielnych przez 3, a podzielnych przez 5. Mamy , , , , , , . Ze wzoru na sum otrzymujemy: e
Jak wida , tylko osiem liczb mniejszych od 30 nie jest podzielnych przez 2, 3 lub 5; s to: c a 1, 7, 11, 13, 17, 19, 23, 29. W nast pnym podrozdziale poka emy jak mo na obliczy sumy dowolnej sko czonej e z z c n klasy zbiorw.
1.10
Zacznijmy od przykadu. W grupie 100 studentw 45 uprawia koszykwk, 53 pywanie, e a 28 jedno i drugie. Pytanie: ilu studentw nie uprawia ani koszykwki, ani pywania? Zadanie to mo na rozwi za na palcach. z a c studentw uprawia tylko koszykwk, a e studentw uprawia tylko pywanie. Zatem
' 0
B
0 ' 0
' 0
0
0 ' 0
' 0
0 ' 0
' 0
' 0
' 0
0 1
14
Rozdzia 1. Kombinatoryka
pywanie
25
28
30 17
koszykwka
studentw uprawia jeden z dwch sportw, a nie uprawia ani koszykwki, ani pywania. Na rysunku 1.1 zilustrowano ten przykad. Jest to tak zwany diagram Venna . Przypucmy teraz, ze s tak e studenci graj cy w szachy. Graj cych w szachy jest s a z a a 55. Takich, ktrzy graj w koszykwk i szachy, jest 32, takich, ktrzy graj w szachy a e a i pywaj , jest 35, a takich, ktrzy uprawiaj wszystkie trzy sporty, jest 20. To zadanie a a te mo na rozwi za za pomoc diagramu Venna (rysunek 1.2). Na przykad, 8 studenz z a c a tw uprawia koszykwk i pywanie, ale nie gra w szachy, a 22 studentw nie uprawia e zadnego sportu. Zasada w czania i wy czania pozwala rozwi zywa tego typu zadania bez diagraa a a c mw Venna.
"
Niech
6
15
pywanie 22 10 15 8 20
12 szachy koszykwka
"
przyjmujemy przy tym W naszym przykadzie to zbir wszystkich studentw, pywanie, a szachy:
4 0
to uprawiajcy koszykwk, a e
4
0
deniujemy zbir:
' 0
' 0
"
"
"
'
0
' 0
16
Rozdzia 1. Kombinatoryka , kt
Twierdzenie 1.15 (zasada w czania i wy czania) Liczba elementw uniwersum a a re nie nalea do zadnego podzbioru , wynosi: z
Dowd. Podobnie jak w poprzednim podrozdziale, zeby obliczy sum (??), liczymy ele c e , i dla ka dego elementu dodajemy z do sumy menty poszczeglnych zbiorw ( , gdy jest parzyste, lub , gdy jest nieparzyste). Udzia pojedynczego elementu w tak utwirzonej sumie wynosi
czyli jest rwny sumie wspczynnikw dla tych podzbiorw , dla ktrych . Je eli nie nale y do zadnego z podzbiorw , to jest liczony tylko raz, w zbioz z rze , i jego udzia w sumie (??) wynosi 1. Przypucmy teraz, ze nale y do jaki s z s podzbiorw i niech czyli to indeksy tych podzbiorw, ktre zawieraj . Zauwa my teraz, ze a z wtedy i tylko wtedy, gdy . Rzeczywicie s wtedy i tylko wtedy, gdy , dla ka dego z , czyli gdy . Tak wi c udzia elementu w sumie (??) e wynosi:
Przedostatnia rwnoc wynika ze wzoru Newtona. s Tak wi c wkady elementw, ktre nie nale a do zadnego , wynosz po 1, a wkady e z a tych elementw, ktre nale a do jakiego , wynosz po 0. A zatem suma (??) zlicza z s a elementy nie nale ace do zadnego . z Stosuj c zasad w czania i wy czania do przykadu ze studentami mo emy teraz a e a a z policzy studentw, ktrzy nie uprawiaj zadnego sportu: c a
6 " 6 6 % 8 0 ' 0 0 0 ' 0 0 " 0 ' 0 " 0 0 ' 0 " 0 ' " 0 ' 0 " 0 ' " 0 0 ' 0 " 0 0 & 4 0 4 0 4 0
4
4 0
4 0
.
0
4 0
"
3
4 0
(1.7)
3
0
4 0
17
1.11 Przestawienia
Przestawieniem b dziemy nazywa permutacj bez punktu staego, czyli tak permutacj, e c e a e w ktrej zaden element nie stoi na swoim miejscu. Wykorzystamy teraz zasad w czania e a i wy czania, do policzenia liczby przestawien w zbiorze -elementowym. a Twierdzenie 1.17 Liczba przestawie (permutacji bez punktw staych) w zbiorze n elementowym wynosi:
poniewa w zbiorze z s te permutacje, ktre permutuj wszystkie a a wynosi: oprcz -tego. Podobnie moc zbioru
elementw
bo teraz w permutujemy elementw, wszystkie oprcz tych, ktre nale a do . z Permutacje bez punktw staych to te permutacje, ktre nie nale a do zadnego ze zbiorw z . Z zasady w czania i wy czania ich liczba wynosi: a a
Pogrupujmy teraz skadniki wedug mocy zbiorw . Mamy podzbiorw mocy . Dla ka dego z nich skadnik sumy wynosi z , tak wi c liczba przestawie wynosi: e n
3 4
4 0
3 B
Dowd. Niech b dzie zbiorem wszystkich permutacji na zbiorze e zbiorem permutacji, w ktrych jest punktem staym, to znaczy wynosi:
,a . Moc zbioru
4 0
4
3
4 0
6 4
"
3 0
Twierdzenie 1.16
"
4 0
"
. Mamy wtedy
4 0
4 0
18
Rozdzia 1. Kombinatoryka
Przetwarzamy bie acy obiekt tak, aby otrzyma nast pny obiekt. z c e
Takie algorytmy maj t zalet , ze nie wymagaj du o pamici. Nale y tylko pami ta c a a e a z e z e jeden obiekt. Algorytmy generujce obiekty s u ywane w przypadku, gdy chcemy sprawdzi c wszysta a z kie obiekty danej klasy lub wtedy, gdy chcemy wylosowa obiekt danej klasy. Przypucc s my, na przykad, ze chcemy wylosowa jaki 3 elementowy podzbir zbioru c s . W tym celu losujemy liczb naturaln od 1 do e a , a nast pnie generujujemy e podzbiory, a do elementu . z
podzbir:
rem.
do
i usuwamy z
3
&
3
6 7 6
19
Zauwa my, ze funkcje charakterystyczne wypisywanych podzbiorw, traktowane jaz ko binarny zapis liczb, tworz ci g kolejnych liczb od 0 do a a . Szukaj c nast pnego a e z kolei elemenetu algorytm post puje podobnie jak algorytm zwi kszania o jeden liczby e e w systemie dwjkowym.
Pierwszy -podzbir to
.
"
, gdzie
Dla i algorytm wypisze po kolei nast puj ce podzbiory (podajemy je bez e a nawiasw i przecinkw)
, z dopisan 5 i 6: a
ktre otrzymywane s w ten sposb, ze do kolejnych 3-podzbiorw zbioru a dopisywana jest 6. Jest to oglna zasada dziaania tego algorytmu: aby wypisa -podzbiory zbioru c algorytm najpierw wypisuje podzbiory zbioru , a nast pnie podzbiory e zawieraj ce element (s one otrzymywane przez dodawanie do a a podzbiorw zbioru ). W powy szym przykadzie wrod podzbiorw zawierajcych 6 najpierw mamy te, z s a ktre s utworzone z 3-podzbiorw a z dopisan 6: a
8 6 9
8 6 9
@8
9 6
8 6
8 6 8 6 8 6
6 8 6 8 6 8 6 6 8 6 8 6 8 8
8 6 8 6 6 8
je eli z niamy na
8 3
9 6
" 0
A
8 6 6 8 6 8
4
3
20
Rozdzia 1. Kombinatoryka
"
Dlatego, kiedy w bierzcym zbiorze a algorytm znalaz takie , ze , to znaczy, ze algorytm jest w trakcie wypisywania tych podzbiorw, kt re zawieraj a (wszystkie wi ksze od e ), plus jaki -podzbir zbioru s . Zbir jest ostatnim podzbiorem, w ktrym wyst puj e a , oraz jaki -podzbir zbioru s , a nie wyst puje e . Wedug opisanej wy ej z plus jaki s -podzbir zasady teraz powinny nast pi podzbiory, ktre zawieraj a c a zbioru , plus elementy . Pierwszy z nich to podzbir
Alorytm wypisuje permutacje w porz dku rosn cym, je eli potraktujemy permutacje a a z jako liczby zapisane z baz a , a liczby jako cyfry w tym systemie. Na przykad przypucmy, ze bierz c permutacj jest s a a a . Algorytm znajduje i . Wtedy ta permutacja jest ostatni (najwi ksz ) permutacj spord pera e a a s mutacji zaczynajcych si od a e , bo od pozycji trzeciej mamy ci g malej cy a a i jest to najwi kszy ci g jaki mo na utworzy z elementw 1,2,5,6. Teraz powinny nast pi e a z c a c (czwrki na pierwszym miejscu nie zmieniamy, a permutacje zaczynaj ce si od a e trjka na drugim miejscu powinna by zamieniona przez nast pn sporod liczb stoj cych c e a s a za ni , czyli przez 5). Pierwsz tak permutacj jest ta, w ktrej pozostae elementy rosn , a a a a a czyli . Przykad 1.19 Oto 10 pierwszych permutacji czteroelementowych
1.13 Zadania
1. Ile numerw rejestracyjnych samochodw mo na utworzy , je eli ka dy numer z c z z skada si z trzech liter i czterech cyfr? e Ile numerw rejestracyjnych mo na utworzy , je eli b dziemy dodatkowo wymaz c z e ga , aby ka dy numer zaczyna si od spgoski? c z e
8 6 8 8 6 8 6 8 8 6 8 6 8 8 6 8 6 8 8 6 6 6 6 6
" #
je eli takie istnieje, to zamieniamy z najmniejszym z oraz , a nast pnie odwracamy porzdek elementw e a
takim, ze .
" #
68
8
"
permutacj: e
"
4 4
4 "
3 '
4
" #
3 B 4 4
3
8 6
" 4 4
6 8
0 3
4
21
3. W grupie jest pi c dziewcz t i pi ciu chopcw. Na ile sposobw mo na wybra e a e z c podgrup skadaj c si z dwch dziewcz t i dwch chopcw? e a a e a Na ile sposobw mo na utworzy w tej grupie pi c par, z jednym chopcem i jedn z c e a dziewczyn w ka dej parze? a z 4. Znana jest zabawka dla dzieci skadaj ca si z dwunastu szeciennych klockw z a e s naklejonymi na sciankach fragmentami obrazkw. Na ile sposobw mo na uo y z z c te klocki w prostokt (trzy rz dy po cztery klocki w rz dzie)? a e e 5. Ile sw mo na utworzy z liter sowa ULICA (litery nie mog si powtarza )? z c a e c
Wskazwka. Policz na dwa r ne sposoby, ile -elementowych dru yn z kapitanem z z mo na utworzy ze zbioru sportowcw. z c 7. Udowodnij wzr:
Wskazwka. Policz na dwa r ne sposoby, ile -elementowych grup mo na utwoz z rzy w klasie zo onej z chopcw i dziewczt. c z a
11. Udowodnij, ze
15. Oblicz ile liczb mniejszych od 100 jest podzielnych przez 2, 3 lub 5.
oraz oraz
, wiedz c, ze a
1 0
i ?
6 4
"
' '
'
'
"
6. Udowodnij wzr:
1
22
Rozdzia 1. Kombinatoryka
16. Oblicz ile liczb mniejszych od 100 nie jest podzielnych przez 2, 3, 5 lub 7. Udowodnij, ze wszystkie te liczby oprcz 1 s pierwsze. Ile jest liczb pierwszych mniej a szych od 100? 17. Wypisz wszystkie podzbiory zbioru
8
18. Wypisz wszystkie 2 elementowe podzbiory zbioru 19. Wypisz 14 kolejnych permutacji zbioru 456321.
poczynajc od permutacji a
20. Napisz programy realizuj ce opisane w tym rozdziale algorytmy generowania obieka tw kombinatorycznych.
1.14 Problemy
1.14.1 Rozmieszczanie przedmiotw w pudekach.
Przypucmy, ze mamy s
z c Wskazwka. Ka de rozmieszczenia kul w pudekach mo e by przedstawione jako z ciag zer i jedynek dugosci , w ktrym wyst puje dokadnie e jedynek. Zera symbolizuja kule a jedynki przegrody pomi dzy pudekami. Na przykad ciag e przedstawia rozo enie pi ciu kul do czterech pudeek, w ktrych pierwsze pudeko zaz e wiera dwie kule, drugie jest puste, trzecie zawiera jedna kule, a czwarte dwie kule.
Wyobra my sobie, ze mamy przedmioty w r nych typach, ze liczba przedmiotw ka z z z dego typu jest nieograniczona i ze przedmioty jednego typu sa nierozr nialne. Zasta z nwmy si na ile sposobw mo na wybra przedmiotw spord tych typw, przy e z c s zao eniu, ze dopuszczalne sa powtrzenia typw. Poka , ze mo na to zrobi c na z z z
sposobw. Na ile sposobw mo na wybra 5 monet je eli mamy nieograniczone zapsy zotwek, z c z dwuzotwek i pi ciozotwek? e Wskazwka. Wybory przedmiotw typw sa rwnowa ne rozkadaniu nierozr nial z z nych kul do szuad. Wo enie kuli do -tej szuady oznacza, ze jest ona tego typu. z
3 3
1.14.2 Wybr
przedmiotw
9 7 8 6 9 9 8 6
7
9 6
. .
1.14. Problemy
23
Ile sw mo na utworzy z liter sowa MATMA (litery M i A mog wyst pi po dwa z c a a c razy)?
i liczby
takie, ze
. Poka , ze z
sposoby podzieli na podzbiorw c , takich, ze tym, ze kolejnoc podzbiorw jest istotna. s Na ile sposobw mo na rozda 52 kartry na cztery osoby? z c
. Zakadamy przy
4 (
4 0
" '
"
24 oraz z oszacowania:
Rozdzia 1. Kombinatoryka
Wskazwka. Skorzystaj z zasady w czania i wy czania dla zbioru wszystkich funkcji ze a a zbioru w zbir . Zbir to funkcje, ktre nie maj elementu w a obrazie.
3 4 0
3
'
3 4
3
6 4
" #
Rozdzia 1
Oznaczenia
W tym rozdziale przedstawimy podstawowe oznacznia. oznacza kwantykator oglny "dla ka dego". oznacza kwantykator szczegowy z "istnieje".
1.1 Sumy
Maj c dany sko czony ci g a n a , ,... , sum jego elementw zapisujemy jako e
T ` Y V aXW)FW)XW))#
I P8
(wzr (1.2) jest suszny dla ka dego z B dziemy te u ywa zapisu typu e z z c
5 "&
#"!
41
2 3
8 8 &Q 8 B !A
1 ( )"! 0)
& '
& @
$ %
T R UR S
8 6 97
(1.1)
(1.2)
Rozdzia 1. Oznaczenia
W tym przypadku zbir indeksw okrelony jest za pomoc warunku pod znakiem sumy. s a Warunek okrelaj cy indeksy, po ktrych nale y sumowa mo e by bardziej skomplikos a z c z c wany, na przykad
Za pomoca podwjnej sumy mo emy na przykad przedstawi uoglnione prawo roz z c dzielnoci mno enia wzgl dem dodawania: s z e
1.2 Iloczyny
#
Aby zapisa iloczyn elementw ci gu c a , ,... , stosujemy zapis
V V ) V ) V ) ) V
R8 7 Q
B CR 9
2 ` V 1)X)
#! ! "#
S E
DF
I G PHR 9
0 ( G ' G % 1)&&G
B HR
R S
@A
" !
T Y a
(1.3) (1.4)
&
FE D
DF
" !
B CR
B HR
R S
5 7 86 5 43
@A
@A
1.3. Zbiory
1.3 Zbiory
oznacza zbir pusty, ktry nie zawiera zadnych elementw. oznacza zbir liczb naturalnych . oznacza zbir liczb cakowitych. oznacza zbir liczb wymiernych. oznacza zbir liczb rzeczywistych. oznacza, ze elment nale y do zbioru , z , ze elment nie nale y do z zbioru . Najprostszy sposb zdeniowania zbioru polega na wypisaniu jego elementw zawiera elementy 1,2,3. Inny spow nawiasach klamrowych. Na przykad zbir sb deniowania zbioru polega na podaniu wasnoci, ktr speniaj elementy zbioru. s a a Na przykad oznacza zbir liczb naturalnych wi kszych od 3 i e mniejszych od 7. oznacza moc zbioru , czyli liczb jego elementw. e
0
A zatem suma zawiera wszystkie elementy zbioru i wszystkie elementy zbioru . oznacza iloczyn lub przekrj zbiorw, czyli zbir, ktry zawiera te elementy, ktre nale a do obu zbiorw naraz. z
Jak wida kolejnoc elementw w zapisie zbioru nie ma znaczenia. I tak na przykad c s . Taki zbir dwuelementowy nazywamy czasami par nieuporz dkowan . a a a W poni szym lemacie zebrano podstawowe wasnoci operacji sumy i iloczynu zbioz s rw.
0
"
Dwa zbiory s rwne je eli zawieraj te same elementy, lub inaczej a z a wtedy gdy i .
(
G % G G 0 &
0 &G %
"
&
0 &G %
&
G 1G 0
&
2 4"
(
"
G 0 W0 G
&
mamy:
" &
$ 8 0 G G 08 & $&
" ' %!
"
"
" 2 (3
&
" 2 (3
do
oznacza rnic zbiorw, czyli zbir, ktry zawiera te elementy, ktre nale a z e z i nie nale a do . z
"
" )
" &
lub
&
do
:
" #! " %
wtedy i tylko
oznacza sum zbiorw, czyli zbir, ktry zawiera elementy, ktre nale a do e z
0 %
( ! G % G G G $ &
( G G
&
G %
0 (
G G
" ' %!
% G
" ' )(
" " #!
&
"
lub
6 Lemat 1.2
Rozdzia 1. Oznaczenia
Dowd: Udowodnimy, tylko dwie to samoci, dowd pozostaych pozostawiamy czytelnikowi z s jako cwiczenie. Aby pokaza , ze r nica symetryczna jest aczna wystarczy zauwa y , ze zbir c z z c lub zawiera te elementy, ktre nale a do nieparzystej liczby zbiorw, z czyli te, ktre nale a tylko do , plus te, ktre nale a tylko do , plus te, ktre nale a z z z tylko do , plus te, ktre nale a do przekroju z . Udowodnimy teraz ostatnia implikacj . Je eli e z , to
"
"
"
" !
X5
" !
"
"
Jeeli z
, to
"
! " 2
Lemat 1.4
G
0 G G
0 G
Przykad 1.3
' %!
E "
"
& E
" !
&
'
"
'
" #
' ! ' !
2 2
"
(przemiennoc sumy). s
' 5 # "
5 "
5 "
# " '
!! !!
2 2 2 2
" 2
"
(przemiennoc iloczynu). s ( cznoc sumy). a s ( cznoc iloczynu). a s (rozdzielnoc sumy wzgl dem iloczynu). s e (rozdzielnoc iloczynu wzgl dem sumy). s e ,
Zbir ten zawiera te elementy, ktre nale a do z i nie nale a do z , oraz te, ktre nie nale a do z i nale a do z . W pierwszym przypadku s to elementy, ktre nie nale a do a z i na mocy zao enia indukcyjnego nale a z z do jakiej nieparzystej liczby zbiorw spord s s . W drugim przypadku s to a elementy, ktre nale a do z , a tak e do pewnej parzystej liczby zbiorw spord z s . Razem mamy wszystkie elementy nale ace do nieparzystej liczby zbiorw z spord s .
Para uporz dkowana jest to dwuelementowy ciag a . Mamy wtedy i tylko wtedy gdy oraz . Dopuszczalne jest tak e z . oznacza iloczyn kartezja ski zbiorw i . Jest to zbir wszystkich uporzdkowanych n a par , w ktrych i . Inaczej
5
(
lub
"
" %
Mo na atwo wykaza , ze z c
0 G 1' 2 G
% G &#'
" %
mamy
G 2
5
G 2
" &
C
Dowd przez indukcj ze wzgl du na . Twierdzenie jest oczywiste dla e e . Za my teraz, ze jest ono prawdziwe dla i rozpatrzmy: z
& !
C
C
G !
! !
!
! !
"
C G
0 G I %
! G 2 $ C
$
zbiorw:
. lub
) "
C
" &
0 ' G % 1)&G
&
)
$
C
G
! !
" G 2
Rozdzia 1. Oznaczenia
0
Zbir zbiorw nazywamy czasami rodzin zbiorw. Na przykad a jest rodzin zawieraj c cztery zbiory , , a a a i , s to elementy zbioru . Mo emy a z te zapisa z c . Mo emy sumowa zbiory z rodziny. Suma z c
&
UR R
" !
, ... ,
, czyli
" !
, ... ,
Y 0 V
, czyli
Y 8
UR R
V 4 %
9
9
" !
S E S
&
1.7 Sowa
Sowa sa to ciagi liter lub symboli z jakiego sko czonego zbioru . Zbir s n wtedy alfabetem. Zbir wszystkich sw nad alfabetem oznaczamy przez
Wrd sw wyr niamy sowo puste , ktre nie zawiera zadnych liter. s z Przykad 1.10 Na przykad, jeeli z , to zawiera sowo puste , dwa sowa jednoliterowe i , cztery sowa dwuliterowe , , i , osiem sw trzyliterowych , , i , , , i , i tak dalej.
0
Dla sw mo emy okreli operacj konkatenacji, lub skadania sw. Konkatenacja lub z s c e zoenie dwch sw , z , oznaczana przez , jest to sklejenie sw i . Do sowa dopisujemy na ko cu sowo . Dla dowolnego sowa n zachodzi .
jest to liczba jego liter, b dziemy ja oznacza przez e c . Du. Zbir wszystkich sw dugoci nad alfabetem oznaczas
(
G W0
&
&
" !
S E S
I I
nazywamy
G ' &G 0
0 G
G 0
&
( S E S G 0 #)G % G G $ G ' 0 G & " ! ( G 8 0 )G 8 &G &G G $ G G G ( G ' 0G % & & $ ( # G G G&( G ' 0 G % )G &G &G 9G $ &
" !
" !
G G G ' W0 G &G 0
I I I
" ! I I S 4US
9 W
V
I I
G G ' &G 0
10
Sowo jest preksem lub przedrostkiem sowa , je eli istnieje takie sowo , ze z . Podobnie, sowo jest suksem lub przyrostkiem sowa , je eli istnieje takie z sowo , ze . jest preksem sowa , a sowo jest suksem Przykad 1.12 Na przykad sowa . Sowo puste jest prexem i suksem dowolnego sowa . Kade sowo z jest swoim wasnym preksem i suksem. Zwykle alfabet jest zbiorem uporzadkowanym, lub mwiac inaczej mamy pewna ko lejnoc liter w alfabecie. Na przykad w zbiorze s litera stoi przed . Mo emy z te wtedy uporzadkowa zbir sw nad alfabetem . z c Jeden porzadek nazywa si porzadkiem leksykogracznym. Jest to porzadek sw w e sownikach. Aby porwna dwa sowa , c , szukamy pierwszej pozycji, na ktrej te dwa sowa si r nia. Sowo, ktre ma na tej pozycji wczeniejsza liter , jest wczeniejsze e z s e s w porzadku leksykogracznym. Je eli takiej pozycji nie ma, to albo z , albo jedno ze sw jest preksem drugiego, wtedy wczeniejszy w porzadku leksykogracznym jest s preks.
Porzadek leksykograczny jest wygodny, je eli zbir sw jest sko nczony. Zauwa my, ze z z w zbiorze wszystkich sw niesko czenie wiele sw (wszystkie sowa zo one n z tylko z litery ) poprzedza sowo . Dlatego czasami stosuje si inny porzadek, tak zwany e porzadek kanoniczny. Sowo poprzedza sowo w porzadku kanonicznym, je eli: z
albo
Zaokraglenie
nazywamy podoga z .
!
I I I
I I
I I
G G
I I
G G G G
albo
I I
I I
. ,
I I
11
1.9 Przedrostki
W przypadku bardzo du ych lub bardzo maych wartoci u ywa si czasami jednostek z s z e miar b d cych wielokrotnociami lub podwielokrotnociami podstawowych jednostek. e a s s Takie jednostki wyra a si przez dodanie do nazwy jednostki odpowiedniego przedrostka, z e a do oznaczenia tej jednostki dodaje si oznaczenie przedrostka. W nast puj cej tabeli e e a zebrano te przedrostki. Przedrostek Oznaczenie Wielokrotnoc s exa E peta P tera T giga G mega M kilo k hekto h deka da Przedrostek Oznaczenie Podwielokrotnoc s decy d centy c mili m mikro nano n piko p femto f atto a Przykadami tak utworzonych jednostek s : centymetr (cm), milimetr (mm), hehtopaa skal, hektolitr, kilogram (kg), kilowat (kW). Do mierzenia pr dkoci (zegara) procesora e s u ywa si megahertzw. Jeden megahertz (MHz) to jednostka cz stoci rwna milionoz e e s wi impulsw na sekund. Kilobajtw, megabajtw i gigabajtw u ywa si do mierzenia e z e bajtw, megabajt liczby komrek pami ci. Cz sto przyjmuje si , ze kilobajt ma e e e bajtw, a gigabajt bajtw.
'
E E
0
(
% %
&
0
E E
&
&
&
&
&
&
&
&
&
&
G 0 G 0 E
E
0
&
0 0
E E
0
&
G 0
0
G #' (
&
% %
0
G 0 G 0
0 0
&
&
12
Rozdzia 1. Oznaczenia
porwnujemy wskazany element z elementem nast pnym, e je eli porwnane elementy sa w niewaciwej kolejnoci, to zamieniamy je z s s miejscami, W poni szej tabeli zilustrowano zastosowanie algorytmu dla ciagu z 3 3 1 1 1 1
4 1 1 2 2 2
1 1 2 2 3 3
2 2 2 4 4 4 4 4 4
Kolejne wiersze przedstawiaja ciag po kolejnych porwnaniach. Element aktualnie wska zany jest zaznaczony daszkiem. Poprawnoc powy szego algorytmu wynika z faktu, ze po pierwszym wykonaniu zes z wn trznej p tli (1) najwi kszy element ciagu znajdzie si na ko ncu, po drugim wykonaniu e e e e p tli drugi najwi kszy element ciagu znajdzie si na przedostatniej pozycji, i tak dalej. Po e e e ka dym kolejnym wykonaniu p tli (1) kolejny najwi kszy element znajdzie swoja waz e e sciwa pozycj . e Czas dziaania algorytmu zale y od liczby elementw w ciagu. P tla zewn trzna z e e (1) jest wykowywana razy. W ka dej iteracji p tli zewn trznej p tla wewn trzna (1b) z e e e e rwnie jest wykonywana z razy. W ka dym kolejnym wykonaniu p tli wewn trznej z e e algorytm wykonuje kilka krokw. Tak wi c, aby posortowa ciag dugoci algorytm w e c s sumie wykonuje krokw, gdzie jest pewna staa. Czas pracy powy szego algorytmu zosta oszacowany z dokadnocia do staej. Jest z s to powszechna praktyka i b dziemy tak post powa w tej ksia ce. e e c z Do szacowania czasu pracy algorytmu (jego zo onoci czasowej) i do porwnywania z s algorytmw pod wzgl dem czasu dziaania b dziemy u ywa notacji asymptotycznej. e e z c Niech i b da dwiema funkcjami okrelonymi na zbiorze liczb naturalnych o ware s tociach w zbiorze dodatnich liczb rzeczywistych s
Wtedy:
G G % 2 0 G &
8 8
&
$ G
&
&
&
razy:
razy:
&
5 "&
13
, je eli istnieje dodatnia staa z taka, ze dla prawie wszystkich , to znaczy istnieje , takie, ze dla ka dego z . W takim przypadku mwimy, ze funkcja jest O due od . z
G G
, je eli istnieja dwie dodatnie stae z takie, ze dla prawie wszystkich . W takim przypadku mwimy, ze funkcja jest Theta due od . z (z
Je eli z , to mwimy, ze funkcja ogranicza z gry funkcj e dokadnocia do staej), albo, ze rzad funkcji jest nie wi kszy od rz du funkcji . s e e
B dziemy dopuszcza notacj asymptotyczna tak e wobec funkcji, ktre sa dodatnie e c e z dla prawie wszystkich liczb naturalnych. Na przykad . Je eli z , to mwimy, ze jest ni szego rz du ni . z e z
Przykad 1.18
"
2 2
Je eli z
, to
55
2 2
45
55
"
2 2
(5 5 $#%2 2
Przykad 1.17
55
Przykad 1.16
%
oraz
, je eli istnieje dodatnia staa z taka, ze . W takim przypadku mwimy, ze funkcja prawie wszystkich due od . z
G 2 2
2 5 2 2
2 5
2 2 2 55 5 2 " 5 22 5 2 2 55 5 ( ! 2 2 2 5 55 2
55 V 5
2 2
56 5
2 5 ( E
2 2 2
2 2
( G 2 5 E
V
G
55
5
# $ V
5 ( E F5 2 2 V V 2
5
14
Rozdzia 1. Oznaczenia
Nast pujacy lemat jest bardzo u yteczny przy szacowaniu asymptotycznym. Jego doe z wd zostawiamy jako cwiczenie.
, to
oraz . Mamy Przykad 1.21 Wemy dwie funkcje z , ale dla wszystkich , czyli dla wszystkich liczb mniejszych od liczby atomw w naszej galaktyce (porwnaj podrozdzia due liczby w rozdziale o z arytmetyce). Z drugiej jednak strony oszacowanie asymptotyczne wystarczy do naszych celw i jest atwiejsze do uzyskania. Przykad 1.22 Rozwamy trzy algorytmy: pierwszy dziaajacy w czasie z , drugi w czasie i trzeci w czasie . Funkcje te okrelaja czas s dziaania na pewnym konkretnym komputerze. Niech , i oznazczaja dugoci s wejc, dla ktrych algorytmy daja odpowied w ciagu jednej sekundy, to znaczy s z Przypucmy teraz, ze mamy 1000 razy szybszy komputer i pytamy jakie wejcia teraz s s moga by policzone przez te algorytmy w ciagu jednej sekundy. c Dla pierwszego algorytmu dziaajacego w czasie liniowym moemy teraz oblicza z c 1000 razy dusze dane wejciowe, poniewa z s z . Dla drugiego algorytmu dziaajacego w czasie szeciennym moemy teraz oblicza 10 razy dusze s z c z dane wejciowe, poniewa s z . Dla trzeciego algorytmu dziaaja cego w czasie wykadniczym moemy teraz oblicza tylko dane wejciowe o 10 dusze, z c s z poniewa z .
` V $
"
" !
"
" !
` 8 ! $ 0! V 8 Y
5. Niech zbr
"
"
"
0 ' 1&G
'
0 1G
"
okrelamy s oraz
"
E "
"2
4. Niech
i ,
. Oblicz
0 #)G G (
G ' #)G 0
0 (
G 'G #)% G 5
&
0 &G '
0 G % &G
3. Oblicz
5 &
2. Oblicz
5 "&
1. Oblicz
dla
0 G % 1&G
G G &
1.11 Zadania
G
5
5
2
5
#% $
&
5
5
( "V
55
2 2
5
&
66V
5
5
&
5
V ( 0
), to
5
2 2 2 55 5
&
5
.
5
# " $
& @X5
V
V 2
55 5 55
2 2
2 2
1.11. Zadania
15
8. Uporzadkuj nast pujacy zbir sw [Fragment wiersza Ptasie radio Juliana Tu e wima] wedug porzadku leksykogracznego i kanonicznego: sowik, wrbel, kos, jaskka, kogut, dzi cio, gil, kukuka, szczygie, sowa, kruk, czubatka, drozd, sikoe ra i dzierlatka, kaczka, gaska, jemiouszka, dudek, trznadel, pomieciuszka, wilga, s zi ba, bocian, szpak. e 9. Udowodnij wzr (1.1) na sum ciagu arytmetycznego. e 10. Udowodnij wzr (1.2) na sum ciagu geometrycznego. e 11. Udowodnij wzr (1.3). 12. Udowodnij wzr (1.4). 13. Udowodnij lemat 1.19, 14. Udowodnij zale noci z przykadw 1.16, 1.17, 1.18, z s
" !
" !
7. Niech zbr
okrelamy s oraz .
&
"
" %
I
" &
G 2
$
"
0 &G '
( & &G G 0 G %
&
#
6. Niech
0 %
5( G G
&
$
0
0 G % 1&G
&
$
. Wypisz elementy
oraz
Rozdzia 1
Poprawnoc programw s
Je eli projektujemy algorytmy lub piszemy programy, to wa ne jest pytanie, czy nasz alz z gorytm lub program jest poprawny, czy nie zawiera b dw. Konkretniej, mo emy spyta c, e z czy nasz program jest napisany zgodnie z reguami j zyka programowania i czy liczy to, e co chcemy.
naturalnych, a danymi wyjciowymi sa pojedyncze liczby naturalne. W algorytmie sors tujacym danymi wejciowymi i wyjciowymi sa ciagi liczb. Zeby okreli co program s s s c robi deniuje si warunki: jeden warunek mwi, jakie powinny by dane wejciowe, a e c s drugi warunek okrela, jakie powinny by dane wyjciowe. s c s Problem algorytmiczny mo emy wi c zdeniowa przez podanie: z e c zbioru danych wejciowych s
predykatu , ktry okrela relacj pomi dzy danymi wyjciowymi i wejciowymi; s e e s s ma wartoc prawda, je eli dane wyjciowe sa prawidowa odpowiedzia s z s algorytmu na dane wejciowe . s
warunek poczatkowy
Zadanie algorytmiczne sortowania mo e by zdeniowane w nast pujacy sposb (dla z c e prostoty zakadamy, ze sortujemy ciagi r nowartociowe): z s
Takiego typu warunki nazywaja si specykacja algorytmu lub programu. Jednym e sowem, specykacja mwi nam, co program ma robi . Program dziaa poprawnie, je eli c z dla ka dych danych wejciowych , speniajacych warunek wejciowy z s s , daje wynik , ktry spenia warunek wyjciowy s . Zwykle dowd poprawnoci programu rozbija si na dwa poddowody. Osobno dowos e dzi si poprawnoci przy zao eniu, ze program zawsze si zatrzyma, a osobno dowodzi e s z e si , ze program zatrzymuje si dla ka dych poprawnie zbudowanych danych wejcioe e z s wych.
X b t b X s f `b ` X ayxwFvu@TYR&%&aYV
&
d I bGf&edBHXBrfbHXqWVU01q% ` ` ` ` q%
pQq%
d h b f ` d c b ` X 0 eIp i&ge%&aYWVUT
warunek
' $
P ' $ RQIHG3
relacja
okrela, ze s
predykatu (funkcji zdaniowej) , ktry okrela warunki poczatkowe; s muje wartoc prawda, je eli dane wejciowe sa poprawnie zbudowane, s z s
, , przyj-
i .
1.3. Niezmienniki
Denicja 1.1 Program jest cz sciowo poprawny wzgl dem warunkw i , gdy dla kae e z dych danych wejciowych speniajacych s zachodzi nast pujaca implikacja: jeeli e z program zatrzymuje si na danych i daje wynik , to zachodzi warunek e . Program jest cakowicie poprawny, jeeli jest cz sciowo poprawny i ponadto zatrzyz e muje si dla kadych danych wejciowych speniajacych warunek e z s . Jedna z metod dowodzenia cz sciowej poprawnoci programu jest metoda niezmien e s nikw lub asercji indukcyjnych.
1.3 Niezmienniki
Metoda niezmiennikw polega na wyznaczeniu w programie kilku punktw kontrolnych i zwiazaniu z tymi punktami asercji, czyli pewnych warunkw. Wrd punktw kontrol s nych dwa sa szczeglne: jeden punkt zaraz na poczatku programu z asercja poczatkowa i jeden punkt na ko cu programu z asercja ko cowa. Asercja poczatkowa zwykle zawien n ra sformuowania obejmujace warunki na dane poczatkowe . Asercja ko ncowa opisuje relacj e wia aca dane wejciowe z wyjciowymi. Po wyznaczeniu punktw i asercji z s s dowodzimy, ze ka da asercja jest speniona zawsze wtedy, gdy wykonanie programu doj z dzie do odpowiadajacego jej punktu kontrolnego. W ten sposb dowodzimy, ze je eli na z poczatku by speniony warunek poczatkowy i potem program dojdzie do punktu ko n cowego, to b dzie speniony warunek . Dowd poprawnoci mo e przebiega w ten e s z c sposb, ze dla poszczeglnych par punktw kontrolnych i (niekoniecznie r nych) z dowodzimy nast pujaca implikacj : je eli w punkcie speniona jest asercja e e z , a nast pnie wykonanie programu przejdzie z punktu do , to w punkcie b dzie speniona e e asercja . Niektre punkty kontrolne moga by w trakcie wykonywania programu osiagane wie c lokrotnie (na przykad punkty znajdujace si wewnatrz p tli). Tak wi c asercja powinna e e e by speniona za ka dym odwiedzeniem punktu kontrolnego. Z tego powodu asercje te c z nazywamy niezmiennikami. Sposb rozmieszczenia punktw kontrolnych i przypisania tym punktom asercji nie jest prosty i nie ma uniwersalnych regu w tym wzgl dzie. Podobnie jak z dowodzeniem e twierdze , sposb dowodu poprawnoci programu jest oryginalnym pomysem autora don s wodu. Istnieja w tym wzgl dzie pewne reguy heurystyczne, niektre nawet bardzo zo e zone, ale nie ma uniwersalnych regu, ktre pozwola udowodni poprawnoc lub niepo c s prawnoc ka dego programu. s z
1.4 Liczniki
Aby udowodni , ze algorytm zawsze si zatrzyma, mo emy u y licznikw. Najpierw, c e z z c podobnie jak poprzednio, wyznaczamy punkty kontrolne i pewna zmienna, zwana licz nikiem lub zbie nikiem, ktra mo e przyjmowa tylko wartoci cakowite nieujemne. z z c s Nast pnie dowodzimy, ze po ka dym odwiedzeniu jakiego punktu kontrolnego wartoc e z s s licznika maleje.
pQq%
&%
&%
Nie ma miejsca w tej ksia ce na rozwijanie teorii dowodzenia poprawnoci prograz s mu. Zajmiemy si tylko dwoma przykadami. Pierwszy to algorytm Euklidesa, ktry by e przedstawiony w rozdziale z teorii liczb i tam te przedstawiono dowd jego poprawnoci. z s Teraz tylko sformuujemy go w j zyku asercji. e
je eli wykonanie programu jest w punkcie i speniona jest asercja z , a nast pe nie program ponownie przejdzie do punktu , to speniona b dzie asercja e ,
je eli wykonanie programu jest w punkcie i speniona jest asercja z nie program przejdzie do punktu , to speniona b dzie asercja e .
je eli wykonanie programu jest w punkcie i speniona jest asercja z nie program przejdzie do punktu , to speniona b dzie asercja e ,
, a nast pe
, a nast pe
je eli wykonanie programu jest w punkcie i speniona jest asercja z nie program przejdzie do punktu , to speniona b dzie asercja e ,
, a nast pe
' $
' $
' $
Naszkicujmy tylko dowd drugiej implikacji, pozostae dowodzi si podobnie. Za e z my, ze wykonanie programu znajduje si w punkcie i ze zmienne i maja wtedy e wartoci s i . Je eli w wyniku dalszego wykonania program ponownie dojdzie do z punktu , to znaczy, ze , bez straty oglnoci mo emy zao y , ze s z z c . Wtedy nowe wartoci zmiennych i maja wartoci s s oraz . Z faktu, e , wynika, ze para i ma taki sam naj ze wartoci i speniaja asercj s wi kszy wsplny dzielnik jak para wejciowa i . W rozdziale o teorii liczb pokazano, e s ze para ma taki sam zbir wsplnych dzielnikw jak para . Tak wi c tak e para e z ma taki sam najwi kszy wsplny dzielnik jak para , wi c spenia asercj e e e . Aby pokaza , ze program zatrzymuje si dla ka dych danych speniajacych warunek c e z , wprowadzimy licznik dla punktu kontrolnego . Licznikiem tym jest wartoc s . Jest jasne, ze wartoc licznika jest zawsze liczba cakowita nieujemna i ze s zmniejsza si przy ka dym ponownym odwiedzeniu punktu . Wykonanie programu nie e z mo e wi c trwa w niesko czonoc. z e c n s
a f 20
0 e f 2v
Punkt
X 4 X
X
X X X X X X
' $
6 S eF7% 0
' $
X X i
X h X
X X
X X
8 6 4 ' 2 5(&$
Dowd poprawnoci programu polega teraz na dowodzie tych samych czterech implis kacji, ktre znajduja si w podrozdziale 10.5. e Aby udowodni , ze program zawsze si zatrzyma, wystarczy jako licznik przyja c e c zmienna , ktra przyjmuje wartoci nieujemne i zmniejsza swoja wartoc przy ka dym s s z kolejnym odwiedzeniu punktu .
1.7 Czekery
W przypadku gdy udowodnimy, ze jaki program dziaa poprawnie, wwczas mamy pew s noc, ze dla ka dych danych wejciowych uzyskany wynik b dzie dobry. Inna metoda s z s e sprawdzania, ze program dziaa poprawnie, sa czekery. Zamiast dowodzi , ze program c zawsze zadziaa dobrze, czekery sprawdzaja, czy zadziaa on dobrze w konkretnych przy padkach. Do zadania algorytmicznego projektowane sa dwa programy. Program gwny , ktry rozwiazuje zadanie, oraz program , zwany czekerem lub werykatorem, ktry z po ka dym zadziaaniu programu sprawdza, czy odpowied programu jest poprawz na. Zakada si przy tym, ze dziaanie czekera jest du o prostsze ni dziaanie programu e z z . W dodatku program mo e by traktowany jak czarna skrzynka, gdzie nie mamy z c wgladu w to, jak program dziaa, tylko dostajemy ostateczne odpowiedzi. Przyjrzyjmy si pomysowi czekerw na przykadach. e We my znowu algorytm Euklidesa, ale teraz wygodniej jest wzia wersj , gdzie proz c e e oraz i , takie ze gram bierze par liczb i i zwraca trzy liczby: . Zeby sprawdzi , czy program dobrze obliczy dane wyjciowe, wystarczy c s sprawdzi , czy dzieli i , oraz czy c
Inny przykad to czeker dla programu obliczajacego zaokraglenie w gr pierwiastka e kwadratowego z liczby naturalnej . Przykad takiego programu przedstawiono w rozdziale 3.5. Je eli program gwny oblicza dla wartoci wejciowej wartoc wyjciowa z s s s s , to zadanie czekera polega na sprawdzeniu dwch rzeczy, czy
1.8 Zadania
1. Udowodnij poprawnoc programu (przedstawionego w podrozdziale 6.6), ktry dla s danych liczb , oblicza oraz liczby cakowite , speniajace rwnoc s .
S uvt
' $ e(&%
oraz czy
' $ e(&3
P
GP ) Ey $ '
S v
' $ e(&%
6 ' $ $ 24 ' G
' $
' $
P H'
F$
Rozdzia 1
Rachunek prawdopodobienstwa
1.1 Zdarzenia
Podstawowym poj ciem rachunku prawdopodobienstwa jest przestrze zdarze elemene n n tarnych, ktr najcz sciej b dziemy oznacza przez . W tej ksi zce ograniczymy si do a e e c a e przypadkw, gdy jest zbiorem skonczonym. Dzi ki temu b dziemy mogli ograniczy e e c si to prostych rozwa a . e z n Elementy przestrzeni nazywamy zdarzeniami elementarnymi. Przestrze zdarze cz sto zwi zana jest z jakim eksperymentem losowym (probabin n e a s listycznym). Przykad 1.1 a) Przypucmy, ze rzucamy monet . Przestrze zdarze elementarnych s a n n moe by wtedy okrelona jako z c s , gdzie oznacza wypadnicie ora, a e reszki. b) W przypadku rzutu dwoma (rozrnialnymi) monetami przestrze zdarze elemenz n n tarnych moe by okrelona jako z c s , gdzie oznacza, ze wypady dwa ory; , ze na pierwszej monecie wypad orze, a na drugiej reszka; , ze na pierwszej reszka, a na drugiej orze; a , ze na obu monetach wypady reszki. c) Przypucmy, ze mamy urn z szecioma ponumerowanymi kulami, i ze kule o nus e s merach 1 i 2 s biae, a kule o numerach 3,4,5 i 6 s czarne. Przestrze zdarze a a n n elementarnych moe by zdeniowana jako z c . d) Przy rzucie kostk a .
e) Przy rzucie dwiema (rozrnialnymi) kostkami z . Zdarzenie odpowiada wynikowi, gdzie na pierwszej kostce wypado oczek, a na drugiej . f) Przy rzucie monet i kostk a a na przykad opisuje wynik, gdzie na monecie wypad orze, a na kostce 6 oczek. 3
A 3 I A I " F E 9 SRQC4!PHG@DC4BA@8
%" 53517)(6&5420
3
C E @DC4BA9
Rozdzia 1. Rachunek prawdopodobienstwa g) W przypadku rzutu (rozrnialnymi) monetami przestrze zdarze elementarnych z n n moe by okrelona jako zbir wszystkich elementowych ci gw z wartociami z c s a s lub . h) Przypucmy, ze mamy urn z dwoma kulami biaymi i trzema czarnymi, i ze losus e jemy dwie kule z tej urny. Oznaczmy te kule przez , , , i . Przestrzeni a zdarze elementarnych moe tu by albo zbir dwuelementowych podzbiorw zbion z c ru kul, lub zbir dwuelementowych ci gw bez powtrze . Zaley to od tego, czy a n z b dziemy rozpatrywa zdarzenia, w ktrych rozrniamy wylosowane kule, czy nie e c z rozrniamy. z
Mo na te rozpatrywa przestrzenie zdarze nie zwi zane z eksperymentem: z z c n a Przykad 1.2 Przestrzeni zdarze elementarnych moe by : a n z c a) Zbir liter lub sw wyst puj cych w jakim tekcie, ksi zce lub licie. e a s s a s b) Zbir moliwych hase potrzebnych do uzyskania dost pu do danych lub systemu. z e Jeeli zbir moliwych hase jest zbyt may, to atwo mona zama zabezpieczenia. z z z c c) Zbir moliwych wylicze algorytmu probabilistycznego (algorytmu, ktry korzysta z n z funkcji losuj cej). a Dowolny podzbior nazywamy zdarzeniem. Pami tajmy, ze rozwa amy tyle z ko sko czone przestrzenie zdarze elementranych. W przypadku, gdy nie jest zbiorem n n sko czonym, konieczna jest inna denicja zdarzenia. Cay zbir nazywamy zdarzeniem n pewnym, a zbir pusty zdarzeniem niemoliwym. Zdarzenia roz czne, z a , nazywamy wykluczaj cymi si . Zdarzenie a e nazywamy zdarzeniem przeciwnym do zdarzenia . Przykad 1.3 a) W przykadzie 1.1b, z rzutem dwoma monetami, mamy zdarze . Zbir n jest zdarzeniem polegaj cym na a tym, ze na pierwszej monecie wypad orze. b) W przykadzie 1.1e, z rzutem dwoma kostkami, mamy zdarze . Zbir n jest zdarzeniem, ze suma oczek na obu kostkach wynosi 5. c) W przykadzie 1.1c, z kulami, bia . a
d) Rzut czteroma monetami, przykad 1.1g z , zdarzenie, ze na pierwszej i trzeciej monecie wypady ory to , a zdarzenie, ze na pierwszej i trzeciej monecie wypado to samo to .
4!
%
24$ 0 $% "
% R3 "
1.2 Prawdopodobienstwo
Denicja 1.4 Prawdopodobie stwo, lub rozkad prawdopodobie stwa, jest funkcj okrelon n n a s a na zbiorze zdarze (w naszym przypadku na zbiorze wszystkich podzbiorw ). Kaden z mu zdarzeniu przypisujemy liczb rzeczywist e a , jego prawdopodobie stwo. n Funkcja ta musi spenia warunki: c Aksjomaty prawdopodobienstwa A1) A2) dla kadego z
s roz czne, to a a
Zbir zdarze elementarnych wraz z okrelonym na nim prawdopodobienstwem b dziemy n s e nazywa przestrzeni probabilistyczn . W przypadku, gdy przestrze n zdarze elemenc a a n tarnych jest zbiorem sko czonym, wystarczy okreli prawdopodobie stwa dla zdarze n s c n n elementarnych. Musz by tylko spenione dwa warunki: a c A4) A5) dla ka dego z ,
atwo mo na sprawdzi , ze tak zdeniowane prawdopodobienstwo spenia aksjomaty z c denicji 1.4. W przypadku, gdy przestrze zdarze elementarnych jest zbiorem wszystkich mo n n z liwych wynikw jakiego eksperymentu, najcz sciej przyjmuje si , ze funkcja prawdos e e podobie stwa przypisuje, ka demu zdarzeniu elementarnemu tak sam wartoc. Mamy n z a a s wtedy do czynienia z klasyczn denicj prawdopodobie nstwa. W tej ksi zce b dziemy a a a e najcz sciej u ywa klasycznej denicji, a w razie odst pstwa od tej umowy, b dziemy to e z c e e specjalnie zaznacza . c Denicja 1.5 Rozkad prawdopodobie stwa, w ktrym kade zdarzenie elementarne n z ma takie samo prawdopodobie stwo n
Przykad 1.6 a) Dla rzutu dwoma monetami (przykad 1.1b moemy okreli prawz s c dopodobie stwo wedug klasycznej denicji: mamy wtedy n
1 $ E #% )( 9
E 9
1 $ E 5#% )( 9
9 E 9
E 9
$ %E 9
F F " E 9
#" !
1 $ E S2% '& 9
E 9
" ! E D9 SE 9
Rozdzia 1. Rachunek prawdopodobienstwa Ale oczywicie funkcja prawdopodobie stwa moe by dowoln funkcj speniaj c s n z c a a a a warunki A4 i A5. Na przykad
. b) W przykadzie 1.2a, ze zbiorem wszystkich liter w tekcie, prawdopodobie stwo s n moe by zdeniowane jako cz stoci wyst powania poszczeglnych liter w tym z c e s e tekcie. Na podstawie cz stoci wyst powania liter mona zgadywa w jakim j zyku s e s e z c e napisany jest tekst. Podobnie mona rozpatrywa cz stoc wyst powania sw w z c e s e tekcie i na tej podstawie zgadywa autorstwo tekstu. s c W nast puj cym twierdzeniu zebrano kilka prostych wnioskw wynikajcych z ake a a sjomatw prawdopodobie stwa. n Twierdzenie 1.7 b) Jeeli z c) d)
a)
, to
oraz
Przykad 1.8 (kontynuacja przykadu 1.3d) z czteroma monetami). Jeeli zaoymy rozz z kad jednostajny, to prawdopodobie stwo ze na pierwszej i trzeciej monecie wypad orze n wynosi , a prawdopodobie stwo, ze na pierwszej i trzeciej monecie wypadnie to samo n wynosi . Podobnie w przypadku, gdy rzucamy monetami (przykad 1.1g). Przestrze n zdarz elementarnych zawiera e ci gw, z czego a sprzyja zdarzeniu, ze na pierw szej i trzeciej monecie wypadnie orze, a sprzyja zdarzeniu, ze na pierwszej i trzeciej monecie jest to samo. Tak wi c otrzymamy takie same prawdopodobie stwa jak w przye n padku rzutu czteroma monetami.
oraz
oraz
, a poniewa z
E 9
&
E 9
$ %E
9
$ E S% ) 9
$ E 9 E 9 I E 9 $%E 9 E 9 E 9 E 9 E 9 E 9 E 9 I E 9 E 9
&
$ E 6& )( D9
$ )
$ E S1 ) 9
lub
$ )(
%S& 9 E
1% E 524S& 9
$ E 6( % ) 9
$ E 5% '( 9
% " ( "
Dowd przez indukcj : e Dla twierdzenie zachodzi w sposb trywialny. Za my, ze twierdzenie jest prawdziwe dla dowolnej rodziny zbiorw. Rozpatrzmy z
Dowd przez indukcj : Dla e twierdzenie zachodzi w sposb trywialny. Za my, z ze twierdzenie jest prawdziwe dla dowolnej rodziny zbiorw. Z twierdzenia 1.7c i z zao enia indukcyjnego mamy z
pod warunkiem, ze
$E9
I E
$E %D
E
9 QE 9
E 9 I $$$
$ E E 9 9 E F 9 E F 9
E
Poniewa z
$
QE 9
C A
"
$$$
E 9
T
"
Mo emy powiedzie , ze jest to prawdopodobie stwo zajcia zdarzenia w sytuacji, gdy z c n s mamy pewnoc, ze zaszo zdarzenie . Przy klasycznej denicji, gdy prawdopodobie ns stwo oznacza cz stoc wyst pienia, to prawdopodobienstwo e s a oznacza jaka cz sc e elementw zbioru nale y do zbioru . z
Przykad 1.14 (Kontynuacja przykadu 1.1c, z szecioma kulami). Zdarzenie s wylosowania kuli biaej i zdarzenie wylosowania kuli z parzystym numerem s niezalene, poniewa a z z oraz . Po prostu cz stoc e s wyst powania kuli biaej wrd kul o parzystych numerach (1 na 3) jest taka sama jak e s cz stoc wyst powania kuli biaej wrd wszytkich kul (2 na 6). e s e s
, to mwimy, ze s one parami niezale ne, a z Je eli mamy wi cej zdarze z e n je eli ka de dwa zdarzenia s niezale ne, to znaczy gdy z z a z dla ka dej pary z .
Przykad 1.16 (Kontynuacja przykadu 1.1b, z rzutem dwoma monetami). Niech b dzie e zdarzeniem, ze na pierwszej monecie wypad orze, , ze na drugiej monecie wypad orze, a , ze na obu monetach wypado to samo. Mamy
Jak wida zdarzenia te s parami niezalene, poniewa dla kadej pary indeksw c a z z z mamy . Ale zdarzenia te nie s niezalene, a z poniewa z
A " I
( " E
$ " E 9 E 9 E 9 E 9 " ( E 9 E 9 E 9
9 E 9 E 9 E % " E 9 E 9 E 9
$ %E
& " E F 9 & " E 9 ' ' $% 23 #)(2 #%#! $ $" $ E 9 E 9 E 9 $ E F 9 E E 9 9 E 9 E 9 E 9 E F 9
Je eli z , to mwimy, ze zdarzenie jest niezale ne od zdarzenia z . W takim przypadku zajcie zdarzenia nie zale y od tego, czy zaszo zdarzenie . s z Je eli i s zdarzeniami o niezerowych prawdopodobienstwach i jest niezale ne z a z od , to jest niezale ne od . Rzeczywicie z s poci ga a , a to pociga a
s niezale ne. a z
s niezalene, jeeli a z z
E 9 DE 9 E
Wniosek 1.12
E F 9
E 9 E F 9 E 9 E F 9 E 9
$$$
$$$
C A
9
E 9 E 9
$ $ $ 2# "
& I C
1.4. Prawdopodobie stwo cakowite n Przykad 1.17 W przypadku rzutu wypad orze. Wtedy zdarzenia
dla kadego , z
, itd.
wynosi
dla
Z wniosku 1.12 mamy ; co daje tez twierdzenia. e W przypadku dwch zdarze uzupeniajcych si n a e i wzr z twierdzenia 1.18 wygl da nast puj co: a e a (1.1)
$ E 9 E F 9 E 9 E F 9 E 9 E 9 E F 9 E 9 9 E 9
C A
$ %E
E 9 QE 9
Ponadto
$ %E
Dowd Mamy
$$$
E 9 E F 9
% "
I C A " I I A T" I
$ $$
E 9
H
QE 9
10
Przykad 1.19 Wyobramy sobie urn z trzema kulami: 1 bia i 2 czarnymi. Przypucmy, z e a s ze pierwsza osoba wylosowaa jedn kul i schowaa j . Jakie jest prawdopodobie stwo, a e a n ze druga osoba wylosuje kul bia ? Niech e a oznacza, ze pierwsza osoba wylosowaa bia kul , wtedy a e oznacza, ze wylosowaa czarn kul . Niech a e oznacza, ze druga osoba wylosowaa bia kul . a e Mamy , , oraz . Razem daje to
A jakie jest prawdopodobie stwo, ze po drugim losowaniu w urnie zostanie biaa kula? n Zajdzie to wtedy, gdy obie osoby wylosuj kul czarn . Z wniosku 1.12 mamy a e a
Jak wida prawdopodobie stwo wylosowania biaej kuli jest takie samo dla pierwszego, c n drugiego i trzeciego losuj cego. a Poniewa przestrze zdarze jest tutaj maa, wi c mona nasz wynik sprawdzi bezpoz n n e z c srednio. Oznaczmy kule przez , i . Niech przestrze zdarze elementarnych b dzie n n e
Czyli w tym przypadku, rwnie druga osoba ma tak sam szans wylosowania kuli z a a e biaej co pierwsza. Przykad 1.20 Wyobramy sobie dwie urny z kulami. W pierwszej urnie jest jedna kula z biaa i jedna czarna, a w drugiej urnie dwie biae i jedna czarna. Rzucamy monet . Jeeli a z wypadnie orze, to losujemy kul z pierwszej urny, jeeli reszka, to losujemy z drugiej e z urny. Jakie jest prawdopodobie stwo, ze wylosujemy kul bia ? Niech oznacza wyloson e a wanie kuli biaej, a wypadnicie ora na monecie, wtedy e oznacza, ze na monecie wypada reszka. Mamy oraz -jest to prawdopodobie stwo wylosowania kuli biaej pod warunkiem, n ze wypad orze i losowalimy z pierwszej urny. s -jest to prawdopodobie stwo wylosowania kuli biaej pod warunn kiem, ze wypada reszka i losowalimy z drugiej urny. s Korzystaj c teraz ze wzoru (1.1) mamy a
Zakadamy, ze kady z tych wynikw jest rwnie prawdopodobny. Wida teraz, ze zdarze z c nia: , oraz s rwno prawdopodobne. a Rozwamy teraz przypadek, gdy w urnie jest kul z czego biaych. Znowu zakadaz my, ze kady wynik dwch losowa jest rwnie prawdopodobny. Mamy z n , , oraz . Razem daje to
E 9 " S E F 9 E 9
% " E F 9
$ E ' % 2 9& E $" # 9& E #&2 9% E $ " ' %D9 E 2$ )9 E ' $ " @ ' ' ' ' '& " % 9 ' ' $ #& 2% "
9
E"
% ! E 9 E 9 "
9
& % PE F 9 % " 2 E F 9
11
Zastanwmy si teraz jak powinna wygl da przestrze probabilistyczna w tym przykae a c n dzie. Niech zawiera wszystkie moliwe wyniki eksperymentu. z
Aby by w zgodzie z intuicj i naszymi poprzednimi wyliczeniami rozkad prawdopodoc a bie stwa powinien by nast puj cy: n c e a
Rozkad jednostajny nie jest w tym przykadzie dobry, bo mielibymy prawdopodobie s n . stwo, wypadnicia ora rwne e
b) Rozwamy rzut dwoma monetami, (przykad 1.1b) z i b d dwoma zmiennymi losowymi okrelonymi w tabeli e a s
Zmienna okrela wynik rzutu na pierwszszej monecie, s , jeeli wypad z orze, i , jeeli wypada reszka. W podobny sposb zmienna losowa z okrela wynik rzutu na drugiej monecie. s
E 9
"
"
"
"
OO
OR
RO
4!
E 9 E 9
okrelona tabel s a O R
"
RR
3"
3 "
3"
E 9
1 2% ( " " (
(O,1b)
(O,2b)
(R,1b)
(R,2b)
(R,3c)}
$
. Niech
" E 9
12
Rozdzia 1. Rachunek prawdopodobienstwa c) Rozwamy rzut monetami, (przykad 1.1g). Dla kadego , z z zmienn a ; , jeeli na -tej monecie wypad orze, oraz z jeeli wypada reszka. z
d) Rozwamy losowanie jednej kuli z urny zawieraj cej siedem ponumerowanych kul. z a . Niech zmienna losowa bedzie zdeniowana jako
a zmienna losowa
jako
( jest reszt z dzielenia numeru kuli przez 2, a a 3). Wartoci tych dwch zmiennych zebrane s w tabeli. s a
1 1 1
2 0 2
3 1 0
4 0 1
5 1 2
6 0 0
7 1 1
1 2 1 1
2 2 0 -2
3 1 0 2
4 1 0 -1
5 3 2 0
6 0 0 0
e) Rozwamy rzut dwoma kostkami (przykad 1.1e) z . Niech oznacza wynik rzutu na pierwszej kostce, wynik rzutu na drugiej kostce. Wtedy zmienna okrela sum oczek na obu kostkach. s e
Zauwa my, ze je eli liczba nie nale y do zbioru wartoci z z z s zmiennej , to zda rzenie jest zdarzeniem niemo liwym. Prawdopodobienstwo zdarzenia z wynosi
E 9 E 9
E 9
E 9 F
$ E 9
i liczb rzeczywist e a
deniujemy zdarzenie
Moemy teraz okreli inne zmienne losowe, na przykad z s c , . Ich wartoci zebrano w tabeli s
7 2 1 1
" E 9
,
jako
I A " A I
E 9
$ '&
5% ( E 9
( E 9
E 9
E 9
E 9 E 9
%
1 " @ S3546)(6&S%20
E 9
okrelamy s ,
E 9
1.5. Zmienna losowa Przykad 1.24 (Kontynuacja przykadu 1.22d) Dla zmiennej rzenia
13
Zmienna losowa
posiada wi c rozkad e
Poniewa , jak zao ylimy jest zbiorem sko czonym, to zbir wartoci z z s n s zmienz n mamy . Tak wi c funkcja e nej te jest sko czony. Dla g stoci przyjmuje wartoci niezerowe tylko dla sko czenie wielu argumentw. Zauwa e s s n z my, ze je eli z , to zdarzenia i wykluczaj si . Mamy przy a e tym Lemat 1.25 Jeeli z jest funkcj g stoci zmiennej losowej a e s , to
Zauwa my, ze ostatnia podwjna suma jest sum po wszystkich elementach z a grupowanych wedug wartoci zmiennej . Mamy wi c s e
W dalszej cz sci przedstawiajc funkcj g stoci zmiennej losowej e a e e s wa a tylko te , dla ktrych z c .
b dziemy roze
Przykad 1.26
a) Zmienna losowa
$ E 9
% " % " E 9
$" ! E 9
E 9
E 9
E 9
E 9
E 9
" E 9
dla kadego z
E D9
E 9 E 9 E 9
& E 9
Podobnie zmienna
ma rozkad
&
% E 51S #% 9
% E 9
E 053S& ! #& 9
" E 9
9
po-
14
Rozdzia 1. Rachunek prawdopodobienstwa b) Niech oznacza sum wartoci oczek w rzucie dwoma kostkami, przykad 1.22e. e s G stoc rozkadu prawdopodobie stwa zmiennej losowej przedstawia nast puj ca e s n e a tabela:
Maj c funkcj g stoci rozkadu zmiennej a e e s zdarze opisywanych za pomoc zmiennej . n a Przykad 1.27
W przypadku dwch zmiennych losowych i okrelonych na tej samej przestrzeni s zdarze elementarnych mamy tak zwany czny rozkad prawdopodobie nstwa, ktrego n a g stoc jest okrelona jako e s s
0 1
b) Dla zmiennych i z przykadu 1.22d czny rozkad prawdopodobie stwa a n przedstawiony jest w tabeli:
"
"
0 1
"
"
"
E 9 E 9 9 E 9
$ ( )
$ %E
b) Dla zmiennej
3 2& " 2& % 2& #( #1 2& 3 2& 1 2( #& #% 2& " E 9 3 3& 3& 3& 3 3 3& 3& 3& 3
2 3 4 5 6 7 8 9 10 11 12 a) Dla zmiennej losowej lub oraz z przykadu 1.26b mamy
s roz czne. a a
&
&
9 2E 9 %
, z przykadu 1.22b
. Wtedy
2% E
" !
"
& T % ! E"
(
i
Przykad 1.30 Sumuj c wiersze tabeli z przykadu 1.28b mona otrzyma g stoc roza z c e s kadu zmiennej , a sumuj c kolumny g stoc rozkadu a e s .
E 9
$ %E
9
E 9 E 9 E 9 E 9
E 9 E E 9 E 9 E 9 E 9 9
E 9 E 9 E 9 E 9
Podobnie mo na pokaza , ze z c
Z drugiej strony
poniewa z
a)
b)
&
"
"
"
0 1
"
&
"
Podobnie jak dla jednej zmiennej, maj c g stoc cznego rozkadu prawdopodobiena e s a stwa dwch zmiennych i mo na oblicza prawdopodobie stwa zdarze opisywaz c n n nych przez te zmienne.
E 9
oraz
lub
" !
lub
lub
9 E
15
16
g stoc zmiennej e s
,a
g stoc e s
Przykad 1.33 Zmienne losowe i z przykadu 1.28a s niezalene, natomiast a z zmienne i z przykadu 1.28b nie s niezalene. a z Oczywicie mo e by wi cej zmiennych losowych okrelonych na jednej przestrzeni s z c e s a Dla trzech zmiennych losowych , , czny rozkad prawdopodobie nstwa, zdeniowany jest jako i i
zmiennych losowych
$ %E
9 E 9 E 9 E 9
$E
$ $ $ 9
$E
$$$
$ $ $ 9 E $ $ $ 9
$$$
E
oraz na przykad
$E 9 E 9 $ %E 9 E 9 E 9 E 9
E 9
E 9
E 9 E 9 E 9 E 9 E 9 E 9
$ %E
9 E 9
9
17
Przykad 1.36 Wr my do przykadu z rzutem monetami, przykad 1.22c. Dla kadego c z zmienna losowa jest rwna jeeli na -tej monecie wypad orze, i 1 jeeli na -tej z z monecie wypada reszka. Zmienne s niezalene. a z
Twierdzenie 1.37 Niech i b d niezalenymi zmiennymi losowymi, a e a z nymi podzbiorami zbioru liczb rzeczywistych. Wtedy zdarzenia
oraz s niezalene. a z
oraz
$ %E
czyli
istniej a
takie, ze
oraz
E E 9
6C #A
E 9
E 9 ! F E 9 ! F
Mamy zatem
Podobnie niech
E D9 T $ $ $ E 9 T0 $ $ $
E 9 F F E 9
Poka emy teraz, ze je eli zmienne losowe i z z zdarzenia opisywane przez te zmienne. Dokadniej
dowol-
$E
$ $ $ A
E 9
$$$
DC4A
E 9
F
$$$ A
18
ale
to liczba
Je eli zmienna posiada jednostajny rozkad prawdopodobie nstwa, to jej wartoc oczez s kiwana jest zwyk sredni arytmetyczn jej wartoci. a a a s
E 9
E 9
E 9 E 9
$ %E
E 9
Lemat 1.40
$ %E
9 E 9
$ E 9
$ " % % &" % E 9
$ E 9 E 9
E 9 E 9
E 9
E 9
E 9 E 9
oraz
E 9 E 9
E 9 DE 9
E
E 9
9
E
a poniewa z
E 9
s niezale ne a z
19
Przykad 1.41 Przypucmy, ze mamy informacj , ze w jakiej grupie studenckiej poowa s e s studentw otrzymaa ocen 5 z matematyki dyskretnej, jedna trzecia otrzymaa ocen 4, e e a jedna szsta ocen 3. Jaka jest srednia ocena w tej grupie? Przyjmujemy, ze grupa jest e przestrzeni losow , a zmienna losowa jest ocen studenta. Wtedy wartoc oczekiwana a a a s zmiennej
istnieje zdarzenie elementarne Wniosek 1.42 Dla kadej zmiennej losowej z takie, ze oraz . Podobnie istnieje zdarzenie takie, ze oraz .
Dowd: Udowodnimy tylko pierwsz cz sc twierdzenia, drug mo na udowodni w poa e a z c dobny sposb. z dodatnim prawdopodobienstwem mamy Przypucmy, ze dla ka dego s z . Ale to prowadzi do sprzecznoci s
W przypadku klasycznej denicji wniosek 1.42 opisuje prosty fakt, ze zawsze istnieje przynajmniej jedna wartoc mniejsza od lub rwna wartoci sredniej oraz wartoc wi ksza s s s e od lub rwna sredniej. W poni szym twierdzeniu zebrano podstawowe wasnoci wartoci oczekiwanej. z s s Twierdzenie 1.43
a)
d) Jeeli z Dowd: a)
, to
$ %E 9 E 9
E 9
c)
$ %E
E 9
E 9
E 9 E
b)
$ %E
9 E 9
E 9
E 9 E 9
c) Jeeli zmienne z
s niezalene, to a z .
b) Jeeli z
E 9
$ %E
E 9 I E 9
9 E 9
E 9 E 9 E 9 E 9 E 9 E 9 E 9 E
"
E 9 E 9 E 9
E 9
E 9
E 9 E 9
E 9
"
"
E 9
E 9
E 9
E 9
20
zmiennych
jest rwna
Twierdzenie 1.46 (Nierwnoc Markowa) Jeeli zmienna losowa s z nieujemne, to dla dowolnej liczby rzeczywistej
przyjmuje waretci s
Dowd:
Przykad 1.47 Nierwnoc Markowa wyraa doc prosty fakt. Przypucmy, ze okrela s z s s s liczb pieni dzy posiadan przez studenta. Jeeli wartoc srednia zmiennej wynosi 100 e e a z s zotych, to tylko poowa studentw moe mie 200 lub wi cej zotych. Przypucmy bowiem z c e s ze cz sc studentw posiada 200 (lub wi cej) zotych. Wtedy udzia tej bogatej e e cz sci studentw w sredniej wynosi co najmniej e ,i wartoc srednia nie moe wynosi 100 zotych, jeeli zmienna nie przyjmuje wartoci s z c z s ujemnych.
"
" %
Zauwa my, ze nierwnoc Markowa jest u yteczna tylko kiedy z s z , to mamy trywialne oszacowanie bowiem
. Je eli z
E 9
, to
E 9
!
$E
&
" E $ 1 ) 0 % " $ 9
E 9
I E 9 " I E
E 9
!
E 9 I E
E 9
!
E 9
E 9
E 9
E 9
!
E 9 I
" # ' $
E 9 1
21
Poka emy teraz jak mo na wykorzysta prawdopodobie stwo do rozwa a kombinaz z c n z n torycznych. Udowodnimy nast puj ce: e a Twierdzenie 1.48 Wierzchoki dowolnego grafu mona pokolorowa dwoma kolarami z c (biaym i czarnym) w taki sposb, ze przynajmniej poowa kraw dzi ma swoje ko ce w e n rnych kolorach. z Zanim przejdziemy do dowodu wyjanjmy kilka rzeczy: s
Dla krawdzi e mwimy, ze wierzchoki i s koncami krawdzi lub, ze a e kraw d czy i . e z a Graf cz sto przedstwiamy na rysunku jako zbir punktw po czonych ukami. Na e a przykad rysunek 1.1 przedstawia graf ze zbiorem wierzchokw i zbiorem krawdzi e
atwo jest pokolorowa ka dy graf tak, aby ka da krawd miaa oba konce w jedc z z e z nym kolorze. Wystarczy wszystkie wierzchoki pokolorowa tym samym kolorem. Graf c z rysunku 1.1 mo na pokolorowa tak, aby ka da krawd bya dwukolorowa. Trzeba z c z e z pokolorowa na biao wierzchoki , , i i na czarno wierzchoki , i . Ale nie dla c ka dego grafu jest mo liwe takie pokolorowanie, w ktrym ka da krawd ma ko nce w z z z e z r nych kolorach. Na przykad dla trjk ta, czyli grafu z wierzchokami z a i kraw dziami e (patrz rysunek 1.2) nie istnieje takie pokolorowanie.
'$
%" 5&542#!
'
Denicja 1.49 Graf jest to dowolny sko czony zbir wierzchokw n kraw dzi e , gdzie kraw dzie to pary wierzchokw. e
wraz ze zbiorem
$ 7
H7 # F
'
6H
22
Dowd twierdzenia 1.48: Przypucmy, ze graf ma s wierzchokw i krawdzi. Rozwa my przestrzen zdarze elementarnych zo on ze wszystkich mo e z n z a z liwych pokolorowa wierzchokw grafu . Jest ich n . Dla ka dej krawdzi z e okrelmy zmienn losow s a a w nast puj cy sposb: e a , je eli z w kolorowaniu oba ko ce krawdzi maj r ne kolory i n e a z w przeciwnym n przypadku. , poniewa w poowie kolorowan ko ce maj r ne kolory. z a z W jednej czwartej kolorowa oba ko ce s biae (kolorowa , w kttych i maj kolor n n a n a biay, jest , bo na tyle sposobw mo na pokolorowa pozostae z c wierzchokw) oraz w jednej czwartej kolorowa oba s czarne. n a . Rozwa my teraz sum zmiennych losowych z e Mamy wi c e
Wartoc zmiennej s
Dlatego, zgodnie z wnioskiem 1.42 musi istnie kolorowanie , dla ktrego c . Srednia liczba r nokolorowych kraw dzi w kolorowaniu mo e by obliczona bez z e z c u ywania terminologii rachunku prawdopodobienstwa. Policzmy ile we wszystkich koloz rowaniach jest r nokolorowych kraw dzi. Z jednej strony jest to z e liczba r nokolorowych kraw dzi w kolorowaniu z e
Z drugiej strony
Przedostatnia rwnoc wynika z tego, ze liczba kolorowan, w ktrych jest r nokos z lorowa wynosi (poowa wszystkich). Srednia liczba r nokolorowych kraw dzi w z e kolorowaniu wynosi wi c e
" E 9 F F
E 9
$ %E
E 9
% F F F F
&
% E 9
$
"
% %
E 9
% % ! E 9 "
! 9 E" E 9
"
6H
% 2
1.8. Wariancja
23
1.8 Wariancja
Wariancja jest miar tego jak bardzo wartoci zmiennej s oddalone od sreda s a niej. Im wi ksze rozrzucenie wartoci tym wi ksza wariancja. W poni szym twierdzeniu e s e z zebrano podstawowe wasnoci wariancji s
d)
Z drugiej strony
Twierdzenie 1.52 (Nierwnoc Czebyszewa) Dla zmiennej losowej s oraz liczby rzeczywistej mamy
z wartoci oczekiwan s a a
E 9 E 9 % E 9 E E 99 E 9 % E 9 E 9 % E 9 E % 9 E E 99 E 9 E 9
E 9 )E 9 9 E 9 )E 9 9 E 9 $E 9 E E EE 9 E E 99 E 9 9
)EE 9 9 E 9 E 9 %
E 9
E 9 E 9 % E 9 E E
" E 9 I E" F
)EE 9 9 )EE 9
"
F9
E 9
e) Jeeli zmienne z
s parami niezalene, to a z
$$$
d) Jeeli zmienne z
s niezalene, to a z
E 9
E 9 E
)99
E 9 9
E 9
c)
$ %E
E 9
b)
E 9 E 9
Twierdzenie 1.51
a)
EE
)99 E 9
o wartoci oczekiwanej s
E 9
$ '
E 9
E 9
24
wynosi
Lemat 1.54 Jeeli jaka zmienna przyjmuje wartoci nieujemne i z s s na losowa ma rozkad jednopunktowy, to znaczy
, jeeli z
, to
Zao enie, ze zmienna z przyjmuje tylko wartoci nieujemne jest istotne we wnios sku 1.54. Pokazuje to nast puj cy przykad. e a
$ )(
E 9 I E
Dowd: Poka emy, ze dla ka dego z z bowiem, ze istnieje , takie, ze twierdzenie 1.46, mamy
, je eli z
E 9
E 9
E 9
9 I E 9
dla ka dego z
, to zmien-
E 9 EE
( E 9 " E 9
)99 E 9
ale
" E 9 I E "
9 E $'F 9 " F
9 F
to
. Poniewa z
9
" E 9
25
Wtedy
b dzie przestrzenia z jednostajnym rozkadem prawdoe Dowd: Niech podobie stwa i niech b dzie zmienna losowa okrelona wzorem n e s . Wtedy jest wartocia oczekiwana zmiennej , a s
dla pewnych dodatnich speniaj cych warunek a Wartoc oczekiwana zmiennej wynosi s
$ E
9" EE 9 E 9 E 9 9
a wariancja
" !G
" (
1 .
jej wariancja, ktra jest nieujemna i rwna zeru tylko dla rozkadu jednopunktowego.
E BA9
dla kadego . z
" "
E 9
"
E 9
$$$
" 2#
Dowd Poniewa z
"
E E
, to zmienna losowa
$$$ E 9 0 E )99 E 9 E 9
&
Ale i na odwrt
$ )(
EE 9 9 E 9 E 9
ma wartoc oczekiwan s a
% 2 " % " E 9
. z rozkadem jednopunktowym wynosi
-1
E 9
9
26
Podobnie dla dowolnego , prawdopodobienstwo, ze w serii czterech dowiad s cze wypadnie sukcesw wynosi n
Twierdzenie 1.58 Wartoc oczekiwana s mianowy o parametrach i wynosi . Dowd: Rozwa my funkcj: z e ze wzoru Newtona mamy
zmiennej losowej
Zr niczkujmy t funkcj z a e
9 E ! E 9
E 9 $ S 9 E
E ! E 9 9
( 8
$
(
$
( I I
E 9
"
27
ma rozkad dwumianowy o parametrach i . Wartoc oczekiwana, ka dej ze zmiennych s z wynosi , wi c wartoc oczekiwana zmiennej wynosi . e s wynosi . Poniewa zmienne z s a Wariancja zmiennej niezale ne to wariancja ich sumy wynosi z , mamy wi c. e Twierdzenie 1.59 Wariancja zmiennej losowej trach i wynosi z rozkadem dwumianowym o parame-
E "
13 ##&
$ $ $
oraz
$$$
" I " I
$
"
E 9
E 9
, ka da o rozkadzie z
$ # 9 E $$$
$ %E
9
E 9 "
" !
to otrzymamy
28
Prawdopodobie stwo to jest mniejsze od n wtedy gdy , a to zachodzi . Dla , zachodzi to dla . wtedy gdy Tak wi c jeli w pokoju znajduj si co najmniej 24 osoby, to z prawdopodobie nstwem e s a e wi kszym od e dwie spord nich maj urodziny w tym samym dniu. s a
1.14 Zadania
1. Zaproponuj przestrze zdarze elementarnych dla losowania dwch kul z urny n n zawieraj cej 3 kule biae i 4 czarne. Przedstaw zdarzenie, ze wylosowano: a a) dwie kule biae, b) kule w r nych kolorach. z 2. Zaproponuj przestrze zdarze elementarnych dla ustawienia czterech liter , , i n n w ci g. a Przedstaw zdarzenie, ze b)
3. Zaproponuj przestrze zdarze elementarnych dla nast puj cych dowiadcze : n n e a s n a) Losowanie karty z talii 52 kart. b) Losowanie 13 kart z talii 52 kart. c) Wypenienie kuponu totolotka. d) Wypenienie kuponu totalizatora pikarskiego.
% "
a) ze i
% "
% "
5. Cyfry
$ $ $ S
4.
a)
' $
% ( % E " 9 $
E"
29
. Obliczy c
8. Dane s a
. Obliczy c
i oraz
, wiadomo te , ze z
9. W urnie s 4 kule biae i 3 czarne. Losujemy dwie. Jakie jest prawdopodobie nstwo, a ze wylosowane kule b d w r nych kolorach? e a z 10. Jakie jest prawdopodobienstwo, ze na przyj ciu, na ktrym jest e si osoba, ktra ma urodziny tego samego dnia co ja? e
osb, znajdzie
11. Jakie jest prawdopodobienstwo, ze przy okr gym stole wybrane na pocz tku dwie a a osoby usi d obok siebie? a a 12. Niech przestrze zdarze elementarnych b dzie zbiorem 3 elementowych ci gw n n e a zero-jedynkowych. Wypisz zdarzenia: a) na pierwszej wsprz dnej jest zero; e b) na pierwszej i trzeciej wsprz dnej s zera; e a c) na pierwszej i trzeciej wsprz dnej mamy r ne wartoci; e z s d) na wszystkich wsprz dnych jest to samo. e Oblicz prawdopodobie stwa tych zdarze (rozkad jednostajny). n n Czy zdarzenia te s niezale ne? a z a Niech przestrze zdarze elementarnych b dzie zbiorem elementowych ci gw n n e zero-jedynkowych (rozkad jednostajny). Oblicz prawdopodobie nstwa tych samych zdarze . n 13. Rzucamy trzema kostkami. Jakie jest prawdopodobie nstwo, ze na zadnej kostce nie wypada szstka, je eli na ka dej kostce wypada inna liczba oczek. z z 14. Mamy dwie urny z kulami. W pierwszej urnie s dwie kule biae i cztery czarne, a a w drugiej urnie trzy biae i trzy czarne. Rzucamy kostk do gry. Je eli wypadnie 1 a z lub 2, to losujemy kul z pierwszej urny, je eli 3,4,5 lub 6, to losujemy z drugiej e z urny. Jakie jest prawdopodobie stwo, ze wylosujemy kul bia ? n e a Zaproponuj przestrze zdarze elementarnych i rozkad prawdopodobienstwa. n n 15. W urnie jest kul w tym biaych. osb po kolei losuje jedn kul bez zwracania. a e a) Ile wynosi prawdopodobie stwo wylosowania kuli biaej dla trzeciej osoby? n b) Ile wynosi prawdopodobie stwo wylosowania kuli biaej dla ka dej z losuj cych n z a osb?
E 9 PE
9
9 9
30
posiada rozkad:
19. Podaj rozkad cz stoci wyst powania liter w zdaniu: e s e "Podzbiory przestrzeni zdarze losowych nazywamy zdarzeniami". n
Czy zmienne
s niezale ne? a z
-1 1
Z=0
22. W dwch tabelach przedstawiono czny rozkad zmiennych , a tabela zawiera wartoci s , a druga wartoci s .
E " 9
0 1
E # 9
Oblicz
-1
0 1
. .
18. Zmienna jest okrelona na przestrzeni s nym rozkadem. Podaj jej rozkad, wartoc oczekiwan oraz s a
, wariancj e
oraz
z jednostaj.
E 9
1 E 9
Oblicz
1.14. Zadania
31
-1 1
Czy zmienne , i s niezale ne? Je eli nie, to zmien prawdopodobie stwa w a z z n pierwszej tabeli tak, zeby byy niezale ne. z
23. Na przestrzeni ,
s s 24. Mamy trzy niezale ne zmienne losowe , i (okrelone na jakiej przestrzeni z probabilistycznej). Udowodnij, ze ka de dwie te s niezale ne. z z a z
30. Poka , ze je eli zmienne losowe i s niezale ne, to dla dowolnych funkcji i z z a z , zmienne i te s niezale ne. z a z
ma rozkad jednostajny?
lub
lub
? ?
wartoci s
$$$
31. Pokaza , ze c
29. Poka , ze je eli zmienne losowe i s niezale ne, to dla dowolnych liczb z z a z zdarzenia oraz s niezale ne. a z
E'
9
taka, ze
" E 9
"
$$$
25. Mamy
E 9
$$$
. Oblicz
9 0 E
% 5 " % @" @" " " %" % 5 " % 5 " % @" " " "
Z=1
9 E
"
9 E
32
a) je eli z c)
35. Rzucano monet 10 razy. Jakie jest prawdopodobie nstwo, ze orze wypad co naja mniej raz? 36. Jakie jest prawdopodobienstwo otrzymania parzystej liczby sukcesw w ci gu a prb Bernoulliego, je eli prawdopodobienstwo sukcesu w jednej prbie wynosi: a) z 1/2, b) . 37. Jakie jest prawdopodobienstwo, ze w serii szeciu rzutw kostk suma oczek b dzie s a e parzysta. 38. Pokaza , ze je eli c z , to , gdzie
, to
ma rozkad dwumianowy z parametrami , 39. Niech zmienna losowa . Oszacuj prawdopodobie stwo n (za pomoca nierwnoci s Markowa, Czebyszewa i Chernoffa).
C A
"
E @DCH 9
E # 3
% 2 "
b)
&
rwna si e ;
9 E 99 E 9 '
.
)EE
Rozdzia 1
Rekurencja
1.1 Wie e Hanoi z
Rekurencja jest to zdolnoc podprogramu (procedury lub funkcji) do wywoywania sas mego siebie. Zacznijmy od przykadu wie Hanoi. Przypucmy, ze mamy trzy wie e lub z s z a e a z s trzy paliki: , i . Na pierwszym paliku, , znajduj si trzy kr zki r nej wielkoci, nanizane w porzdku od najwi kszego na dole do najmniejszego na grze. Paliki i a e s na pocz tku puste. Nale y przeniec wszystkie kr zki z palika na , posugujc si a a z s a a e w razie potrzeby palikiem , wedug nast puj cych regu: e a mo na przenosi po jednym kr zku z jednego palika na inny, z c a
Rozwi zaniem tej amigwki dla trzech kr zkw jest nast puj cy ci g siedmiu przeoa a e a a ze : n
gdzie zapis oznacza przeniesienie szczytowego kr zka z palika na palik . a Chodzi nam teraz o algorytm, ktry dla dowolnej liczby kr zkw wypisze ci g a a operacji potrzebnych do przeo enia kr zkw z palika na palik . z a Algorytm przekadania kr zkw a je eli z
przekadamy
-ty kr zek z a
przekadamy
kr zkw z na a 3
kr zkw z a ),
na pomocniczy palik ,
na
je eli z
, to:
(posugujc si w a e
).
% '&
'%(
# "
Rozdzia 1. Rekurencja
Nietrudno zauwa y , ze je eli proces przekadania z c z kr zkw jest prawidowy, to a cay proces te jest prawidowy, poniewa obecnoc najwi kszego kr zka na dole palika z z s e a nie przeszkadza w przekadaniu mniejszych kr zkw. a Powy szy algorytm opiszmy teraz za pomoc rekurencyjnej procedury przenie, ktz a s ra odwouje si sama do siebie i wypisuje ci g instrukcji przeniesienia kr zkw z palika e a a na palik . procedura przenie( s je eli z kr zkw z a na , , za pomoc ): a
, to wypisz , to
kr zkw z a , kr zkw z a
na , za pomoc a na , za pomoc a
Rysunek 1.1: Schemat dziaania procedury przenie dla wie Hanoi z trzema kr zkami s z a
. Skrt
oznacza wywoanie procedury przenie( kr zkw z s a na , za pomoc ). Strzaki a w d oznaczaj wywoanie procedury, strzaki w gr powroty po wykonaniu procedua e ry, a strzaki poziome odpowiadaj nast pstwu instrukcji w ramach jednego wykonania a e procedury.
%
je eli z
), ).
% #
'%
% '& % '&
# "
$ $ $
%
je eli z
je eli z
W j zyku Pascal powy sz procedur mo emy zapisa w nast puj cy sposb: e z a e z c e a function NWD(a,b:integer):integer; begin if a=b then NWD:=a then NWD:=NWD(a-b,b) else if else NWD:=NWD(a,b-a) end;
NWD(2,3):=1
NWD(2,1):=1
3 2 ( 4 10)'
% %
,
"
"
, .
NWD(1,1):=1
Rozdzia 1. Rekurencja
Podobnie mo na deniowa inne funkcje ze zbioru liczb naturalnych w zbir liczb natuz c ralnych. Denicja taka zawiera przepis, jak policzy wartoc funkcji dla wartoci pocz tkowych, c s s a oraz drugi przepis, jak wyliczy wartoc dla argumentu za pomoc wartoci funkcji dla c s a s mniejszych argumentw.
gdzie oraz Rwnoc (1.1) zachodzi dla s i . Za my teraz, ze zachodzi dla wszystkich z argumentw mniejszych od . Zauwa my, ze oraz s rozwi zaniami rwnania z a a , mamy wi c e oraz a tak e z oraz . atwo teraz mo na pokaza , ze z c . Poniewa z , mamy , wi c wartoc e s jest rwna po zaokrgleniu do najbli szej liczby naturalnej i funkcja Fibonacciego ronie a z s wykadniczo.
Funkcja Ackermanna jest przykadem funkcji maj cej doc prost denicj , ale jest praka s a e tycznie nieobliczalna z tego powodu, ze jej wartoci szybko rosn. Na przykad: s a
3 10)' 2 (
D C A @ 9 B
(1.1)
dzielimy go na poowy,
sortujemy te poowy,
Istota pomysu polega na tym, ze mo na szybko po czy dwa posortowane ci gi w jeden z a c a posortowany ci g. Algorytm czenia wyjanijmy na przykadzie. Przypucmy, ze mamy a a s s dwa ci gi: a i ze chcemy je po czy w posortowany ci g . Na pocz tku ci g jest pusty. Usta a c a a a wiamy dwa wska niki po jednym na pocz tku ka dego ci gu (wskazane elementy b d z a z a e a oznaczone daszkiem):
Porwnujemy wskazane elementy. Mniejszy z porwnanych elementw przepisujemy na ci g i przesuwamy wska nik w tym ci gu, z ktrego by wzi ty element do ci gu . a z a e a W wyniku otrzymamy:
Powtarzamy ten proces tak dugo, a w jednym z ci gw ostatni element zostanie zabrany z a do ci gu . a
3 ! 99 9
3
3
9
9
9
i oglnie
A A A 9
9 9 9 9 9
% A A
$ $ $
Rozdzia 1. Rekurencja
Liczba porwna potrzebna do scalenia ci gw nie jest wi ksza od sumy dugoci tych n a e s ci gw. a Algorytm merge-sort (inaczej sortowanie przez scalanie), ktry sortuje ci g , a mo na rekurencyjnie opisa tak (rysunek 8.3): z c merge-sort(S):
je eli z
je eli z
Rysunek 1.3: Schemat dziaania algorytmu merge-sort dla ci gu 3, 7, 5, 2, 6, 1, 8, 4 a 3752|6186 37|52 3|7 3 37 2357 12345678 7 5 25 5|2 2 6 16 1468 6|1 1 8 48 61|84 8|4 4
Algorytm merge-sort jest przykadem algorytmu typu dziel i zwyci zaj, ktrego e oglny schemat wygl da tak: a
czymy a
merge-sort(
merge-sort(
), ), .
dzielimy ci g a
na poowy
3 9
9
$ $ $ $
Druga zale noc wynika st d, ze aby posortowa ci g dugoci , sortujemy dwa ci gi z s a c a s a dugoci s , a nast pnie potrzebujemy porwnan, aby scali te dwie powki. Dla proe c stoty rozwa a zakadamy tutaj, ze jest pot g dwjki, z n e a dka jakiego naturalnego s . Istnieje wiele sposobw wyliczania lub szacowania funkcji okrelonej rekurencyjnie. s Przedstawimy teraz dwa najprostsze z nich: metod podstawiania i metod iteracji. e e
dla jakiej staej s i udowodnimy przez indukcj, ze powy sza nierwnoc zachoe z s dzi dla ka dego pot gi dwjki z e . Zachodzi ona dla . Zakadamy teraz, ze i podstawiamy do nierwnoci (1.3) s
Ostatnia nierwnoc jest speniona, je eli s z . Metoda podstawiania zostaa zastosowana w podrozdziale o funkcji Fibonacciego do pokazania, ze
3 & "
(
)
2
$ $ $
je eli problem jest du y, to: z z dzielimy problem na podproblemy, rozwi zujemy podproblemy, a czymy rozwi zania podproblemw w rozwi zanie caego problemu. a a a
(1.2) (1.3)
(1.4)
10
Rozdzia 1. Rekurencja
ale tam odgadnito dokadne rozwi zanie. Teraz poka emy jak dojc do rozwi znia zaczynajc e a z s a a od oglniejszej postaci. Zacznijmy od rwnania
, otrzymamy
(1.6)
gdzie i to stae, spenia rwnanie (1.5). Sprawd my teraz, dla jakich staych z funkcja spenia zale noci z s i . Otrzymujemu ukad rwnoci s
Jest to rwnanie kwadratowe z dwoma rozwi zaniami a , czyli dwie funkcje oraz Zauwa my, ze tak e ka da funkcja postaci z z z
%
9 $ 9
% % )%
3
%%
D
3 4
%
9
%
%
(1.5)
A
% A
33 &3 9 9
33 3
(
Dla
Skorzystalimy tu z rwnoci s s .
(1.8) 11 .
! "$
( (
12
Rozdzia 1. Rekurencja
gdzie i . Rwnanie takie otrzymamy szacuj c czas dziaania algorytmu a rekurencyjnego, ktry metod "dziel i rz d " dzieli problem na podproblemw rozmiaru a a z . Funkcja opisuje czas potrzebny na podzielenie problemu na podproblemy i na po czenie rozwi za podproblemw w rozwi zanie caego problemu. a a n a Na koniec podamy bez dowodu twierdzenie mwi ce jak mo na szacowa funkcj a z c e okrelon rwnaniem (1.8). s a Twierdzenie 1.1 (o rekurencji uniwersalnej) Niech nych liczb cakowitych rwnaniem rekurencyjnym b dzie okrelone dla nieujeme s
gdzie
oznacza
lub
. Wtedy
Jeeli z
, to
, to
1.11 Zadania
1. Napisz program, ktry rekurencyjnie oblicza: a) funkcj silnia, b) funkcj Fibonace e ciego, c) funkcj wykadnicz . e a 2. Napisz program, ktry oblicza symbol Newtona: a) wedug wzoru rekurencyjnego
Porwnaj te programy.
4. Oblicz
" &
3 2 10)' (
3
% &$ '% $$
#
% $ "
"
b) wedug wzoru
'%
oraz
Jeeli z
, to
" "
&4
4
"
! ! ! ! 4 !" 2
" 9
9
" 2
!
dla
1.11. Zadania
13
6. Stosuj c algorytm merge-sort posortuj ci g sw: sowik, wrbel, kos, jaskka, a a kogut, dzi cio, gil, kukuka, szczygie, sowa, kruk, czubatka. e [Fragment wiersza Ptasie radio Juliana Tuwima] 7. Dana jest funkcja
Oblicz
. Co oblicza funkcja
9. Wypisz ci g przeo e potrzebnych do przeniesienia czterech kr zkw na wie ach a z n a z Hanoi. 10. Udowodnij, ze algorytm opisany w podrozdziale 8.1 wymaga a przeniesienia kr zkw.
%
3 " "
Oblicz
. Co oblicza funkcja
34 "
: ? : ? przeo e do z n
9
Rozdzia 1
Struktury danych
1.1 Listy, stosy i kolejki
Lista to uporzdkowany ci g elementw. Przykadami list s wektory lub tablice jednowya a a miarowe. W wektorach mamy dost p do dowolnego elementu, poprzez podanie indeksu e tego elementu. Przykad 1.1 W j zyku Pascal przykadem typu tablicy jednowymiarowej jest e array[1..N] of integer. Jeeli mamy zmienn tego typu z a a:array[1..N] of integer, to tablica a zawiera N elementw a[1], a[2], ... ,a[N]. W programie moemy odwoywa si do caej tablicy, na przykad w instrukcji przypisania z c e a:=b, lub do pojedynczych elementw: a[i]:=a[i+1]. Moemy take uywa tablic dwu lub wi cej wymiarowych. Przykadem tablicy dwuwyz z z c e miarowej jest typ array[1..N,1..M] of real. Zmienna zawiera elementw. Dla kadej pary liczb z speniaj cej warunki a , element c[i,j] zawiera liczb typu real. e c:array[1..N,1..M] of real
Czasami wygodniej posugiwa si listami bez u ywania indeksw. Przykadami list, c e z ktrych mo na u ywa bez koniecznoci odwoywania si do indeksw poszczeglnych z z c s e elementw, s kolejki i stosy. a 3
Denicja 1.2 Kolejka jest list z trzema operacjami: a dodawania nowego elementu na koniec kolejki,
zdejmowania pierwszego elementu z pocz tku kolejki, a sprawdzania, czy kolejka jest pusta.
Taki sposb dodawania i odejmowania elementw jest okrelany angielskim skrtem s FIFO (rst in rst out, czyli pierwszy wszed pierwszy wyjdzie). Przykady kolejek spotykamy w sklepach, gdzie klienci czekaj cy na obsu enie tworz kolejki. a z a Denicja 1.3 Stos jest list z trzema operacjami: a dodawania elementu na wierzch stosu, zdejmowania elementu z wierzchu stosu, sprawdzania, czy stos jest pusty.
Na stosie dodajemy i odejmujemy elementy z tego samego ko nca, podobnie jak w stosie talerzy spi trzonym na stole. Talerze dokadane s na wierzch stosu i zdejmowae a ne z wierzchu stosu. Taka organizacja obsugi listy okrelana jest angielskim skrtem s LIFO (last in rst out, czyli ostatni wszed pierwszy wyjdzie). Niektrzy w ten sposb organizuj prac na biurku. Przychodzce listy ukadaj na stosie i jak maj czas, to a e a a a zdejmuj jeden list i odpowiadaj na niego. a a Przyjrzyjmy si zastosowaniu kolejki lub stosu do szukania. Przypucmy, ze szukamy e s przez telefon pewnej informacji (na przykad chcielibymy si dowiedzie , kto z naszych s e c znajomych ma pewn ksi zk ). a a e Algorytm szukania ksi zki wrd znajomych a s tworzymy STOS, ktry na pocz tku jest pusty, a wkadamy na STOS numer telefonu swojego znajomego, powtarzamy dopki na stosie s jakie numery: a s zdejmujemy z wierzchu STOSU jeden numer telefonu,
je eli osoba, do ktrej si dodzwonilimy, posiada szukan ksi zk , to koz e s a a e niec poszukiwa , n je eli nie posiada ksi zki, to pytamy j o numery telefonw jej znajomych, z a a ktrzy mog mie ksi zk (lub zna kogo kto j ma); ka dy nowy numer zostaje a c a e c s a z dopisany do STOSU. W powy szym algorytmie zamiast stosu mo e by u yta kolejka. z z c z
pusty ci g, a
je eli jaki wierzchoek jest oznaczony przez , to jego synowie oznaczeni s przez z s a i .
Przy takim oznaczeniu wierzchokw drzewa binarnego nazwa wierzchoka mwi z nam, jaka scie ka prowadzi od korzenia do . Na przykad, aby dojc od korzenia do s wierzchoka nalezy: pjc w prawo do , potem znowu w prawo do , a na koncu w s lewo do .
Je eli mamy drzewo binarne , to z ka dym wierzchokiem mo emy skojarzy z z z c poddrzewo zo one z wierzchoka i wszystkich jego potomkw. Na przykad w z drzewie przedstawionym na rysunku 1.1 wierzchoek wyznacza poddrzewo przedstawione na rysunku 1.2. Rysunek 1.2: Poddrzewo
Mwimy te , ze drzewo skada si z korzenia (wierzchoka ), z lewego poddrzewa z e i z prawego poddrzewa . z Wysokoci drzewa nazywamy dugoc (liczb kraw dzi) najdu szej scie ki w drzes a s e e z wie prowadzcej od korzenia do licia. Na przykad drzewo z rysunku 1.1 jest wysokoci a s s 3.
Przykad 1.4 W drzewie z rysunku1.3 wierzchokowi z etykieta odpowiada wyraenie z , wierzchokowi z etykieta wyraenie z , a korzeniowi wyraenie z
Wyraenie to zawiera wi cej nawiasw, ni to si zwykle stosuje. Normalnie to samo wyz e z e raenie przedstawiamy bez nawiasw w postaci z .
( 3(
je eli wierzchoek ma etykiet , a jego synom przypisano wyra enia z e z , to wierzchokowi przypisujemy wyra enie z
( )
!
!A@
8( 93(
476 & (
4
# $"
& 15&
& '%
i .
Opuszczenie nawiasw mo e prowadzi do niejednoznacznoci lub mo e zmieni z c s z c sens wyra enia. Na przykad wyra enie z z
po opuszczeniu nawiasw stanie si identyczne z wyra eniem e z i zmieni sens. Drzewo, ktre odpowiada wyra eniu z , przedstawiono na rysunku 1.4. Rysunek 1.4: Drzewo wyra enia z
Drzewo wyra enia arytmetycznego oddaje logiczn struktur i sposb obliczania tego z a e wyra enia. z
464
!A
!A@ &
! 7&
! 7&
Istnieje sposb przedstawiania wyra en arytmetycznych nie wymagajcy nawiasw. z a Jest to tak zwana notacja polska lub ukasiewicza. Jest ona te nazywana notacj postxow, z a a poniewa znak operacji stoi na koncu wyra enia, za argumentami, czyli wyra enie w noz z z tacji postxowej ma posta : c pierwszy argument drugi argument operacja. Notacja, do jakiej jestemy przyzwyczajeni, nazywa si inxowa, poniewa operacja znajs e z duje si pomidzy argumentami, czyli wyra enie w notacji inxowej ma posta : e e z c pierwszy argument operacja drugi argument. Przykad 1.5 Wyraenie w postaci postxowej z
W wyra eniach w postaci postxowej nie potrzeba nawiasw. Wartoc wyra enia mo na z s z z w sposb jednoznaczny odtworzy z samego wyra enia za pomoc nast pujacego algoc z a e rytmu.: Algorytm obliczania wartoci wyra enia w postaci postxowej. s z Dla kolejnych elementw zapisu wyra enia: z je eli element jest sta lub zmienn , to wkadamy jego wartoc na stos, z a a s
Zamy, ze zmienne maj nast puj ce wartoci: z a e a s , , , , . Ponisza tabela przedstawia zawartoc stosu po przeczytaniu kolejnych elementw wyraz s zenia.
4
3
!A@
3
dopki STOS nie jest pusty, powtarzamy: je eli jest wierzchokiem na wierzchu STOSU, to sprawdzamy, czy istnieje z syn wierzchoka , ktry nie by jeszcze odwiedzony, najpierw sprawdzamy , a potem . je eli takie si znajdzie, to odwiedzamy , wkadamy go na wierzch STOz e SU i zaznaczamy jako wierzchoek odwiedzony,
je eli takiego nie ma, to zdejmujemy z choka b d cego na stosie pod spodem. e a
Przykad 1.7 Ponisza tabela pokazuje jaki wierzchoek jest odwiedzany i jaka jest zaz wartoc stosu po kadej kolejnej iteracji p tli algorytmu, gdy przeszukiwane jest drzewo s z e z rysunku 1.1.
d e
jako wierzchoek
10
W metodzie przeszukiwania w g b po ka dym kroku algorytmu wierzchoki znajdujce a z a si na stosie tworz scie k od wierzchoka wejciowego do wierzchoka aktualnie ode a z e s wiedzanego. Zauwa my, ze nazwa ka dego wierzchoka na stosie jest preksem (przedz z rostkiem) nazwy nast pnego wierzchoka. Dlatego wystarczy przechowywa ostatnie bity e c wierzchokw na stosie. Nie jest te konieczne zaznaczanie, ktre wierzchoki byy ju z z odwiedzone, wystarczy zauwa y , ze: z c je eli przyszlimy do wierzchoka od jego ojca, to zaden z synw nie by jeszcze z s odwiedzany,
od lewego syna
Oto prostsza wersja algorytmu przeszukiwania w g b: a Algorytm przeszukiwania drzewa w g b (druga wersja). a Dane wejciowe: drzewo . s odwiedzamy korze i wkadamy go na STOS, n dopki STOS nie jest pusty, powtarzamy:
Je eli z
Je eli ostatni operacj na stosi byo wo enie nowego elementu, to: z a a z Je eli z
ale
, to przejd do z
Je eli z
, to przejd do z
i w 0 na stos, z i w 1 na stos, z
ze stosu), to
11
Je eli ostatni operacj na stosie byo zdj cie 0 to: z a a e Je eli z choka .
Je eli ostatni operacj na stosie byo zdj cie 1 to: zdejmij ostatni element ze stosu z a a e i przejd do ojca wierzchoka . z
Przykad 1.8 Ponisza tabela pokazuje jaki wierzchoek jest odwiedzany i jaka jest zaz wartoc stosu po kadej kolejnej iteracji p tli drugiego algorytmu, gdy przeszukiwane jest s z e drzewo z rysunku 1.1. Wierzchoek 0 00 0 01 0 1 10 1 11 110 11 111 11 1
,0 ,0,0 ,0 ,0,1 ,0
Zauwamy, ze etykiety na stosie z czone razem tworz nazw aktualnie odwiedzanego z a a e wierzchoka.
i wkadamy go do KOLEJKI.
Je eli z
, to przejd do z
i w 1 na stos, z
STOS
12
Rozdzia 1. Struktury danych dopki KOLEJKA nie jest pusta, powtarzamy: bierzemy jeden wierzchoek z pocz tku KOLEJKI, a
i wkadamy je na koniec
Poni ej przedstawiono odwiedzane wierzchoki oraz zawartoc kolejki po ka dej kolejnej z s z iteracji p tli algorytmu przeszukiwania wszerz drzewa przedstawionego na rysunku 1.1. e wierzchoki 0,1 00,01 10,11 110,111
W metodzie przeszukiwania wszerz wierzchoki s przeszukiwane w kolejnoci od wierza s chokw b d cych najbli ej wierzchoka pocztkowego do wierzchokw b d cych dalej. e a z a e a
odwiedzamy wierzchoek
(korzen drzewa).
Algorytm ten mo emy krtko przedstawi w schemacie: z c lewe poddrzewo prawe poddrzewo korzen. Przykad 1.9 Jeeli przeszukamy drzewo z rysunku 1.4 i wypiszemy po kolei etykiety odz wiedzanych wierzchokw, to otrzymamy ci g: a
!A@ &
)
), ),
13
Istniej jeszcze dwie inne pokrewne metody przeszukiwania drzew binarnych: inorder a i preorder: Przeszukiwanie inorder. Aby przeszuka (pod)drzewo maj ce swj korzen w wierzchoc a ku :
odwiedzamy wierzchoek
(korzen drzewa),
Przeszukiwanie preorder. Aby przeszuka (pod)drzewo maj ce swj korzen w wierzc a choku :
odwiedzamy wierzchoek
(korzen drzewa), ),
Przykad 1.10 Jeeli przeszukamy drzewo z rysunku 1.4 metod inorder, to etykiety utworz z a a ci g: a czyli wyraenie w postaci inxowej, ale bez nawiasw. Przeszukanie tego samego drzewa z metod preorder da ci g etykiet: a a Jest to tak zwana posta prexowa wyraenia. Znak operacji wyst puje w niej przed arc z e gumentami. Podobne jak w postaci postxowej, posta prexowa da si jednoznacznie c e rozkada i nie wymaga nawiasw. c
& '%
je eli drzewo z
jest puste, to
(wstaw do korzenia ),
!
! A
& '%
),
).
).
14
Rysunek 1.5: Drzewo poszukiwan po wstawieniu elementw: 128, 76, 106, 402
Po wstawieniu pierwszych czterech elementw ci gu otrzymamy drzewo, ktre jest a przedstawione na rysunku 1.5, a po wstawieniu caego ci gu otrzymamy drzewo, ktre a jest przedstawione na rysunku 1.6. Jeeli teraz przeszukamy to drzewo metod inorder, to z a otrzymamy ten sam ci g, ale uporz dkowany: a a
Czyli wszystkie wierzchoki w lewym poddrzewie zawieraja wartoci mniejsze s od wartoci w , a wszystkie wierzchoki w prawym poddrzewie s zawieraja wartoci s mniejsze od wartoci w . s Aby stwierdzi , czy jaki element znajduje si na tym drzewie. Post pujemy podobc s e e nie jak przy wstawianiu elementw. Zaczynamy od korzenia drzewa i szukamy elementu za pomoc poni szego algorytmu. a z
& '%
dla ka dego z
& '%
dla ka dego z
, .
3
5
je eli z
, to wstaw do poddrzewa
je eli z
, to wstaw do poddrzewa
, .
& '%
1.6. Zadania
15
W drzewie poszukiwa binarnych czas wyszukiwania lub wstawiania elementu jest n , gdzie jest wysokoci drzewa. W obu algorytmach tylko raz przechodzimy od s a korzenia w d do licia. Najlepiej by byo, gdyby wysokoc drzewa bya rz du logarytm s s e od liczby wierzchokw, ale nie w ka dym drzewie poszukiwa n binarnych tak musi by . z c
1.6 Zadania
1. Ile wierzchokw mo e mie drzewo binarne wysokoci ? z c s 2. Przeszukaj metod w g b (wszerz) drzewo z rysunku 1.7. a a
& & (
je eli z
!
je eli z
je eli z
& '%
je eli z
je eli z
Algorytm szukania elementu na drzewie . Aby stwierdzi , czy element znajduje si na drzewie c e
(
&
16
Rozdzia 1. Struktury danych 4. Narysuj drzewo dla wyra enie z . Przedstaw to wyra enie w postaci z inxowej i prexowej. Oblicz wartoc tego wyra enia. Przedstaw to wyra enie w s z z postaci inxowej i prexowej. 5. Wypisz w postaci inxowej, prexowej i postxowej wyra enie przedstawione na z rysunku 7. Rysunek 1.7: Drzewo wyra enia z
6. Narysuj drzewo poszukiwan binarnych dla nast puj cego ci gu liczb: 30, 43, 13, 8, e a a 50, 40, 20, 19, 22. 7. Narysuj drzewo poszukiwan binarnych dla nast puj cego ci gu sw: sowik, wre a a bel, kos, jaskka, kogut, dzi cio, gil, kukuka, szczygie, sowa, kruk, czubatka. e [Fragment wiersza Ptasie radio Juliana Tuwima]
Wskazwka. Drzewo binarne nazywa si pene, je eli ka dy jego wierzchoek ma e z z albo dwch synw, albo nie ma synw wcale (jest liciem). s
liciach ma s
8. Udowodnij, ze ka de drzewo o z
werzchokach ma
))
Rozdzia 1
Teoria liczb
1.1 Dzielenie cakowitoliczbowe
Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych. Podzielmy 1743 przez 12. 1 7 2 5 4 4 4 4 8 6 6 5 3
1 1
3 0 3
i reszta jest mniejsza od dzielnika. Podobnie mo emy postapi dla dowolnych liczb natuz c ralnych i pod warunkiem, ze .
& '!
Twierdzenie 1.1 Dla dowolnych liczb naturalnych oraz para liczb naturalnych i speniajacych warunki:
) ( ) ( 1! 2 3$ 0
B ! 9 CA@
a Zauwa my, ze iloraz jest zaokrgleniem w d normalnego ilorazu z cakowitoliczbowy liczb i b dziemy oznacza przez e c
W ! US Q VITR P H @IG ! D FE ! (
7 8
" #! $ %
! 4 65)
4 a reszt przez e
W przypadku, gdy i sa liczbami cakowitymi iloraz i r nice mo na rznie deniowa c. z z Na przykad w j zyku Pascal iloraz dwch liczb typu cakowitego oznacza si przez e e zaokrglenie ilorazu a w d, gdy jest dodatnie i , i jest to zaokrglenie ilorazu a w gr, gdy e jest ujemne. Reszta, ktr oznacza si przez a e a mod b, jest okrelona wzorem: s a mod b = a-(a div b)*b. Mamy wi c, na przykad: e 22 div 4 = 5; (-22)div 4 = -5; 22 div(-4)= -5; (-22)div(-4)= 5; 22 mod 4 = 2; (-22)mod 4 = -2; 22 mod(-4)= 2; (-22)mod(-4)= -2.
! 9 AT ! 9 AT ! 9 A@ ! @ 9 B ! 9 CAT
a div b
Dowd. Je eli z
oraz
Mamy wi c: e oraz
")!
czyli
dzieli
oraz
W $ $ # !"!
($
('& $ #
# '&
!
$ # %
# %
# %
!
!
oraz
, to
Przykad 1.3
oraz
. oraz
Liczb e
Q T
!
, takie ze:
!9 A@
Q T
Przykad 1.2
oraz
, poniewa z
oraz
62 $
F'E%
W Q ! T
A
A
Lemat 1.6 Relacja przystawania modulo jest relacj rwnowanoci, czyli spenia nast puj ce a z s e a trzy warunki:
Q $ T ($ T Q
dzieli:
Przykad 1.8 Twierdzenie 1.7 moe by uyte do obliczania reszty z dzielenia Jeeli chcez c z z my policzy na przykad c
&
oraz
($ T Q
($
$
Q
Q T
! ($ Q
! !" $ $
oraz
to:
! ($
$
oraz
! ! "$ ($ T Q
$ T Q
! "$
$ T Q
$ T Q
!!
jeeli z
to
$ T Q
to
($ T Q
Q T
W 1
Q T $ T Q
"$ $
$%# !
Q T
%
!
!! $
to pytamy, ktra z trzech liczb przystaje do 1999 modulo 3. Zrbmy najpierw kilka prostych obserwacji. Po pierwsze:
bo . Z twierdzenia 1.7 wynika, ze kada pot ga liczby dziesi c przystaje do 1 z e e modulo 3, czyli: dla kadego . Mamy teraz: z
Q
wystarczy zauway , ze liczba z c jest parzysta, wi c take wynik mnoenia powinien e z z by parzysty. Mwiac inaczej z oraz , wi c na e podstawie twierdzenia 1.7 mamy , a liczba przystaje do jedynki modulo 2. Podobnie moemy si przekona , ze z e c
A $$
($ Q
$
$
Q T
Q T@$ $
Q T
$ % Q T
$ $ $ A$ $ $ $
Q $ F T $
$ $
czyli
Q T
to
$
Q T
Q T
$ $
$
$
( oznacza zbir liczb cakowitych). Zbir klas abstrakcji modulo oznacza si przez e . Poniewa relacja modulo jest zgodna z dziaaniami dodawania i mno enia, mo emy z z z zdeniowa dodawanie i mno enie na klasach abstrakcji. Mwi c w skrcie, aby wykoc z a na dziaanie na dwch klasach abstrakcji, wybieramy dowolnych przedstawicieli tych c
Dla dowolnego
z przedziau
# $ # # $ 2 # 5$ 2 $ W W $ W
, klasa
W
$
jest postaci:
($ T Q
, a z lematu 1.11
W 1
$ QT
$ T Q
to
W
a wi c pokazalimy, ze: e s
$ T Q
"
$ T Q
to
i z przechodnioci relacji s
Dowd. Je eli z
$ T Q
WW W A W W W $
to
$ W W W
, czyli:
1.5. Piercie s n
W # # W W W W W # # W # # W W
$
klas i wykonujemy dziaania na tych przedstawicielach. Dokadniej, dodawanie klas abstrakcji deniujemy nast puj co: e a
W
Poni szy lemat pokazuje, ze dziaania te s dobrze zdeniowane; ze wynik dziaania na z a dwch klasach nie zale y od wyboru reprezentantw. z
a z twierdzenia 1.7:
Zbir z dwoma dziaaniami speniaj cymi powysze warunki nazywa si piercieniem a z e s przemiennym z jedynk . a
mnoenie jest rozdzielne wzgl dem dodawania, czyli dla kadych trzech klas z e z , mamy .
klasa
mamy ,
V
V
, taka ze
$
klasa
$
A$
W W W $
ich suma
mamy ,
W
$
oraz
W
W 1
$ T Q
($ T Q
oraz
to:
&
$ 0 $
0
0 0
Skorzystalimy w tym dowodzie z rozdzielnoci mno enia wzgl dem dodawania dla liczb s s z e cakowitych. Przykad 1.16 Rozwamy zbir reszt modulo 5. Skada si on z pi ciu klas: z e e
0 0 0 0 0 0
1 0 1 2 3 4
2 0 2 4 1 3
3 0 3 1 4 2
4 0 4 3 2 1
Zauwamy, ze kady element oprcz zera ma w z z element odwrotny wzgl dem mnoenia, e z czyli dla kadego z istnieje taki ze :
W
Dlatego jest ciaem, czyli piercieniem przemiennym z jedynk i z odwrotnoci wzgl dem s a s a e mnoenia. z Przykad 1.17 Rozwamy teraz piercie reszt modulo 4: z s n
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
czyli zero mona przedstawi jako iloczyn dwch liczb rnych od zera. z c z
nie jest ciaem, poniewa nie ma w nim elementu odwrotnego do 2. Ponadto w z mamy:
$
$
$
1.5. Piercie s n
% $
E
$
10
atwo zauwa y , ze je eli liczba z c z jest zo ona, z dla , to w piercieniu s mamy i ani , ani nie maj elementw odwrotnych. Przypucmy a s bowiem, ze istnieje . Mamy wtedy:
czyli , sprzecznoc. Tak wi c s e nie jest ciaem, je eli z jest liczb zo on. a z a ci tego rozdziau zobaczymy, ze je eli jest liczb pierwsz , to W dalszej cz s e z a a jest ciaem.
je eli z
0
, to koniec,
Powy szy algorytm odejmuje od wi kszej liczby mniejsz tak dugo, a liczby b d rwz e a z e a ne. Wtedy wynikiem dziaania algorytmu jest wsplna wartoc tych liczb. W uproszczos nej wersji j zyka Pascal algorytm Euklidesa mo na zapisa w nast puj cy sposb: e z c e a p:=a;q:=b; while p<>q do if p>q then p:=p-q else q:=q-p; NWD(a,b):=p
W poni szej tabeli pokazano kolejne kroki dziaania algorytmu Euklidesa na parze z liczb 36 i 15:
je eli z
, to
!
&
je eli z
0
, to
(
$
%
!
#$ !
#$
11
36 21 6 6 6 3
15 15 15 9 3 3
Tak wi c 3 jest najwi kszym wsplnym dzielnikiem liczb 15 i 36. e e Poprawnoc algorytmu Euklidesa wynika z poni szego lematu. s z
4 ( 4
Lemat 1.18 Niech i b d dwoma liczbami naturalnymi i niech e a para ma taki sam zbir wsplnych dzielnikw jak para , .
(
Dowd. Je eli liczba jest wsplnym dzielnikiem pary z , to dzieli tak e z , czyli jest wsplnym dzielnikiem pary , . Na odwrt, je eli liczba jest wsplnym dzielnikiem pary z , , to dzieli tak e z , czyli jest wsplnym dzielnikiem pary . Tak wi c po ka dej iteracji p tli while para e z e ma taki sam zbir wsplnych dziel nikw, a wi c tak e taki sam najwi kszy wsplny dzielnik. Na ko ncu, gdy e z e , wwczas oczywicie s . Nale y jeszcze pokaza , ze dla ka dej pary dodatnich liczb naturalnych i algorytm z c z zatrzyma si . Ale to wynika z faktu, ze po ka dej iteracji p tli while liczba e z e
( !
jest coraz mniejsza, a poniewa jest to zawsze liczba naturalna dodatnia, wi c nie mo e z e z zmniejsza si w niesko czonoc. Zauwa my przy okazji, ze je eli jedna z dwch liczb, c e n s z z lub , jest zerem, to algorytm nie zatrzyma si . e Twierdzenie 1.19 Niech i b d dwoma dodatnimi liczbami naturalnymi i niech e a . Wtedy istniej liczby cakowite i , takie ze: a
Dowd. Poka my, ze wszystkie wartoci, jakie przyjmuj zmienne i w trakcie wyz s a konywania algorytmu Euklidesa, s cakowitoliczbowymi kombinacjami liczb i . Na a pocz tku, gdy a i , mamy:
! ( W ! % $ % (
Z tego wynika, ze tak e ostateczna wartoc zmiennej (ktra jest rwna ) jest cakowitoliczbow z s a kombinacj liczb i . a
W ! 1
!
!
Wtedy w
W ! 1
( 6&
oraz ze zachodzi:
i .
! @
!
! $
. Wtedy
! (
12
Algorytm Euklidesa mo na tak zmodykowa , aby oprcz najwi kszego wsplnego z c e dzielnika , wylicza tak e liczby i , takie ze: z
W 1 ! ! ( T
Oto ten algorytm w j zyku Pascal: e p:=a;q:=b; xp:=1;yp:=0; xq:=0;yq:=1; while p<>q do if p>q then begin p:=p-q; xp:=xp-xq; yp:=yp-yq end else begin q:=q-p; xq:=xq-xp; yq:=yq-yp end; NWD(a,b):=p; x:=xp,y:=yp
W poni szej tabeli pokazano kolejne kroki dziaania rozszerzonego algorytmu Eukliz desa na parze liczb 36 i 15:
(
36 21 6 6 6 3
15 15 15 9 3 3
1 1 1 1 1 3
Zauwa my, ze je eli jaka liczba dzieli liczby i , to dzieli tak e ka d ich kombinacj z z s z z a e cakowit a a wi c dzieli tak e najwi kszy wsplny dzielnik e z e lemat.
0 -1 -2 -2 -2 -7
! ! @
! @
( )
0 0 0 -1 -2 -2
1 1 1 3 5 5
13 i .
!
mo e by rwz c Z lematu 1.20 wynika, ze najwi kszy wsplny dzielnik e nowa nie zdeniowany jako taki wsplny dzielnik liczb i , ktry jest podzielny przez z ka dy wsplny dzielnik i . z Lemat 1.21 Liczba jest najwi kszym wsplnym dzielnikiem liczb i wtedy i tylko e wtedy gdy b dzie wsplnym dzielnikiem i oraz istniej liczby cakowite i , takie e a ze . to , oraz (z twierdzenia 1.19) istniej liczby cakoa Dowd Je eli z wite i , takie ze: . Na odwrt, je eli dzieli i oraz z , to ka dy wsplny dzielnik i z dzieli , a wi c jest najwi kszym wsplnym dzielnikiem i . e e
! @ ! ! ! !
oraz 2 jest wsplnym dzielnikiem 1998 i 2000, wi c e Zastanwmy si teraz, ile wynosi e
. Poniewa: z
wi c e
$ #
$ #
&
Liczba takie, ze
, ktra nie jest pierwsza jest zo ona. Istnieja wtedy dwie liczby , z .
%
$ $ A$
% AA $ $ $ @A A$
A @ A A
$ $ A$
, to
. Poniewa: z
!!
!
! @
$ $ A$
! ! @ 3 !!
&
@$ $ AA $ $
! @
14
Dowd nie wprost. Przypucmy, ze istnieje liczba naturalna , ktrej nie mo na przeds z stawi jako iloczynu liczb pierwszych i ze jest najmniejsz tak liczb . nie mo e by c a a a z c liczb pierwsz (bo wtedy a a ), wi c jest liczb zo on, czyli jest postaci: e a z a
na czynniki pierwsze:
W )
Aby pokaza , ze rozkad jest jednoznaczny (z dokadnoci do kolejnoci czynnikw), c s a s musimy najpierw udowodni dwa lematy. c Lemat 1.25 Niech i b d dodatnimi wzgl dnie pierwszymi liczbami naturalnymi. e a e z , to . Wtedy dla dowolnej liczby , jeeli
(
( (
Mamy dwa przypadki: albo dzieli W drugim przypadku mamy . Z lematu 1.25 wynika teraz, ze dla jakiego s .
) 2 R 2
, albo nie. W pierwszym przypadku . , bo 1 i to jedyne dzielniki liczby dzieli a z zao enia indukcyjnego, ze z .
Dowd przez indukcj ze wzgl du na . Dla e e mamy , a poniewa z pierwsza i , wi c e . Za my teraz, ze teza zachodzi dla i przypucmy, ze dzieli z s
. jest
i , takie ze:
)
) )
) )
( (
@ !
&
( (
( (
!
$ #
&
dla pierwsze
. Ale poniewa z
W (
$#
&
( (
$ #
15
Udowodnimy teraz, ze rozkad liczby na czynniki pierwsze jest jednoznaczny, z dokadnoci s a do kolejnoci czynnikw. s
&
Dowd. Twierdzenie 1.24 orzeka, ze liczba ma rozkad na czynniki pierwsze. Trzeba pokaza , ze jest to rozkad jednoznaczny. c jako liczba pierwsza ma jednoznaczny rozkad. Przypucmy, ze jest najmniejsz liczb z dwoma r nymi rozkadami: s a a z
z e c Wtedy z jednej strony nie mo e wyst powa po prawej stronie rwnania (1.1), bo byoby mniejsz liczb z niejednoznacznym rozkadem. Z drugiej strony a a dzieli praw a stron , a wi c, z lematu 1.26 wyst puje po prawej stronie. Mamy wi c sprzecznoc. e e e e s Lemat 1.28 Jeeli i s wzgl dnie pierwsze, to ich rozkady s roz czne, to znaczy z a e a a maj roz czny zbir liczb pierwszych wyst puj cych w ich rozkadach. a a e a
$
Teraz wystarczy przyj c za a tak liczb z przedziau od 1 do a e do modulo . Z drugiej strony je eli istnieje element z odwrotny do to
($ T Q
$ T Q
a wi c e
dzieli
, czyli:
Dowd. Je eli z
($
i , takie ze:
, ktra przystaje
($
Q
bo
i oznaczamy przez
. . Oprcz 3 w odwra.
W 1
$ T Q
, takie, ze
W ( W W
W W W
4 W @W W
gdzie
W W W
(1.1)
Z powy szego dowodu wynika, ze element odwrotny do mo na wyliczy stosuj c z z c a algorytm Euklidesa. Na przykad policzmy element odwrotny do 12 w piercieniu s . Najpierw zastosujemy algorytm Euklidesa, aby obliczy i , takie ze: c
12 12 7 2 2 2
AE
1 1 1 1 3 5
0 -1 -1 -1 -4 -7
0 0 -1 -2 -2 -2
1 1 2 3 3 3
! T
jest
!
, a elementem odrotnym do
"
z Lemat 1.34 Jeeli liczba jest pierwsza, to kady element z calny, czyli piercie s n jest ciaem.
Przykad 1.33
. , jest odwra-
oznaczamy przez
. .
(wniosek 1.22).
W Q T Q
$ #
$ #
'
%
$
$
17
Rozpatrzmy najpierw przypadek, gdy i s wzgl dnie pierwsze, czyli gdy a e . Dla i wartoci funkcji przedstawia tabela s x 3x 0 0 1 3 2 6
3 1
4 4
5 7
6 2
7 5
ma dokadnie jedno rozwi zanie w piercieniu a s , jest ono rwne . Funkcja jest permutacj w a i wykorzystuje si j , gdy trzeba wymiesza (przee a c . Zauwa my, ze jest tak e permutacja w z z . Rzeczywicie, s permutowa ) elementy c je eli z , to na podstawie lematu 1.35 . Mamy wi c e .
Rozpatrzmy teraz przypadek, gdy i nie s wzgl dnie pierwsze, czyli gdy a e . Dla i wartoci funkcji przedstawia tabela s x 6x 0 0 1 6 2 4
3 2
4 0
5 6
6 4
7 2
s rwnowane, czyli maj ten sam zbir rozwi za w zbiorze liczb cakowitych. a z a a n
$ T Q
9 !
9 @
oraz
$ T Q
oraz
!
, to rwnania
$#
to istnieje takie , ze
!
mog by tylko a c
($
&
$ T Q
($
, to funkcja
!
&
&
i funkcja
, ktra
($
($ T Q
&
&
$
&
18 Dowd
takie ze
W
S to wszystkie liczby ze zbioru a speniaj ce rwnania (1.4) i (1.3), czyli a wszystkie rozwi zania rwnania (1.2) w piercieniu a s . Przykad 1.38 Rozwi zmy rwnanie a
Q T
Poniewa z
Ale teraz
#
$ Q
$ T Q
W 1
W W W 9
$ W W W
9 !
9 !
F
9 @
9 @
9 9 $ @
w piercieniu s
($ Q $ W W $ W
Przypucmy teraz, ze s
(1.2) , ze (1.3)
(1.4)
(1.5)
$ T Q
$ #
takie, ze
$#
9 !
9 @
takie ze
($ Q
9 @
$ W W W
19
i chcemy ten tekst zaszyfrowa . W tym celu uto samiamy zbir liter z elementami pierc z scienia :
Rzeczywicie: s
12 0 19 4 24 10
10 20 15 8 0 16
Jeeli za zastosujemy ten sam szyfr do pocz tkowego zdania z wiersza Lokomotywa Juz s a liana Tuwima: stoi na stacji lokomotywa, to otrzymamy: spewhuspuotwneqekepagu.
(
T
$ $
Sowo
litera m a t e y k
szyfr k u p i a q
, , , ,
W T
$ $ $
$ A
)!
W 1
Q T
Q
) ( $ # !
, takie ze
W W % W
% $
, i szyfrujemy litera po
20
A oto program w j zyku Pascal, ktry szyfruje teksty zapisane za pomoc 26 liter alfabetu e a aci skiego: n var t:string; a,b,i,m:integer; begin writeln(podaj klucz); write(a=); readln(a); write(b=); readln(b); writeln(podaj tekst do zaszyfrowania); readln(t); for i:=1 to length(t) do begin m:=((ord(t[i])-97)*a+b)mod(26)+97; write(chr(m)) end end. Komentarz. Zmienna t jest typu string, czyli ancuch. Tak zmienn mo na traktowa a a z c jak tablic z indeksami od 1 do length(t) i z wartociami typu char (znak). Zmienne e s typu char s przechowywane w jednym bajcie i mog zawiera jeden znak. List znakw a a c e wraz z odpowiadajcymi im numerami (od 0 do 255) zawiera tak zwany kod ASCII. Mae a litery alfabetu aci skiego maj tam numery od 97 a, do 122 z. n a Instrukcja readln(t) czyta z klawiatury tekst do zaszyfrowania i zapisuje go do zmiennej t. Elementy tablicy t[i], dla i od 1 do length(t), zawieraj poszczeglne znaki naszego tekstu. a Funkcja ord przypisuje znakom ich numery w kodzie ASCII, a funkcja chr dziaa na odwrt, przypisuje znak numerowi. P tla for, dla ka dego znaku tekstu t po kolei, e z wylicza numer tego znaku po zakodowaniu: m:=((ord(t[i])-97)*a+b)mod(26)+97, a nast pnie drukuje zakodowany znak na ekranie: e write(chr(m)). Klucz do kodowania przechowywany jest w postaci dwch liczb, a i b, typu integer. Szyfry liniowe s bardzo starym wynalazkiem. W prostszej wersji z a stosowa je ju Juliusz Cezar. Ich wad jest to, ze bardzo atwo daj si ama . Czasami z a a e c wystarcza odgadnc, jak zaszyfrowano dwie litery. Mo na to zrobi analizuj c cz stoci a z c a e s wyst powania liter w zaszyfrowanym tekcie. e s Przykad 1.40 (kontynuacja przykadu 1.39) W naszym drugim zaszyfrowanym tekcie s litera wyst puje cztery razy, a litery i po trzy razy. Moe to nam pomc w odgadniciu, e z e
1.13. Chi skie twierdzenie o resztach n ze litera koduje liter , a litera koduje liter . Mamy wi c dwa rwnania: e e e
21
Korzystaj c z algorytmu Euklidesa, moemy teraz wyliczy element odwrotny do 5 w piera z c scieniu . Jest to 21, poniewa: z
obliczano i zapamitywano reszty z dzielenia liczby zonierzy przez te liczby. W celu e obliczenia reszt kazano zonierzom ustawi si trjkami, pi tkami i sidemkami. Je eli c e a z przy nast pnym apelu wszystkie trzy reszty byy takie same, to znaczyo, ze nie brakuje e zadnego zonierza. Zobaczmy, jak ten sposb dziaa. We my najpierw dwie liczby: z
W
0 1 0 1 0 1
0 1 2 0 1 2
Q
Q T
a 0 1 2 3 4 5
Q T
W 1
Q T
Q T
oraz
V@
W 1
@%
QT Q T
Q T
! !
%
%
A @
#
F
Z tego wida , ze sposb chi skich generaw, z liczbami 2 i 3, liczy zonierzy z dokadnoci c n s a do pi ciu. e Sytuacja jest inna, je eli z i nie s wzgl dnie pierwsze. Je eli, na przykad, a e z i , to wrd liczb od 0 do s istniej takie, ktre maj takie a a same reszty, na przykad 1 i 13:
Rzeczywicie, z pierwszej rwnoci wynika, ze powinno by nieparzyste, a z drugiej, s s c ze parzyste. Je eli jednak z i s wzgl dnie pierwsze, to ka da z liczb od 0 do a e z ma inny zestaw reszt oraz dla ka dej pary reszt z , speniaj cych warunek a , , istnieje liczba , taka ze:
4
b d dodatnimi liczbami wzgl dnie pierwszymi, to znaczy dla kadej pary e a e z mamy , oraz niech
2 $$ $
T Q
W 1
QT Q T
Q $ T
Q Q
$ T Q
A
#
$ W $ $ W W
#$
W W W
Q T
$ $
r ni si o wielokrotnoc liczby z a e s
E
Q T
, czyli:
W 1
4
QT Q T
#$
2 $
Q T
2
$ QT Q T
ma inny zestaw reszt oraz dla ka dej pary reszt z , , istnieje liczba , taka ze:
$ $
$ $
2 5$
1.13. Chi skie twierdzenie o resztach n b d dowolnymi resztami. Wtedy istnieje liczba cakowita , taka ze: e a
23
Ponadto jeeli liczby i s rozwi zaniami ukadu kongruencji (1.6), to ich rnica z a a z dzieli si przez iloczyn wszystkich liczb , czyli przez: e
W
We my teraz dowolne z . Poniewa rozkady liczb z s roz czne, wi c a a e wyst puje w rozkadzie jakiego e s , czyli dzieli oraz , a wi c w rozkadzie e liczby , liczba wyst puje z wykadnikiem e . Dlatego dzieli . Zobaczymy teraz, ze ukad (1.6) ma rozwi zanie. Niech a , czyli:
We my teraz: z
dla ka dego , a wi c z e
$ Q
co daje:
$ T Q
"
, to
, oraz:
$
W 1
$ T Q
oraz istnieje
$ 9
$ W W $ W
$ W W W
$ $ $
!% ! 3
dzieli dzieli
$ W W $ W
$
czyli
W 1
$ Q
W 1
Q $ T
$ Q
$ Q
$ T Q $
W W W
$ T Q
(1.6)
mamy:
24
Przykad 1.42 Kada z liczb od 0 do z ma inny zestaw reszt wzgl dem e liczb 3, 5 i 7. Tak wi c stosuj c sposb chi skich generaw z liczbami 3, 5, 7 moemy e a n z liczy zonierzy z dokadnoci do 104. c s a Ale sposb chi skich generaw pozwala take stwierdzi , o ile zmienia si liczba n z c e zonierzy. Przypucmy bowiem, ze na porannym apelu byo zonierzy i uzyskano reszty: s
Jak wida , chi skie twierdzenie o resztach pozwala wnioskowa o du ych liczbach za c n c z pomoc operacji na maych liczbach. Zobaczmy teraz inne zastosowanie tego twierdzenia. a Przykad 1.43 Zastanwmy si , ile wynosi reszta z dzielenia liczby e
, to
$ T Q
$
czyli
, te jest pierwiastkiem . z i
s jedynymi pierwiastkami a
($
Q T
$ $ T Q
$
Przykad 1.45 W
($ Q
w piercieniu s
Q T
W W W $
Q T
oraz
W QT QT Q T
Q T
wtedy rnica z
Q T
Q T
Q T
Q T
3 $
Q T
, a wi c: e
Q T
25
Oglnie rozwa my liczb z e ktra jest iloczynem dwch r nych liczb pierwszych z . We my teraz dowoln liczb , dla ktrej z a e
oraz Wtedy
$
$
b) Jeeli z
$
Lemat 1.50
, bo w
odwracalne sa , ,
. .
$
Denicja 1.48 Funkcja Eulera, jest to funkcja, ktra liczbie elementw odwracalnych w . Z denicji przyjmujemy
%
Zauwa my, ze z
oraz
przypisuje .
( T Q
"
( T Q
Q T ( Q 5T QT ( T Q
Q
Q T Q T
Q T
Q Q T
"
( T Q
W 1 (
oraz
( T Q
Q T
lub
Q T
lub
$
i mamy wtedy
liczb e
$ T Q
dzieli
lub
!
, to
($ T Q $ ($ Q
, a poniewa z ,w
( Q
Q T
Q T
& ( 5F&
oraz
)
Par reszt speniaj cych warunek (1.7) jest a , a z chinskiego twierdzenia odpowiada dokadnie jedna para reszt, i na o resztach ka dej liczbie , z odwrt ka dej parze reszt odpowiada jedna liczba. Tak wi c liczb wzgl dnie pierwszych z e e z jest
y:=1; for i:=0 to k do y:=y*a mod n W kryptograi oblicza si pot gi z wykadnikami posiadaj cymi po kilkaset bitw. Do e e a takich zastosowa powy szy algorytm jest nieprzydatny (wymaga on mno e n). n z z Poka emy teraz jak mo na pot gowa du o szybciej. Zauwa my, ze z z e c z z
Dlatego, aby obliczy pot g o wykadniku, ktry jest pot g dwjki c e e e a wykona c
i oglnie
nale y z
Q T
Teraz zastanowimy si jak mo na pot gowa , czyli jak obliczy e z e c c oraz . Pierwszy nasuwaj cy si algorytm pot gowania polega na a e e zeniu przez :
oraz
Q
$ Q
$
oraz
(1.7)
2 5$
$
W W W
$ )
$
W 1
( $
)
27
, , , .
gdzie to cyfry rozwinicia dwjkowego . e Powy sze uwagi sugeruj nast puj cy algorytm obliczania pot gi . z a e a e Algorytm szybkiego pot gowania e Dane wejciowe: podstawa a oraz wykadnik k=(dj,...,d0) w postaci binarnej. s x:=a; y:=1 if d0=1 then y:=y*a mod n for i:=1 to j do x:=x*x mod n; if di=1 then y:=y*x mod n Zmienna x zawiera kolejne pot gi o wykadnikach b d cych pot gami 2. Na pocztku e e a e a . Po tej iteracji p tli for e . Je eli z to mno ymy przez z . Na ko cu n Przykad 1.53 Przeledmy dziaanie algorytmu podczas obliczania s z . w zapisie dwjkowym ma posta c . Ponisza tabela zawiera wartoci zmiennej x z s i y przed wejciem do p tli for i=0) oraz po kadej iteracji. s e z i 0 1 2 3 4 x 2 4 3 9 3 y 2 8 8 8 11
Q T
Zauwa my, ze wyniki porednie, i ostateczny, nale a do z s z i algorytm nie potrzebuje zbyt du ej pamici. Algorytmu tego nie mo na stosowa do obliczania z e z c w liczbach cakowitych, je eli jest du e, to wynik ostateczny oraz porednie b da zbyt du e, zeby z z s e z mg si zmieci w pami ci komputera. e s c e
$ A A$
Q T
trzeba wymnoy z c
%
Q T Q Q Q
obliczmy
% # 31 % % E
, to
28
to zgodnie z lematem 1.36 otrzymamy te same elementy tylko w innej kolejnoci. s Wymn my teraz elemnty obu ci gw z a
(
Q
W 1
$ T Q
($ T Q
W W W
W W W
, wtedy
Q
29
ka dy znak jako 8 bitw i cay ci g mo e by traktowany jako liczba w postaci dwjkoz a z c wej.) Bob szyfruje wiadomoc przy pomocy funkcji szyfrujcej s a
, to
W
ale je eli z , to . Tak wi c e . Do powy szego potrzebne byo zao enie, ze z z . Ale gdy kto tra na s wiadomoc , ktra nie jest wzgl dnie pierwsza z , to Alicja ma pecha, poniewa wtedy s e z mo na dokona rozkadu liczby i zama jej szyfr. z c c atwo te mo na pokaza , ze z z c . Niesymetryczne szyfry daj nowe mo liwoci. Mo na ich na przykad u ywa do a z s z z c podpisu. Aby podpisa jak s wiadomoc , Alicja szyfruje j swoim szyfrem prywatc a s a nym i jest to podpis wiadomoci . Alicja wysya Bobowi par s e . Zeby sprawdzi , ze wszystko si zgadza Bob szyfruje podpis publicznym kluczem Alicji c e i sprawdza czy
. Jednak ten
$
$
#
Q T
Q T
$
&
Q T
Poniewa z
, wi c istnieje e
takie, ze
R#
Q T
&
Mamy
Q T
Q T
, czyli
$
30
Je eli z , to orzekamy, ze liczba jest pierwsza. W tym przypadku z c z s mo emy si pomyli . Liczba mo e by zo ona a mimo to wylosowalimy pechowo i z e c . Ale zachodzi nast puj cy lemat. e a
Q T
r nych mi dzy sob (lemat 1.36), z ktrych ka dy jest swiadkiem Fermata. Rzeczywiz e a z scie A wi c swiadkw zo onoci jest co najmniej poowa. e z s Je eli jest pierwsze, to z Twierdzenia Fermata, algorytm zawsze orzeknie dobrze. z Z lematu 1.57 wynika, ze je eli jest zo ona i istnieje swiadek Fermata dla , to takich z z swiadkw jest co najmniej poowa, i nasz algorytm pomyli si z prawdopodobie nstwem e . Prawdopodobie sto, to mo na zmniejszy poprzez powtrzenie algorytmu razy, n z c z r nymi wylosowanymi . z Istniej jednak liczby zo one , ktre nie maj swiadkw zo onoci. Na przykad a z a z s . Kopot bierze si st d, ze e a ,a dzieli si przez e , oraz przez . Dlatego dla dowolnego , je eli z , to jest wzgl dnie pierwsze z , i e oraz mamy
Takie liczby nazywaj sie liczbami Carmichaela. Pierwsze trzy z nich to 561, 1105 i 1729. a Wyst puj one bardzo rzadko, jest ich tylko 255 wrd liczb mniejszych od 100 000 000. e a s
W 1
Q T
Q
A#
Q T
Q T Q T
"
! W T W W
'
Dowd. Przypucmy, ze s
"
Lemat 1.57 Jeeli istnieje takie z , ze wa elementw jest swiadkiem Fermata dla .
, to przynajmniej poo-
oraz Denicja 1.56 Tak liczb , dla ktrej a e b dziemy nazywa swiadkiem Fermata dla , poniewa zawiadcza ona, ze e c z s
"
Q T
"
Q T
&
W ! W W
! T
Q T
!
Q
31
Zauwa my, ze w tym ci gu ka da liczba jest kwadratem poprzedniej. Je eli wrd tych z a z z s liczb nie ma jedynki, to z twierdzenia Fermata wynika, ze jest zo ona, bo wtedy z
W 1
to patrzymy na poprzedni element . Je eli z , to znale limy nietrywialz s ny pierwiastek z 1. Z twierdzenia 1.46 wynika, ze jest to mo liwe tylko wtedy gdy nie z jest pierwsze. Je eli z , to orzekamy, ze jest pierwsze. atwo wi c wida , ze je eli jest pierwsze, to test zawsze odpowie prawidowo, e c z niezale nie od losowania. Wiadomo te , ze je eli jest zo ona i nie jest pot g liczz z z z e a by pierwszej, to z prawdopodobienstwem wi kszym ni e z wykryjemy to (dowd tego faktu wybiega poza zakres tej ksi zki i pomijamy go). a W praktyce stosujemy wszystkie trzy testy na raz. Maj c nieparzyst liczb , naja a e pierw sprawdzamy, czy dzieli si ona przez kilka kolejnych liczb pierwszych e
Dobr zale y od tego jak du e liczby sprawdzamy. W ten sposb eliminujemy du a z z z cz sc liczb. Zauwa my, ze obliczajc iloczyn tych liczb e z a
dzieli
dla jakiego nieparzystego. s Losujemy . Sprawdzamy, czy (je eli z , to jest zo ona). z Nast pnie obliczamy e . Je eli z , to koniec, stwierdzamy, ze jest pierwsza. Je eli z , to obliczamy po kolei
& V
G
W
Q T
"
Q
W W W
Q T
Q
W W W
Q T
"
" Q T
Q
Q T
32
Po przejciu pierwszego testu stosujemy test drugi, a gdy liczba go przejdzie stosus jemy test trzeci. Poniewa liczby Carmichaela s doc rzadkie, wi c drugi test wyeliminuje wi kszoc z a s e e s liczb zo onych. z Je eli chcemy wyklosowa liczb pierwsz to losujemy nieparzyst liczb , a mast pnie z c e a a e e sprawdzamy, czy jest ona pierwsza. Je eli nie, to sprawdzamy nast pne liczby z e .
1.20 Zadania
7. Oblicz
11. Podaj rozkad na czynniki pierwsze liczb 12. Ile dzielnikw ma liczba
oraz
Q $ T
$ T Q
b d dowolnymi dodatnimi liczbami cakowitymi. Dla jakich par e a istniej liczby speniaj ce ukad kongruencji: a a
T Q Q T
istniej liczby a
A
$
speniaj ce rwnanie: a
$
9. W piercieniu s
rozwia rwnania: a) z
, b)
Q
%
8. W piercieniu s
rozwia rwnania: a) z
. . .
%
oblicz
!
@ ! T $ A$
$ $
5. W piercieniu s
rozwia rwnania: a) z
, b)
E
4. W piercieniu s
rozwia rwnania: a) z
, b)
. . i
3. W piercieniu s .
rozwia rwnania: a) z
, b)
, c)
V
2. W piercieniu s
wykonaj dziaania
oraz
. , d)
'
oraz
znajd liczb z e
taka,
$
$ A
$
Q T
$ $
V
WW IIW
1.21. Problemy
33
1.21 Problemy
1.21.1 Najwi kszy wsplny dzielnik e
Udowodnij, ze jest najmniejsz dodatni liczb , dla ktrej istnieje i a a a cakowite, takie ze . Udowodnij, ze ka da liczba postaci z , dla i cakowitych, jest wielokrotnoci s a , i na odwrt, ka da wielokrotnoc z s jest postaci , dla jaki s i cakowitych. Udowodnij, ze poni szy algorytm poprawnie oblicza najwi kszy wsplny dzielnik z e , je eli z : var a,b,p,q,r,:integer; begin readln(a,b); p:=a;q:=b; while q >0 do begin r:=p mod q; p:=q; q:=r end; writeln(NWD(,a,,,b,)=,p) end. Zmodykuj powy szy program, tak aby oprcz z czynniki i , takie ze .
!
Niech oznacza najmniejsz wspln wielokrotnoc liczb i . a a s Udowodnij, ze dzieli ka d inn wspln wielokrotnoc liczb z a a a s Poka , ze z
i .
$ W IWW $
! @
!!
!!
!
! W
! @
!! ! ! !!
!@!!
! T $ & ! '6&
! T
! !
34
stanowi wzajemnie jednoznaczne odwzorowanie pomi dzy e a iloczynem kartezja n skim . Na iloczynie kartezja skim n mo emy okreli dziaania dodawania i mno ez s c z nia w nast puj cy sposb: e a
W 1
&
%
!
' !
$
Q T
Q T
$ Q T
Q T
!
oraz
, to b dzie e
, to funkcja
Jak policzy c ze
oraz
Q T
QT QT QT Q T
QT Q T
$
(1.8)
i takie,