You are on page 1of 208

Matematyka Dyskretna

Andrzej Szepietowski 25 czerwca 2002 roku

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

i okrelon przez tabel : s a e p 0 0 1 1 q 0 1 0 1

0 0 0 1

!  

%$  

" #

     " #

Rozdzia 1. Funkcje boolowskie

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

i okrelon przez tabel : s a e

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)

(alternatywa i koniunkcja s przemienne), a (alternatywa i koniunkcja s a

czne), a

(alternatywa jest rozdzielna wzgl dem koniunkcji), e (koniunkcja jest rozdzielna wzgl dem alternatywy), e , , ,

(prawa pochaniania), (prawa deMorgana),

(prawo podwjnego przeczenia).

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            "              #     )       "#             #  #    " "  (  ' &   &           $  % "      $ # "    !   #                  



     



      

 

1.1. Algebra Boolea p 0 0 1 1 q 0 1 0 1

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

jest uzupenieniem zbioru,

1 jest zbiorem

0 jest zbiorem pustym .

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

i okrelon przez tabel : s a e p 0 0 1 1 q 0 1 0 1

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

  

  

 

    

" 


6 (b) (c) (d)

Rozdzia 1. Funkcje boolowskie

, .

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

W algebrze podzbiorw operacja xor odpowiada rnicy symetrycznej: z

1.2 Wyra enia boolowskie z


Podobnie jak wyra enia arytmetyczne, mo emy budowa wyra enia boolowskie. Wyraz z c z zeniami boolowskimi s stae i oraz zmienne boolowskie (typu boolean). Bardziej a zo one wyra enia mo na budowa za pomoc operatorw boolowskich i nawiasw. Jez z z c a zeli i s dwoma wyra eniami boolowskimi, to wyra eniami boolowskimi s tak e a z z a z nast pujce wyra enia: e a z

1.2.1 Wyra enia boolowskie w j zyku Pascal z e


W j zyku Pascal wyra eniami boolowskimi s stae true i false oraz zmienne tye z a pu boolean. Wyra enia boolowskie mo na te budowa z wyra e arytmetycznych za z z z c z n pomoc tak zwanych operatorw relacyjnych. Je eli U i W s dwoma wyra eniami aryta z a z metycznymi, to wyra eniem boolowskim jest wyra enie: z z U op W, gdzie op oznacza dowolny operator relacyjny. Operatory relacyjne s zestawione w tabeli: a operator = < > <> <= >= znaczenie rwne mniejsze wi ksze e r ne z mniejsze lub rwne wi ksze lub rwne e

 

 

     

          

"

(f) zbir

z dziaaniami xor i koniunkcji tworzy ciao.

(e) Jeeli z

, to

  

 

     $        

      % "           

(jest czna), a

(xor jest rozdzielne wzgl dem koniunkcji), e ,

 

1.3. Funkcje boolowskie

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

Przykadami wyra e boolowskich w j zyku Pascal s : z n e a

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

1.3 Funkcje boolowskie

gdzie

. Mamy cztery funkcje boolowskie jednej zmiennej:

funkcj sta e a

rwn 0, a ,

identycznoc s negacj e

funkcj sta e a

rwn 1. a

Wartoci tych funkcji zestawiono w tabeli: s x 0 1

               

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

true or b, b and not(x>=0), (0<=x) and (x<=10), (0<x) or (x>10).

zmiennych to funkcje:

0 1

1 0

1 1

Rozdzia 1. Funkcje boolowskie

S to wszystkie funkcje boolowskie jednej zmiennej, poniewa s to funkcje ze zbioru a z a w zbir , a takich funkcji jest:

Funkcji boolowskich dwch zmiennych jest:

Ich wartoci zestawiono w tabeli: s


 

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 pierwsz wsprz dn , a e a

jest rzutem na drug wsprz dn , a e a jest negacj drugiej wsprz dnej, a e jest negacj pierwszej wsprz dnej, a e

jest zaprzeczeniem koniunkcji, tak zwany nand,

jest zaprzeczeniem alternatywy, tak zwany nor,

jest zaprzeczeniem implikacji z

jest zaprzeczeniem implikacji z

do .

jest implikacj z a

do ,

jest implikacj z a

                    

jest alternatyw, a

jest xorem, do ,

do ,

 "

         

! 

 


   

   




 

    

  

$ (

                                                                  

$ %

& '

 #

      ! 

1.3. Funkcje boolowskie

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

Rozdzia 1. Funkcje boolowskie

Dla dowolnego wektora Rozwa my teraz wyra enie: z z

, niech

oznacza -t wsprz dn wektora . a e a

Zauwa my, ze z , czyli dla

jest rwne 1 tylko wtedy, gdy podstawimy . Wida z tego, ze: c

, 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

Zauwa my, ze z , czyli dla

jest rwne 0 tylko wtedy, gdy podstawimy: . Wida z tego, ze: c

, dla ka dego z

Jest to koniunkcyjna posta normalna (CNF) funkcji . c

1.4 Sieci boolowskie


Najpierw przykad. Na rysunku 1.1 przedstawiono pewn sie boolowsk. Jest to graf a c a skierowany z szecioma wierzchokami (bramkami) i pi cioma kraw dziami cz cymi s e e a a niektre bramki. W tym i nast pnych przykadach przyjmujemy, ze krawdzie s skieroe e a wane od gry do dou. Bramki maj etykiety. Jedna etykietowana jest sta , dwie etya a kietowane s zmiennymi i , a trzy etykietowane s operatorami logicznymi, , i . a a Bramki oznaczone staymi lub zmiennymi s bramkami wejciowymi i zadne krawdzie a s e nie prowadz do nich. Bramka ma jedn krawd wchodzc , a bramki i po dwie. a a e z a a Bramka jest bramk wyjciow , bo nie wychodzi z niej zadna kraw d . Z ka d bramk a s a e z z a a w sieci mo emy zwi za wyra enie boolowskie. W przypadku bramki etykietowanej sta z a c z a lub zmienn , tym wyra eniem jest ta staa lub ta zmienna. Z bramk zwi zane jest wya z a a ra enie z , z bramk wyra enie , a z bramk wyra enie a z a z . Oglnie, sie boolowska to graf skadaj cy si z wierzchokw, nazywanych bramkac a e mi, i skierowanych krawdzi cz cych niektre bramki. Ka da bramka ma swoj etykiet , e a a z a e ktr mo e by staa 1 lub 0, zmienna lub operator boolowski. W naszych rozwa aniach a z c z ograniczymy si do czterech operatorw: , , i , ale mo na rozwa a sieci z innym e z z c zbiorem operatorw. Do bramek oznaczonych staymi lub zmiennymi nie prowadz zadne a

$    $

    $  $

  "

#   $!       % 0           )% & &   &   " "   (   '    % " 

#!   $"                       "      

    

   $

Metod t mo na uoglni na funkcje e e z c

zmiennych. Wprowadzimy oznaczenie:

  

 

$

1.4. Sieci boolowskie

11

Rysunek 1.1: Przykad sieci boolowskiej

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

Rozdzia 1. Funkcje boolowskie

1.4.1 Suma (alternatywa) kilku zmiennych


Rysunek 1.2: Sie boolowska obliczaj ca alternatyw omiu zmiennych c a e s

Na rysunku 1.2 przedstawiono sie obliczaj c alternatyw omiu zmiennych: c a a e s

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

1.4.2 Funkcje progowe


Funkcja gdy liczba jedynek wrd s rwna lub wi ksza od e w przeciwnym wypadku,
 

jest

Przedstawiono je na rysunku 1.3.

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


     

                       

 $     

  

     




      





1.4. Sieci boolowskie

13

Rysunek 1.3: Sieci funkcji progowych dwch zmiennych


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

i zwraca na wyjciu te same bity w porz dku nierosncym: s a a

Na przykad gdy na wejciu b dzie ci g s e 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:

   $                  

, wwczas na wyjciu pojawi si ci g s e a

oraz

    

  %  %   %   %          

       

       

Je eli z

, to:

   '              '  0         




   

 

      




   

14

Rozdzia 1. Funkcje boolowskie

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



  

% 

 

Rysunek 1.4: Sie funkcji progowej c

  $   '     %  % % % 



          $ '  $

   

 

1.5. Operacje boolowskie na wektorach

15

Rysunek 1.5: Schemat sieci sortuj cej a

bramek i mia g bokoc e s

1.5 Operacje boolowskie na wektorach


Operacje boolowskie mo na wykonywa tak e na ci gach bitw okrelonej dugoci, czyz c z a s s li na elementach zbioru Dla dwch ci gw: a

operacje koniunkcji, alternatywy, xor i negacji wykonywane s po wsprz dnych: a e

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

Rozdzia 1. Funkcje boolowskie

Rysunek 1.6: Sie obliczajca HA (psumator) c a

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), .

1.5.1 Operacje na wektorach w j zyku Pascal e


W j zyku Pascal (i w wielu innych j zykach) operacje boolowskie: and, or, xor, e e neg, mo na stosowa do liczb typu integer lub innych typw cakowitych (byte, shorz c tint, word lub longint). Liczba traktowana jest wtedy jako ci g bitw jej przedstawienia a binarnego. Na przykad: 13 and 6=4 poniewa 13 jest reprezentowane przez: z

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:

 

     

$ 

    

  " "

1.5. Operacje boolowskie na wektorach

17

Rysunek 1.7: Sie obliczajca FA c a

1.5.2 Reprezentacja zbioru


Ci gi bitw z a

mog su y do reprezentacji podzbiorw zbioru a z c

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

1.5.3 Szyfrowanie w systemie one-pad


Operacje boolowskie na wektorach mo na wykorzysta do szyfrowania. W systemie szyz c frowania one-pad wiadomoc i klucz s ci gami bitw s a a (Je eli wiaz domoc jest ci giem znakw, to kodujemy ka dy znak jako 8 bitw i cay ci g mo e by c s a z a z traktowany jako ciag bitw). Zaszyfrowana wiadomoc ma posta : s c

 

 

%

     

  




 

$ 
 

18

Rozdzia 1. Funkcje boolowskie

Rysunek 1.8: Schemat sumatora

HA

FA

FA

FA

Zauwa my, ze deszyfrowa mo na wedug tego samego wzoru: z c z

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

 %

 

%

  



 

%

 


%

%


1.6. Funkcja parzystoci (parity) s

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

1.6 Funkcja parzysto ci (parity) s

              '      

Zdeniujmy funkcj boolowsk parzystoci (parity): e a s

ale

bo tylko dla jednego klucza

. Dlatego

                  "      

  

  

 
 

    




20 Funkcja

Rozdzia 1. Funkcje boolowskie

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

ktry ma jedynk tylko na pierwszej wsprz dnej. Zdeniujemy teraz funkcj : e e e

Ponadto:

a st d wynika, ze dla ka dej pary , a z dokadnie jedna z dwch liczb jest jedynk, czyli dla dokadnie poowy a ,

1.7 Zabezpieczanie danych


Funkcja jest wykorzystywana do kontroli, czy dane nie zostay przekamane podczas przesyania lub przechowywania. Przypucmy, ze Magosia chce przesa Jasiowi wiados c moc s i chce cho troch zabezpieczy przed przekamaniem. Wtedy Mac e c gosia wysya razem z bitem jego podpisem. Przypucmy teraz, ze Ja dosta s s wiadomoc z podpisem s . Dla prostoty zakadamy, ze podpis nie zosta przekamany, na przykad Magosia i Ja mog si umwi , ze przesyaj sobie tylko tas a e c a kie wiadomoci , dla ktrych s . Aby sprawdzi , czy wiadomoc nie zostaa c s przekamana, Ja oblicza s i porwnuje go z . Je eli z , to Ja ma pewnoc, ze s s . Je eli z , to Ja przyjmuje, ze s , cho c

           %    %  

          

Funkcja czy elementy ze zbioru a . Rzeczywicie: s


w pary, poniewa je eli z z

, to

 

     %  % )  %   %    %        

                 

           

                           

                  

     %

 %    

    

 

jest addytywna, to znaczy:

  

1.7. Zabezpieczanie danych

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

Z drugiej strony: z czego wynika:

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:

Twierdzenie 1.4 Jeeli z zachodzi . Dowd. Je eli z

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

 %   $   $ %   $   $  %    $  

ktra zlepia wektory z

% % $  %                          $      $      $  $     $                           $     

oraz

, to dla dokadnie poowy

, to istnieje wektor z jedn jedynk, taki ze: a a

w pary. Ponadto mamy:

                              

%    

     

 

r ni si tylko na z a e

22 Z tego wynika, ze:

Rozdzia 1. Funkcje boolowskie

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

a wi c dla poowy wektorw mamy: e

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

i dla poowy wektorw mamy:

      

a st d ze dla ka dej pary, , a z jest jedynk. a

                   %    %      $        $    $       

                                                      

, dokadnie jedna z dwch liczb

. ,

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

   

14. Dane s dwa wektory: a ,

oraz

          
         
, ? . Dla jakich wektorw

               

    

24

Rozdzia 1. Funkcje boolowskie

1.9.3 Posta normalna c


Udowodnij, ze dla ka dej funkcji funkcji z

taki ze:

         ' 0 $        

istnieje dokadnie jeden wektor:

 

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

!  

ktra mo emy te zapisa w postaci: z z c


U I P UT

0 ' ' RP P Q 1 1 31 I I I 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

oznacza w systemie z baza liczb : e


! 0

ktra mo emy te zapisa w postaci: z z c


1 U U I P UT

1.2 System dwjkowy


W informatyce bardzo wa nym systemem jest system dwjkowy (binarny), gdzie podz stawa jest liczba i gdzie mamy tylko dwie cyfry, 0 i 1 (cyfry w systemie dwjkowym nazywa si bitami). Zapis: e
0 ' ' 3P P Q 1 1 331 I I I I 4

Przykad 1.1 Zapis

oznacza w systemie dwjkowym liczb : e


! 0 4   ' 4  )%S  $ 4

czemu w systemie dziesi tnym odpowiada e

oznacza w systemie dziesi tnym liczb e e

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

1.3 Zwi kszanie liczby o jeden e


Algorytm zwi kszania liczby o jeden. Aby zwi kszy o jeden liczb zapisana w systee e c e mie dwjkowym: wskazujemy na ostatni bit,

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.

1.4 Porwnywanie liczb


Algorytm porwnywania liczb. Aby stwierdzi , ktra z dwch liczb w postaci dwjkoc wej jest wi ksza, post pujemy w nast pujacy sposb: e e e je eli zapisy liczb nie sa tej samej dugoci, to wi ksza jest liczba z du szym zapiz s e z sem (zakadamy tu, ze zapis liczby r nej od zera nie ma zer na poczatku), z

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

1.5 Operacje arytmetyczne w systemie dwjkowym


Operacje dodawania, mno enia, odejmowania i dzielenia w systemie dwjkowym mo na z z wykonywa podobnie do tak zwanych szkolnych pisemnych dziaa n arytmetycznych w c systemie dziesi tnym. Dziaania w systemie dwjkowym sa prostsze, poniewa mamy tu e z tylko dwie cyfry, 0 i 1, i prostsze sa operacje na pojedynczych cyfrach. Zacznijmy od tabliczki dodawania i mno enia. Wygladaja one tak: z + 0 1 0 0 1 1 1 10 * 0 1 0 0 0 1 0 1

 22

1.5. Operacje arytmetyczne w systemie dwjkowym

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

Wynikiem dodawania jest liczba

Przykad 1.5 Dodawanie liczb

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

).

wyglada nast pujaco: e 1 1 1 0 1 0 1 1 0

wyglada nast pujaco: e 1 1 1 0 1 1 1 1 0

0 1

'

na ko cu obliczamy najbardziej znaczacy bit sumy n

' Q

P

331 P ' P 1 1

(czyli

jest reszta z dzielenia

najpierw obliczamy


oraz
4

Q 31 ' 3P P 1 1

 ' Q 

 0
 S U U

P

tak zwany bit przenie-

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%

Rwnie dzielenie wykonuje si podobnie jak w systemie dziesi tnym. Na przykad: z e e 1 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1

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

1.6 Zamiana systemu


Zastanwmy si teraz, jak przechodzi od jednego sposobu przedstawiania liczby do drue c giego. Poniewa b dziemy u ywa r nych systemw zapisu liczb, wi c zapis w systemie z e z c z e z baza oznaczymy przez: B dziemy rezygnowa z tego zapisu, je eli nie b dzie watpliwoci, jakiego systemu u ye c z e s z wamy. Przedyskutujmy to na przykadach. Aby przedstawi liczb c e
$ 1

'

99%  

1 1 31

   %

' RP Q

      22

  99

1.6. Zamiana systemu w postaci dziesi tnej, korzystamy ze wzoru (1.3): e


! 0 S '   $ 4 4  4  4  &  S& 4  4 $

i wykonujemy wszystkie rachunki w systemie dziesi tnym: e


1 0'

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 %# #""

Teraz ju atwo zapisa nasza liczb w postaci dwjkowej: z c e


1 $ A

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

99  $   $ 9%% $ %  $ 9 $ 9  0 ' C         7

 @

 D  4 S%7

 4 S 

92    

 @  08 '

  

C 7

 D %

92%  
 4 7 (

99%  

10

Rozdzia 1. Arytmetyka

Reszty zapisane w odwrotnej kolejnoci: s


!     22%9

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

1.7 Dugo c liczby s


Zastanwmy si ile cyfr zawiera zapis dziesi tny liczby naturalnej . Cztery cyfry w e e systemie dziesi tnym posiadaj liczby od e a do , a cyfr posiadaj liczby od a do . Tak wi c liczba ma cyfr wtedy i tylko wtedy e gdy , czyli gdy . Mamy wi c e Lemat 1.10 Liczba naturalna ) cyfr. ma w systemie dziesi tnym e (w przyblieniu z

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

'

nast pne dzielenie przez 2 da reszt e e

oraz iloraz:

! ' Q 4

' V

przez 2, to reszta z dzielenia wyniesie


UT

, a iloraz cakowitoliczbowy wyniesie:

U 4  U

0 V

UT

P I

05 '

tworza binarny zapis liczby tu, ze je eli podzielimy liczb z e

 

. Poprawnoc dziaania tego algorytmu wynika z faks

'  Q 

 0 ' 

 D

 

0 ' 

1.8. Du e liczby z Lemat 1.11 W systemie o podstawie liczba naturalna ) cyfr. ma


  S 

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 'E C 4 D C 1 %%9 9 0 'E C 4 7 1 9 9 0'

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

ktra mo emy te zapisa w postaci: z z c


 Q % P UT

! P Q  

 1 1 31

 $ Q  

' V

 ' Q  

'

0'

oznacza liczb : e

1 Q @ 

 &$ Q  7 

 )' Q  4 

C 2  $ 9 1 1

1.10. System szesnastkowy

13

1.10 System szesnastkowy


W informatyce u ywa si te systemu szesnastkowego, gdzie podstawa jest liczba 16. Do z e z systemu szesnastkowego potrzebujemy szesnastu cyfr. Zwykle u ywa si nast pujacych z e e cyfr: W poni szej tabeli zestawiono cyfry systemu szesnastkowego z odpowiadajacymi im liczz bami w systemie dwjkowym i dziesi tnym. e szesnastkowy 0 1 2 3 4 5 6 7 8 9 A B C D E F dwjkowy 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 dziesi tny e 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 ! ! ! ! ! 22996B999B262962 9 ! H ! ! ! D ! C ! @ ! 7 ! 4 ! ! 0'  # 7 D 2

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

% 2 2 A      

Przykad 1.16 Zapis dziesi tnym ma posta e c

oznacza liczb w systemie szesnastkowym, ktra w systemie e

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 Reprezentacja liczb w komputerze


W wielu j zykach ka da zmienna ma swj typ, ktry jest deklarowany na poczatku proe z gramu. Sposb przechowywania wartoci zmiennej zale y od jej typu. s z

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

czyli zero i pi tnacie jedynek. Jest to: e s


1 08 '

Liczby ujemne sa przechowywane w tak zwanym systemie uzupenieniowym. Liczba ujemna o wartoci bezwzgl dnej jest przedstawiana jako liczba: s e

w postaci binarnej. Na przykad liczba

jest przedstawiona jako:

czyli szesnacie jedynek. A liczba s

jako:

Najmniejsza liczba ujemna, ktra mo na zmieci do zmiennej typu integer, to: z s c


!             6% % %% 

Przykad 1.19

4 D % D

6 2 % %9 $ 9% 2 % %        


! % % %% % 1  23 % %% %

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

ktra koduje liczb e

, i komputer nie zakomunikuje tego przekroczenia.

1.11.2 Real
Liczby typu real sa zapisywane w dwch notacjach: staopozycyjnej,

zmiennopozycyjnej.

Liczby w notacji staopozycyjnej to, na przykad:


! 1 4 9 6 ! 7 4 1 2( % !  1 2 9

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

1.11.3 Inne typy cakowite


W j zyku Pascal, oprcz integer, mo na u ywa innych typw cakowitych; sa to: e z z c shortint, zawiera liczby cakowite z przedziau od byte, zawiera liczby cakowite z przedziau od do


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.

1.12 Wyra enia arytmetyczne w j zyku Pascal z e


W j zyku Pascal wyra eniami arytmetycznymi sa stae liczbowe, na przykad: e z
! 6C

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).

1.13 Poszukiwania binarne (binary search)


Znana jest gra w dwadziecia pyta . W tej grze za pomoca dwudziestu pytan, na ktre s n odpowiedzia mo e by tak lub nie, nale y odgadna pomylana przez przeciwnika z c z c s rzecz. Zobaczymy, jak mo na wykorzysta binarny system zapisu liczb do opracowania z c strategii wygrywajacej w tej grze.

@ 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

1.13. Poszukiwania binarne (binary search)

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%

Wtedy nale y zada nast pujace cztery pytania: z c e

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%

A pytania wygladaja teraz tak:

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)

3. Dodaj (odejmij, pomn ) w postaci dwjkowej nast pujace pary liczb: a) z e 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

jest pot ga o wykadniku e

' 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.

1.15 Problem: Waga


Wyobra my sobie wag szalkowa. Na jednej szalce, lewej, kadziemy jaki przedmiot do z e s zwa enia, a nast pnie na obu szalkach kadziemy odwa niki. Je eli waga jest w rwnowaz e z z dze, to wa ony przedmiot ma wag rwna sumie (nominaw) odwa nikw poo onych z e z z na prawej szalce minus suma odwa nikw poo onych na lewej szalce, obok wa onego z z z przedmiotu. Na przykad, je eli na prawej szalce le a odwa niki i z z z gramowe, a na lewej odwa niki i gramowe, to przedmiot wa y z z gramw. Interesujace nas pytanie brzmi: jakie powinny by nominay poszczeglnych odwa c z nikw, aby mo na byo zwa y ka dy ci zar o wadze od do , przy jak najmniejszej z z c z e liczbie odwa nikw. Zakadamy, ze wa ymy tylko przedmioty o cakowitych wagach. z z Poka , ze z
U U

(a) Za pomoca odwa nikw mo na zwa yc co najwy ej z z z z

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

Rozdzia 1. Arytmetyka odpowiada przedstawieniu


(b) Rozo enie odwa nikw przy wa eniu ci zaru z z z e postaci


! 7 U U I ' U T Q

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

Przykad 1.2 Rysunek 1.1 przedstawia graf i zbiorem kraw dzi e 3

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

%B % % " '  5F%ED"C B @A5986543&%$1"0(&%$#"!  ' % 7 " 2 ) '      Q S G B P

4 Stopie wierzchokw n stopnia 2.

Rozdzia 1. Grafy (nieskierowane) i wynosi 4, wierzchoki i s stopnia 3, wierzchoki , a

Lemat 1.3 Niech

, b dzie dowolnym grafem z e

kraw dziami. Wtedy e

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

)'  Ve #%!  ' #c@c@#@1  ' &%c#@c@#@1b#% U U U U U  2 B X 8 X U U  0 C

C 7 @ DB A

7 9

  7 8 6 ($

' ($

Rysunek 1.2: a) Graf peny

. b) Graf peny dwudzielny

) 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
% &$ #

' T S B GRQ P ' T B G R Q P ` 

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


nazywamy podgrafem grafu

, je eli z

wierzchokami,

Wniosek 1.4 Liczba wierzchokw o nieparzystych stopniach jest parzysta.

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

1.1. Izomorzm grafw

1.1 Izomorzm grafw


Izomorzmem grafu na graf nazywamy funkcj wzae jemnie jednoznaczn a speniaj c warunek: a a wtedy i tylko wtedy, gdy . Je eli taka funkcja istnieje, to mwimy, ze grafy i z s izomorczne. atwo sprawdzi , ze izomorzm grafw jest relacj rwnowa noci. a c a z s Przykad 1.6 Rysunki 1.3a i 1.3b przedstawiaj ten sam graf a wierzchokw oraz zbiorem kraw dzi e ze zbiorem


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)

Twierdzenie 1.7 Jeeli grafy z

 

Je eli mamy izomorzm grafu z powiedzie , ze jest takim samym grafem co c chokw.


na graf , to mo emy z tylko ze zmienionymi nazwami wierz 

 

s izomorczne, to: a

 

 

 F a  F a  F

'

Rysunek 1.4: a) Graf

izomorczny z

. b) Graf

nieizomorczny z b

'

'

 G

na

 

  P Y R Q  Q R  P

1FA

'  2 (&%$#"  
   

G G    DFb     ' !' R Q db' ' G G P R d bQ ' R P `cP b' Q P !a 

 2 ' %  H"   F
 

6 (a) (b)

Rozdzia 1. Grafy (nieskierowane) i




maj tyle samo wierzchokw, a

maj tyle samo kraw dzi, a e




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

1.2 Drogi i cykle


Droga lub scieka w grae jest to ci g wierzchokw z a , taki, ze dla ka dego z , wierzchoki , s po czone kraw dzi , czyli a a e a .O drodze mwimy, ze czy wierzchoki i . Mwimy tak e, ze wierzcho a z ek jest osi galny z wierzchoka . Droga jest zamkni ta je eli a e z . Droga jest prosta, je eli wszystkie wyst puj ce w niej wierzchoki s r ne. Drog z e a a z e nazywamy cyklem je eli z , oraz wszystkie wierzchoki s r ne. a z Przykad 1.8 W grae z rysunku 1.1 ci g , , , , , , jest drog , a ci g , , , , a a a jest cyklem. Ci g a jest drog zamkni t , ale nie jest cyklem. a ea
@ @ A @ @ A G H G E H

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


Lemat 1.10 Jeeli istnieje droga cz ca wierzchoki z a a prosta cz ca i . a a

" % % 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 jedn kraw dzi a e a

i dwoma kraw dziami e

i bez kraw dzi. e

i ,

, to istnieje te droga z

' TR 'RQ

(c) Dla kadego , z

maj tyle samo wierzchokw stopnia . a

% 7 " % "

'B P

 

 IH%  % % dAH% % U % U 2 82 IH%  84% ' IH% dX " ` 1(&%$#"     '

) V  ) !)  ) ) V ) !) )
   

 

'G ' TRQ ' B P

% "


 

  

1.3. Drzewa

Rysunek 1.5: Graf z trzema skadowymi spjnoci s

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 " % "

ktre mona po czy z a c

RQ P

% "

R T
Q

R P

7 B

% "

R T P P TRQ P %9 F%dc@@#c@ &%& &%#c@c@@#!% " % % U % %Fcc@#@@c U %&A%`" B

Q
@ A C @

Rozdzia 1. Grafy (nieskierowane)

Rysunek 1.6: Przykad drzewa

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

psuje spjnoc; to znaczy bez s

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

Lemat 1.15 W drzewie z

wierzchokami mamy

kraw dzi. e

% "

% "

' 5F%ED"

' 5F%ED"

% "

% " ' 5F%ED" Q P  

Dowd:

R T ' (&%$#"

% "

Q S G B

' (&%$#"

P  R  P % "  P  R  P  Q

1.4. Przeszukiwanie grafw

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
#

Twierdzenie 1.16 Niech runki s rwnowane: a z (a) Graf (b) (c)

b dzie grafem z e

wierzchokami, wtedy nast puj ce trzy wae a

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

1.4 Przeszukiwanie grafw


W rozdziale o strukturach danych zaprezentowano algorytmy przeszukiwania drzew w g b i wszerz. Po niewielkich modykacjach algorytmy te mo na zastosowa do przeszua z c kiwania grafw.

'Q P

'Q P

jest spjny i posiada

jest acykliczny i posiada

kraw dzi. e

kraw dzi. e

F%c#@c@c@! &% U % %


U A%

 P  Q

 P  R

 IH% G
E

10

Rozdzia 1. Grafy (nieskierowane)

Dane wejciowe: graf s

oraz wierzchoek pocz tkowy a

odwiedzamy dzony,

i wkadamy go na STOS; zaznaczamy

jako wierzchoek odwie-

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

ze STOSU i cofamy si do wierze

Rysunek 1.7: Przykad grafu

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% %

Algorytm przeszukiwania grafu w g b. a

"

 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 .

oraz wierzchoek pocz tkowy a

odwiedzamy , wkadamy go do KOLEJKI; zaznaczamy wiedzony,

jako wierzchoek od-

dopki KOLEJKA nie jest pusta, powtarzamy: bierzemy jeden wierzchoek z pocz tku KOLEJKI, a

2%

 F

Algorytm przeszukiwania wszerz. Dane wejciowe: graf s

) ( )

@ 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

1.5 Liczenie skadowych spjno ci s


Algorytmu przeszukiwania grafw mo na u y do liczenia skadowych spjnoci. z z c s Algorytm liczenia skadowych spjnoci grafu s Dane wejciowe: graf s Dane wyjciowe: liczba skadowych spjnoci s s

. .

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

1.6 Drzewa spinaj ce 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

 

, to dowolne drzewo ma taki sam zbir wierz-

1.6. Drzewa spinaj ce a Je eli graf z

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

jako wierzchoek odwie-

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

ze STOSU i cofamy si do wierze

Rysunek 1.8: Drzewo spinaj ce dla grafu z rysunku 1.7 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

"

"

"

nie jest spjny, to nie ma drzewa spinaj cego. Z drugiej strony. a

  

14

Rozdzia 1. Grafy (nieskierowane)

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

1.7 Fundamentalny zbir cykli


Niech b dzie spjnym grafem, a e jego drzewem spinaj cym. Kraw dzie drzewa a e b dziemy nazywali ga ziami, a krawdzie nie nale ace do drzewa ci ciwami. e e e z e Z twierdzenia 1.14 wynika, ze dodanie dowolnej ci ciwy do drzewa utworzy cykl. e Oznaczmy ten cykl przez (oczywicie s ). Zbir tak utworzonych cykli stanowi fundamentalny zbir cykli. Jak za chwil poka emy, ka dy inny cykl w grae jest r nic e z z z a symetryczn cykli fundamentalnych. W tym podrozdziale cykle b dziemy traktowa c jako a e zbiory krawdzi. e Przykad 1.24 Rozpatrzmy graf z rysunku 1.7 i jego drzewo spinaj ce z rysunku 1.8. a , , , W tym przypadku ga ziami s kraw dzie: e a e , , , a ci ciwami kraw dzie e e , , , . Fundamentalny zbir cykli zawiera cykle: , , , , Zbir krawdzi e grafu nazywamy pseudocyklem, je eli ka dy wierzchoek grafu z z jest parzystego stopnia. Przykadami pseudocykli s cykle i zbir pusty. 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

Q S T QR 3e S S S B   P G R Q P ' B ' R P  U B ' GR `S 'RQ S 'Q P U S

)@

 5 )  ) )  ) !) ) 

2 `% U

2B

' S S U S B PB  ' B Q  ' S

"

"

) )

'

) b)

  QBP P ' S U S B   cPR Q P 3' S B 1U S GDU PB  B S Q ' T S  '   S ' T R  ' 9 S

  

'

1.7. Fundamentalny zbir cykli

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 #

Dowd: Wynika, to z faktu, ze drzewo spinaj ce ma a

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

jest rnic symetryczn cykli z a a

  Y' P G R P `e S ! B '

Y' S U S e B   '  S e S e S B   ' S U S U B a ' B S e B  S ! S U B   P B Q S T R P ! B S e B  S b S U B  ' S S 1U S B 9' S 1U S DU B a' S B DU B     U B 

W tym celu rozwa my zbir z

We my teraz dowolny cykl (lub pseudocykl) z

grafu

i utwrzmy rznic e

2 B

'

0 U

16

Rozdzia 1. Grafy (nieskierowane)

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

Aby przekona si , czy graf c e graf nie ma cykli.

ma cykl wystarczy policzy c

i je eli z

1.8 Minimalne drzewo spinaj ce a


Wyobra my sobie, ze ka da krawd w grae z z e z ma dugoc s . Na przykad, wierzchoki grafu s miejscowociami i dugoc kraw dzi jest odlegoci miejscoa s s e s a woci. Chcemy teraz skonstruowa minimalne drzewo spinaj ce, czyli drzewo spinaj ce s c a a z minimaln sum dugoci kraw dzi a a s e

Dane wejciowe: graf s

z funkcj wagi a

Dane wyjciowe: minimalne drzewo spinaj ce s a


4

Posortuj kraw dzie e

grafu

wedug dugoci, od najkrtszej do najdu szej. s z

Dla ka dej krawdzi z e wstaw j do a cyklu z kraw dziami, ktre ju s w e z a .

pod warunkiem, ze nie tworzy ona

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

Algorytm budowy minimalnego drzewa spinaj cego a

. .



 B

# 2

 0

U' 


  

U' 

#c@#@$U @

@ B 0

D



@

 0F

 2 B

U


 $ F

, to

1.9. Cykle i drogi Eulera

17

Rysunek 1.9: a) Graf z wagami, b) Jego minimalne drzewo spinaj ce a a 13 c 11 e 16 b 6 9 d 8 19 f a) 10 11 e b) 7 13 c 8 a 6 b 7 d

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

1.9 Cykle i drogi Eulera


Droga Eulera to droga, ktra przechodzi przez ka d kraw d grafu dokadnie jeden raz. z a e z Cykl Eulera to taka droga zamknita, w ktrej ka da krawd grafu wyst puje dokadnie e z e z e raz. Euler w 18. wieku pokaza, ze istnieje doc prosta charakteryzacja grafw z drog s a lub cyklem Eulera. Mianowicie spjny graf posiada cykl Eulera, wtedy i tylko wtedy gdy ka dy jego wierzchoek jest parzystego stopnia, a posiada drog Eulera je eli co najwy ej z e z z

B  B '  B 1'  ' S   S

 S

B0

B S

B S B S 0 0  0 S S  B0  S B '  F S S B  0  0S  B 0 S 1' B  F


7 7 1 2

 X

1 (

18

Rozdzia 1. Grafy (nieskierowane)

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

1.9. Cykle i drogi Eulera

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

Rysunek 1.10: Przykad grafu z cyklem Eulera

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

Je eli z bierz cego wierzchoka z a algorytmu.

% 7 %

% %

Powtarzamy, a do wyczerpania kraw dzi: z e nie odchodzi zadna krawd , to koniec e z

20

Rozdzia 1. Grafy (nieskierowane)

Rysunek 1.11: Graf po przejciu trzech kraw dzi s e

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,

Nat pnie powtarzamy dopki STOS nie jest pusty e Niech


b dzie wierzchokiem z wierzchu STOSU e

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

1.10. Drogi i cykle Hamiltona

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

1.10 Drogi i cykle Hamiltona


Droga Hamiltona to taka droga w grae, ktra przechodzi dokadnie raz przez ka dy z wierzchoek grafu. Cykl Hamiltona to zamkni ta droga Hamiltona. e Przykad 1.36 Graf z rysunku 1.1 posiada drog Hamiltona e , ale nie posiada cyklu Hamiltona. Kady graf peny z z posiada cykl Hamiltona.

B S TRQ P G

@ P Q R 1GB S Q S T G P
  #
% ($ H

22

Rozdzia 1. Grafy (nieskierowane)

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

nie znajdziemy, to zdejmujemy

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

1.11 Kolorowanie grafw


Chodzi o takie pokolorowanie wierzchokw grafu, zeby wierzchoki po czone krawdzi a e a byy pokolorowane innymi kolorami i zeby liczba kolorw bya jak najmniejsza. Denicja 1.38 Pokolorowanie grafu kolorami jest to funkcja , taka ze jeeli z . Najmniejsze takie , ze graf mona pokolorowa kolorami nazywamy liczb z c a chromatyczn grafu i oznaczamy przez a . W przypadku kolorowania grafw, podobnie jak dla drg Hamiltona, nie s znane doa bre i szybkie algorytmy. Naiwny algorytm sprawdzaj cy wszystkie mo liwe kolorowania a z dziaa zbyt dugo. Tak e tu mamy algorytm z nawrotami. z Algorytm z nawrotami kolorowania wierzchokw grafu Dane wejciowe: graf s oraz liczba naturalna . Dane wyjciowe: pokolorowanie wierzchokw grafu za pomoc s a lub informacja, ze takiego pokolorowania nie ma. dla ka dego z koloru). podstaw (

kolorw

oznacza, ze

nie ma jeszcze

w pierwszy wierzchoek na STOS, z

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 

"

  2 5F%ED" IH% R Y H" R '  7  0  H" R

 Faa

2 %

"

' dc@#@c@b  ' dc@#@c@b 


  
E E

24

Rozdzia 1. Grafy (nieskierowane)

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)

W tym momencie pokolorowanie

nie jest moliwe, wi c zdejmujemy go ze stosu z e

B @ S AG R Q P

B @ bG R Q P

Teraz zmieniamy kolor na stos.

, a nast pnie kolorujemy e a 1 b 2 c 1 d 3 e 2 f 0

i wkadamy

B G P

 B R

B @ bG R Q P S S B @ S AG R Q P

a na stosie mamy wierzchoki

Q R @ GRQP G
na

'  ! 

 G R G

B B GRQ P

S  B R

1.11. Kolorowanie grafw

25

Wierzchoek te nie moe by pokolorowany wyszym kolorem, wi c te go zdejmujemy. z z c z e z

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

Dane wejciowe: spjny graf s

 G R

% $

 G R @ GRQP 
%

@RQP

 0F a

D


#

 S R   B R  R R R

' I!

26

Rozdzia 1. Grafy (nieskierowane)


@

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

Posortuj wierzchoki grafu wedug ich stopni.

Dla ka dego wierzchoka po kolei przypisz mu najni szy mo liwy kolor. z z z

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"
 @

" F"cc@#@c@DU &" " U


@  7 B

c#@c@c@I
 

7
7

1.13. Rozgaszanie wiadomoci s

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


1.13 Rozgaszanie wiadomo ci s


Graf mo e przedstawia sie po cze . Wierzchoki s agentami, a krawdzie z c c a n a e to cza, ktrymi agenci mog si komunikowa . Wyobra my sobie, ze jeden agent posiaa a e c z da jak s wiadomoc, ktr chce przekaza wszystkim innym agentom w sieci. Reguy s a s a c a nast puj ce. Komunikacja odbywa si synchronicznie w taktach. W ka dym takcie ka dy e a e z z agent mo e przekaza wiadomoc jednemu swojemu s siadowi. z c s a Powy szy problem nazywa si problemem rozgaszania. Poni ej poka emy, ze mo na z e z z z go bardzo efektywnie rozwi za , je eli graf jest hiperkostk a c z a . B dziemy traktowa e c ci g bitw jako przedstawienie dwjkowe liczby naturalnej. a

 

E E

U 2% "  0F '! 5 a ' U e5 2

E 0

 

U U

E 0

Rysunek 1.13: a) Hiperkostka

, b) Hiperkostka

U U

 0F

28

Rozdzia 1. Grafy (nieskierowane)

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


w -tym takcie ka dy wierzchoek z .


@

przekazuje wiadomoc do wierzchoka s


H

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 "

Rysunek 1.14: Hiperkostka


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

1.14. Zbieranie informacji

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

1.14 Zbieranie informacji


Hiperkostka jest tak e wygodn struktur do zbierania informacji, gdy chcemy do jedz a a nego wierzchoka zebra informacje od wszystkich wierzchokw. Informacje te nale y c z przesy c w odwrotnym kierunku ni w protkle rozsyania. Zakadamy, ze przesyane a z informacje s czone w pakiety i wierzchoek mo e przesa w jednym takcie cay pakiet a a z c zawieraj cy kilka informacji. a


Protok zbierania wiadomoci w hiperkostce s

(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
# % $

1. Ile kraw dzi ma graf peny e

? wierzchokami?

E E

E AE

E AE E

w -tym takcie ka dy wierzchoek postaci z przesya swj pakiet do wierzchoka ,

, 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

1.1 Grafy skierowane


Denicja 1.1 Graf skierowany (zorientowany) to dowolna para nym zbiorem wierzchokw i zbiorem kraw dzi e .

Rysunek 1.1: Graf skierowany

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

9 5 53 02'676@5 7W12'VU@) ' E CA FC DB

 ! 

  '

, ze sko czon

9 5 0'285765643V' R G 3 G TSQ42'4I%H1P' 9 5553 ) 0'8676412'10'

    I2$`P$

 "  ('&%$# " !

 ! "   9' ) 0YX4'

 $ G 3 G 4' I%H0' '

Rozdzia 1. Grafy skierowane

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 .

1.2 Najkrtsze drogi w grae

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

zdeniujmy jej dugoc jako sum dugoci kraw dzi, czyli s e s e

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)

"

' $ " 2'`$ 

"

' $

1.3. Algorytm Forda-Bellmana

Rysunek 1.2: Graf z dugociami krawdzi s e

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

1.3 Algorytm Forda-Bellmana


W tym podrozdziale opiszemy pierwszy z algorytmw obliczania wartoci macierzy . s Mwi c z grubsza polega on na przyjciu najpierw pewnych grnych oszacowa n na wara e toci s i poprawianiu ich potem. Je eli na jakim etapie pracy algorytmu mamy warz s toc s , to znaczy, ze znaleziono ju drog od do dugoci z e s . Je eli p niej algoz z rytm znajdzie krtsz drog, to wartoc a e s zostanie poprawiona. Znajdowanie krotszej drogi polega na szukaniu wierzchoka speniaj cego warunek a
%

  !

'

'

  %'

'

' %

Q5' % ('&%$ $ %  

 $  '2`P$ $ % ' % $ '  % D  %' ' % % ' '  ' 5  P' ' %  %

'

' %

' %

' %

s 0

a 1

b 0

c -1

d 1

t 2

A


 !

'

%
 

' % ' %

' %

Rozdzia 1. Grafy skierowane

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

tylko wartoc s . Nowa wartoc s po drugiej iteracji macierz wygl da tak a


%

W drugiej iteracji dla

%   % !  A S     %  % '  ! X' A  % %  A "   A  ! ! % ! % '  A    S   % D  % '  !   % !  A T    % ' $ ' A E

zostaje poprawiona, gdy z . Pozostae wartoci nie zmieniaj si i s a e c -1 d 1 t 4

  %

  % %

' %

s 0

a 3

b 2

c -1

d 1

t 4

'

  E

' %

s 0

' R '  (' ' % 2 2'`P$ $ % ' % @  ' % 

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:

 (' ' %  
%

R$ '  E R '


%

$ 

 %  E

A  %

A A

%


. Jest to pierwsze algorytm sprawdza,

1.4. Dodatnie dugoci, algorytm Dijsktry s

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 .

1.4 Dodatnie dugo ci, algorytm Dijsktry s


W tym podrozdziale podamy algorytm znajdowania odlegoci od zrda do wszystkich s wierzchokw grafu dla przypadku, gdy dugoci wszystkich kraw dzi s dodatnie. s e a

dla ka dego z

podstaw

wybierz wierzchoek dla ka dego z




podstaw

2 '2`$P $ % Q' % "! % ' %  %   R $ R $  "!  $ % #

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 @

Rozdzia 1. Grafy skierowane

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
%

Rysunek 1.3: Graf z dodatnimi dugociami krawdzi s e

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 . ,

zawiera ostateczn dugoc minimalnej a s

(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'

   !     !    !   !    

$ %
 

 R $ ' % R '  I2$

'

'

 (' ' %

' %

1.5. Najkrtsza droga w grafach acyklicznych

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

1.5 Najkrtsza droga w grafach acyklicznych


Inny przypadek, kiedy mo na szybciej ni w czasie z z policzy dugoci najkrtszych c s drg do wszystkich wierzchokw w grae, zachodzi wtedy, gdy w grae nie ma cykli. Najpierw poka emy, ze w grae acyklicznym mo na tak ponumerowa wierzchoki tak, z z c ka da kraw d prowadzia od wierzchoka z ni szym numerem do wierzchoka z wy z e z z z szym numerem. Lemat 1.7 W kadym skierowanym grae z ktrego nie wchodz zadne kraw dzie. a e

bez cykli istnieje wierzchoek, do

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

Rozdzia 1. Grafy skierowane

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

2 2'`P$ $ % ' % `"!  ' % ' $ 

dla ka dego z

po kolei wedug numerw zrb: ,

' %

Dane wyjciowe: Macierz s

odlegoci z do wszystkich wierzchokw. s

Dane wejciowe: acykliczny graf skierowany s .

, dugoci krawdzi s e

Algorytm wyliczaj cy odlegoci wszystkich wierzchokw w grae acyklicznym a s

 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 

  QG42'`P$ $ % Q4'&%$ I2$ ! G  $ G1' @ @ % A  @  !

 ! % 


 

A  % %

12

Rozdzia 1. Grafy skierowane

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

1.7.2 Ciag de Bruijna


bitw takie, ze ka dy ciag bitw z Ciag de Bruijna rz du to cykliczne ustawienie e wyst puje w tym cyklu dokadnie jeden raz jako kolejnych bitw. e Na przykad ciag jest ciagiem de Bruijna rz du 2 ( wyst puje na pozycjach 4 e e i 1), a ciag jest ciagiem de Bruijna rz du 3 ( e wyst puje na pozycjach 7, 8 i e 1, a na pozycjach 8, 1 i 2). Aby otrzyma ciag de Bruijna rz du rozwa my nast pujacy graf skierowany G=(V,E). z e z e Wierzchoki grafu to zbir wszystkich ciagw bitw dugosci . Dwa wierzchoki , tworza kraw d , e z wtedy i tylko wtedy, gdy ostatnich bitw jest takie samo jak pierwsze bitw . Kraw d ta jest etykietowana e z ostatnim bitem . Narysuj graf dla , i . Udowodnij, ze: Graf jest spjny (jako graf nieskierowany) i posiada cykl Eulera. Etykiety ka dej drogi dugoci z s Cykl Eulera ma

tworza nazw ostatniego wierzchoka tej drogi. e

kraw dzi i przechodzi przez ka dy wierzchoek dwa razy. e z

Etykiety cyklu Eulera tworza ciag de Bruijna rz du . e

Wyznacz ciag de Bruijna rz du . e

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

to mo na utworzy dwa ci gi dugoci jeden: z c a s

cztery ci gi dugoci dwa: a s

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

Post puj c podobnie, mo emy otrzyma szesnacie ci gw dugoci cztery. e a z c s a s 3

        

    

    

    

 

Rozdzia 1. Kombinatoryka o elementach ze zbioru




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

Przykad 1.3 Jeeli z

skada si z czterech elementw: e


 @9 7 50 8 6

opisuje funkcj sta (ktra w caej swojej dziedzinie przyjmuje wartoc ), a ci g e a s a

opisuje funkcj , ktra przyjmuje nast puj ce wartoci: e e a s

 6 

8

6  6 2

to ci g a

 @9 5A1 6

7 7 6 6

B 2

 2

skada si z trzech elementw: e

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

    

Policzmy teraz, ile jest funkcji ze zbioru elementw:

w zbir

. Przypucmy, ze zbir s

zawiera

. Zauwa my, ze ka dej z z

Twierdzenie 1.1 Liczba ci gw dugoci a s

"   #!

' (

wynosi

)

4 !

3 2

& 

1.3. Ci gi bez powtrze a n

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

1.3 Ci gi bez powtrzen a


Policzmy teraz, ile jest ci gw bez powtrzen, czyli ci gw r nowartociowych. Je eli a a z s z elementy bierzemy ze zbioru trzyelementowego

to mo emy utworzy trzy ci gi jednoelementowe: z c a

szec r nowartociowych ci gw dwuelementowych: s z s a

oraz szec ci gw trjelementowych: s a

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

W tym wyraeniu mamy iloczyn z na .

kolejnych liczb, poczynaj c od a

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:

oraz szec permutacji trzyelementowych: s

Zgodnie z twierdzeniem ?? liczba permutacji w zbiorze -elementowym wynosi:

Wartoci funkcji silnia szybko rosn , na przykad: s a


  "  8 6 6

Dla przybli onego obliczania silni korzysta si ze wzoru Stirlinga: z e


!  " 

Dla ka dego z

zachodz rwnie nast puj ce oszacowania: a z e a

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

jest funkcj , ktra przyjmuje nast puj ce wartoci: a e a s

 6  8

8  6

7 9

Przykad 1.6 Permutacja:



!

 8 B 8  6    8

4 13 52

 

 

7 8

% 0

# )

 6  

! "

   



'

   

 6

' (

% &

  

# $

! "

Dodatkowo przyjmujemy

. Mamy wi c e

"

czyli jest rwna . s Funkcja silnia okrelona jest dla

     6  6  7  7  9  9 6 6 6 6

w nast puj cy sposb: e a

(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:

Zbir wszystkich permutacji na zbiorze

z dziaaniem zo enia ma nast puj ce wasnoci: z e a s

Zo enie permutacji jest czne. To znaczy, dla ka dych trzech permutacji , , : z a z

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 

 

"

 "

Dla ka dej permutacji z speniaj ca warunek: a

istnieje permutacja odwrotna (funkcja odwrotna)

"



!

'

7 9

8 8 "

 

 3 

'

"
! 6

'

"

'

Rozdzia 1. Kombinatoryka

a je eli zbir zawiera dwa elementy z

Rozwa my teraz oglnie podzbiory zbioru z

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

to wyznacza ona zbir: Przykad 1.7 Dla przez ci g a .

funkcja charakterystyczna zbioru jest opisana , a ci g a opisuje funkcj charakterystyczn zbioru: e a

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

Twierdzenie 1.8 Kady zbir -elementowy ma z

podzbiorw.

1.6 Podzbiory -elementowe


Zastanwmy si teraz nad podzbiorami okrelonej mocy. Mwimy, ze zbir jest mocy , e s je eli zawiera elementw. Dla zbioru czteroelementowego z

mamy jeden podzbir pusty (zeroelementowy), cztery podzbiory jednoelementowe:

szec podzbiorw dwuelementowych: s

 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

1.6. Podzbiory -elementowe cztery podzbiory trzyelementowe:

i jeden podzbir czteroelementowy:

Liczb podzbiorw -elementowych zbioru -elementowego oznacza si przez e e

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

"# " #

"

    

"

  

Z denicji wynika, ze je eli z

, to
7

. Zachodz dwa wzory: a (1.3) (1.4)

 

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

, to symbol Newtona mo na te obliczy ze wzoru: z z c

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:

1.7 Dwumian Newtona


Symbole Newtona wyst puj w znanym twierdzeniu Newtona. e a Twierdzenie 1.9 (dwumian Newtona) Dla kadej liczby rzeczywistej oraz liczby caz kowitej zachodzi:

 

B

'

'

'

  

'

  

lub

B


7 7

  


7

W -tym wierszu (wiersze numerowane s od a


6 7

  

 

     

6 6

'

'

'

'

) znajduj si symbole Newtona: a e

(1.5)

(1.6)

'

1.7. Dwumian Newtona Pierwszy dowd. wielomianu stoj cy przy a

11

jest wielomianem stopnia . Policzmy wspczynnik tego . Rozwa my iloczyn: z

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

Wniosek 1.10 Dla dowolnych liczb rzeczywistych :

i i dowolnej liczby cakowitej

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

do wzoru z twierdzenia ??, to otrzymamy:

&

" #

 "

"

 

Wspczynnik przy

po prawej stronie wynosi:

 


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.8 Zasada szuadkowa Dirichleta


Zasada szyadkowa Dirichleta w najprostszej postaci mwi, ze je eli mamy kul i chce z my je rozmieci w s c szuadach, to w przynajmniej jednej szuadzie musi znale c z si wi cej ni jedna kula. e e z Zasada ta jest intuicyjnie bardzo prosta, ale jest cz sto u ywana. W nieco oglniejszej e z postaci brzmi ona nast pujaco: e Twierdzenie 1.12 (Zasada szuadkowa Dirichleta) Jeeli zbir podzielimy na podz zbiorw, to przynajmniej jeden z tych podzbiorw ma lub wi cej elementw. e
&

1.9

Zasada sumy
1

W najprostszej postaci zasada sumy, mwi ze moc sumy dwch zbiorw

 1

 0 1 0 1 0

Dowd Nie wprost. Przypucmy, ze ka dy z s z tw. Wtedy cay zbir ma mniej ni z

podzbiorw ma mniej ni z elemenelementw; sprzecznoc. s

jest rwna

&

 0

0  1 2

 0

 0

0 2

0 B

0 2

     0

 0

0 B

Pierwszy dowd. Je eli podstawimy z




do wzoru Newtona, to otrzymamy:


1 0  A1

0 2

 A1

1.10. Zasada w czania i wy czania a a

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

Zasada w czania i wy czania a a

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

 6%  0 0 ' 0   0 0 ' 0  0 0  0  ' 0

' 0

 0 

 

0 ' 0

  ' 0

 

0 ' 0

' 0

' 0

' 0

0 1

14

Rozdzia 1. Kombinatoryka

Rysunek 1.1: Diagram Venna

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

b dzie naszym uniwersum, e

 6
  

jego podzbiorami. Dla ka dego z

1.10. Zasada w czania i wy czania a a

15

Rysunek 1.2: Diagram Venna

pywanie 22 10 15 8 20

12 szachy koszykwka

to uprawiajcy koszykwk i pywanie, a e to uprawiajcy koszykwk i szachy, a e to uprawiajcy pywanie i szachy, a

to uprawiajcy wszystkie trzy sporty. a

"

przyjmujemy przy tym W naszym przykadzie to zbir wszystkich studentw, pywanie, a szachy:

4 0
to uprawiajcy koszykwk, a e

4


0


podzbioru zbioru indeksw

  

deniujemy zbir:

' 0

' 0

"

"

"

'

"   ' 0 0   ' 0 " 0  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

Sumujemy tutaj po wszystkich podzbiorach zbioru

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 

  

Jest to suma po wszystkich podzbiorach sumy wedug mocy podzbiorw i niech



6

zbioru . Uporzdkujmy teraz skadniki tej a . Mamy podzbiorw mocy , wi c: e

    

4 0

  

4 0


.

0
 

 

4 0

 

 "

3
 

4 0


(1.7)

 

 

 3

0 

4 0

1.11. Przestawienia Aby policzy moc sumy zbiorw c


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

"

mo emy wykorzysta wzr (??), przy zao eniu, ze z c z


"      4 4 0

4 0

"

. Mamy wtedy

4 0

4 0

18

Rozdzia 1. Kombinatoryka

Twierdzenie wynika teraz z rwnoci: s

1.12 Generowanie obiektw kombinatorycznych


W tym rozdziale zajmiemy si algorytmami generujacymi (wypisuj cymi) obiekty kome a binatoryczne. Przedstawione algorytmy b d dziaaly wedug nast puj cego schematu: e a e a

Wypisujemy pierwszy obiekt.

Powtarzamy, a do napotkania ostatniego obiektu: z

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

1.12.1 Generowanie podzbiorw


Zaczniemy od najprostszego przypadku wypisania wszystkich podzbiorw zbioru

Algorytm wypisuj cy wszystkie podzbiory zbioru a Pierwszy podzbir: .


0

by uzyska nast pny po c e

podzbir:

Wskazujemy na najwi kszy element nie nale acy do , czyli e z


0

Je eli takiego nie ma, to koniec algorytmu, zbir z


0

jest ostatnim podzbiowszystkie ele0

rem.

W przeciwnym przypadku dodajemy menty wi ksze od . e


6 @9

do

i usuwamy z

Przykad 1.18 Dla , , , ,


6 9 6

powyszy algorytm wypisze po kolei nast puj ce zbiory: , z e a , , .

  3 

&

   

 

   

 3

6 7 6 

1.12. Generowanie obiektw kombinatorycznych

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.

1.12.2 Generowanie -elementowych podzbiorw


Algorytm generuj cy a elementowe podzbiory zbioru
 

Pierwszy -podzbir to

.
"

, gdzie

Dla i algorytm wypisze po kolei nast puj ce podzbiory (podajemy je bez e a nawiasw i przecinkw)

Zauwa my, e najpierw wypisywane s 4-podzbiory niezawierajce 6: z z a a

a p niej 4-podzbiory zawieraj ce 6 z a

a po nich nast puj te, ktre s utworzone z 2-podzbiorw e a a


8 9 6

, 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 

, to zwi kszamy o jeden, a elementy mniejsze od e najmniejszych liczb, to znaczy dla .

9 6

je eli z , to znaczy, ze nerowany podzbir.

  

znajdujemy najmniejsze takie , ze


3

; i jest to ostatni wygezamie-

Przypucmy, ze ostatnio wygenerowany podzbir, to s . Aby wygenerowa nast pny podzbir: c e

"     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

I taki element jest wypisywany po zbiorze .

1.12.3 Generowanie permutacji


Algorytm generowania permutacji zbioru Pierwsza permutacja to , dla
'

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 .

je eli takiego nie ma, to bierz ca permutacja jest ostatnia, z a

" # 

Znajdujemy najwi ksze speniaj ce warunek e a

68

   

 8

"

Aby wypisa nast pn po c e a

permutacj: e

 

"

4  4

   

4 "

3 '    

 4 

  

    

" #

   
3 B 4 4

3  

   8 6

 


" 4 4

  

6 8

0 3




  


4 

 

1.13. Zadania 2. Ile liczb trzycyfrowych zawiera cyfr lub ? e


8

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

8. Udowodnij, ze 9. Udowodnij, ze:

jest najwi ksze dla e

11. Udowodnij, ze

15. Oblicz ile liczb mniejszych od 100 jest podzielnych przez 2, 3 lub 5.

 

14. Wyznacz liczb elementw e , ,


 

oraz oraz

, wiedz c, ze a

   1 0 

13. Ile elementw zawiera r nica symetryczna z


  1 1 0

12. Przedstaw wzr na sum czterech zbiorw , e


0

i ?

 6  4

"

10. Rozwi wielomian n

'  ' 

'

'

"

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

nierozr nialnych kul. Udowodnij, ze istnieje z

sposobw ro o enia tych kul do z z

rozr nialnych pudeek. z

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

rozr nialnych typw z

9 7 8 6 9 9 8 6
7

9 6

. .

1.14. Problemy

23

1.14.3 Kombinacje z powtrzeniami


-elementowe kombinacje z powtrzeniami ze zbioru -elementowego s to -elementowe a wybory elementw zbioru -elementowego, w ktrych elementy mog si powtarza c i a e w ktrych nie jest istotna kolejnoc wybieranych elementw. Na przykad, mamy cztes ry trzyelementowe kombinacje z powtrzeniami ze zbioru dwuelementowego ; oto one: , , , . Udowodnij, ze liczba -elementowych kombinacji z powtrzeniami ze zbioru elementowego wynosi

1.14.4 Permutacje z powtrzeniami


Przypucmy, ze mamy przedmiotw r nych typw oraz, ze przedmiotw typu jest s z . Rozwa my ustawienia wszystkich tych przedmiotw w ciag. Przy tym dwa ustawienia z sa rozr nialne tylko, je eli na jakiej pozycji maja przedmioty r nych typw. Poka , ze z z s z z takich rozr nialnych ustawie jest z n
3

Ile sw mo na utworzy z liter sowa MATMA (litery M i A mog wyst pi po dwa z c a a c razy)?

1.14.5 Podziay uporzadkowane


 " " 0

Mamy elementwy zbir elementy zbioru mo na na z


0

i liczby

takie, ze

. Poka , ze z

1.14.6 Permutacje bez punktw staych


Udowodnij, ze liczba przestawien (permutacji bez punktw staych) w zbiorze -elementowym jest rwna zaokr gleniu liczby a do najbli szej liczby naturalnej; jest podstaw logaz a rytmu naturalnego. Wskazwka. Skorzystaj z twierdzenia ??, z rozwini cia: e


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

"  '

" 0   0   "  '

  

 "

 

24 oraz z oszacowania:

Rozdzia 1. Kombinatoryka

1.14.7 Liczba surjekcji


Udowodnij, ze liczba surjekcji (funkcji na ca przeciwdziedzin) ze zbioru -elementowego a e na zbir -elementowy wynosi:

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

Niezbyt formalnie mo emy to zapisa z c

Jako przykad zastosujmy symbol sumy do zapisu wzoru na sum ci gu arytmetycznego). e a

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

8 E 8 E C GH& FD &

oraz wzoru na sum ci gu geometrycznego). e a

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

Mo emy te sumowa ciagi, ktrych elementy zale a od dwch indeksw, z z c z

Za pomoca podwjnej sumy mo emy na przykad przedstawi uoglnione prawo roz z c dzielnoci mno enia wzgl dem dodawania: s z e

a tak e wzr na podnoszenie sumy do kwadratu: z

1.2 Iloczyny
#
Aby zapisa iloczyn elementw ci gu c a , ,... , stosujemy zapis

Znw niezbyt formalnie mo emy to zapisa jako z c

 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

 



oznaczajcy sum tych elementw a e indeksw . Na przykad, je eli z

, ktrych indeksy nale a do skonczonego zbioru z , to

" !

Stosowa b dziemy tak e zapis c e z

 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"

oznacza, ze zbior nale a do zbioru . z


"

zawiera si w zbiorze , to znaczy wszystkie elementy zbioru e

 (

"

G 0 W0 G

&

Przykad 1.1 Dla

mamy:

" &

$ 8 0 G G  08 &  $&

" ' %!

( " %! G 0 G 1G G $  0 " ( &  $ 0 G G E & 

"

"

" 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

1.4 R nica symetryczna zbiorw z


oznacza rnic symetryczn zbiorw, ktra zawiera elementy nale ace tylko do z e a z jednego z dwch zbiorw:

W poni szym lemacie zebrano podstawowe wasnoci r nicy symetrycznej zbiorw. z s z

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

 "

"

"

" !

5 "! ' " %'

 X5

" !

"

"

Jeeli z

, to

"

!  " 2

Lemat 1.4

(przemiennoc). s ( cznoc). a s (rozdzielnoc wzgl dem iloczynu). s e

 G

 0 G G

 !  ' " ' ! ! ' " 2  !" " ! !

0 G

Przykad 1.3

' %!

E "

"

& E

" !

&

' 

"

'

%" " #5 '  ' "

" #


' ! ' !

2 2

" %!!   #' 5

"

(przemiennoc sumy). s

' 5 # " '

' 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 ,

1.5. Iloczyn kartezja ski n

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

1.6 Rodzina zbiorw


Czasami b dziemy mieli do czynienia ze zbiorem, ktrego elementami sa zbiory. Przez e

b dziemy oznacza zbir wszystkich podzbiorw zbioru . e c


0 0

 5

Przykad 1.7 Dla

(

lub

" 

" %

Mo na atwo wykaza , ze z c

0 G 1' 2 G

% G &#'

0 G 0 2 G 1% 2 G % G % 2 G G 2 G % G 2 5 5 5 & "5 &

" %

Przykad 1.6 Dla

mamy

G 2

 5

G 2

" &

1.5 Iloczyn kartezjanski

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

& !   

zawiera elementy, ktre nalea do nieparzystej liczby spord zbiorw z s

 C

C

G   ! 

!  ! 

 ! 

! !  

"

C G    

0 G I %

!  G 2 $ C
$

Twierdzenie 1.5 Rnica symetryczna z

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

Inaczej mo emy to zapisa : z c


  # ! 

Zbir indeksw sumowania mo e by okrelony za pomoc warunku. z c s a


Y  ` % 0% V %

Mo emy te bra przekroje zbiorw z rodziny. Przekrj z z c

Inaczej mo emy to zapisa : z c


  #' !  ' %'

zawiera te elementy, ktre nale a do wszystkich zbiorw z

&

UR R

" !

na oznaczenie sumy wszystkich zbiorw dzi wtedy

, ktrych indeksy nale a do zbioru . Zachoz

, ... ,

, czyli

" !

B dziemy te u ywa zapisu e z z c

zawiera te elementy, ktre nale a do ktrego ze zbiorw z s

, ... ,

Y 0 V
, czyli

Y 8

UR R

V 4 %

 

 9

 9

 

" !

S E S

&

1.7. Sowa B dziemy te u ywa zapisu e z z c

Zbir indeksw przekroju mo e by okrelony za pomoc warunku. z c s a

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 .

 

Dugoc sowa s goc sowa pustego s my przez

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

Przykad 1.9 Niech dego okrelamy zbr s

b dzie zbiorem indeksw. Dla kae z . Mamy:

 

Przykad 1.8 Wemy rodzin zoon z trzech zbiorw z e z a .

nazywamy

 G ' &G 0

0 G

 G 0

 Y  ` #' 0%' V %'

&

( 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 $ &  

" !

na oznaczenie przekroju wszystich zbiorw chodzi wtedy

, ktrych indeksy nale a do zbioru . Zaz

" !

G G G ' W0 G &G 0

I I I

 

 

" ! I I S 4US

 9  W

V
I I

 G G ' &G 0

10

Rozdzia 1. Oznaczenia i to swo

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

poprzedza w porzadku leksykogracznym.

1.8 Zaokr aglenia


Wprowad my dwa oznaczenia na zaokrglenie liczby rzeczywistej. Dla dowolnej liczby z a rzeczywistej oznacza zaokrglenie a oznacza zaokrglenie a

w gr do najbli szej liczby cakowitej. e z

w d do najbli szej liczby cakowitej. z

Zaokraglenie

nazywamy sutem z , a zaokraglenie

nazywamy podoga z .

 ! 

I I I

I I

I I

Przykad 1.14 Poczatkowe sowa zbioru nicznego to:

G G

I I

G G G G

 

albo

uporzadkowane wedug porzadku kano

Przykad 1.13 W porzadku leksykogracznym sowo a to jest wczeniejsze od s .


0

jest wczeniejsze od sowa s

I I

I I

Przykad 1.11 Konkatenacja sw


. ,

I I

 

 

 

1.9. Przedrostki Przykad 1.15

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.

1.10 Notacja asymptotyczna


W analizie jakiego algorytmu (programu) wa ne jest oszacowanie jego czasu dziaania. s z Jako przykad we my algorytm sortowania babelkowego, ktry ustawia elementy ciagu z wejciowego w porzadku niemalejacym. s

 
'

E  E
0

 (

% %

  &
0

E E

& V & T & & & ` &

&

&

&

&

&

&

&

&

&

&

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

Algorytm sortowania babelkowego. Aby posortowa ciag dugoci : c s

(1a) wskazujemy na pierwszy element,

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 &

wskazujemy na nast pny element. e

8 8

&

$ G

(1b) wykonujemy co nast puje e

&

&

(1) wykonujemy co nast puje e

&

razy:

razy:

&

5 "&

1.10. Notacja asymptotyczna

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

Czas dziaania algorytmu sortowania babelkowego jest

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

sa tego samego rz du, czyli e

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

dla jest Omega

  G 2  2

, je eli z cja jest o mae od .

. W takim przypadku mwimy, ze funk

  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.

Wniosek 1.20 Jeeli z

, 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
"

b dzie zbiorem indeksw. Dla ka dego e z . Oblicz , , .

"

"

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 "&

( $ # G $  ' " ' E &  %! ( $G $ (&   $2 Y   $2 ` ( 

1. Oblicz

dla

0 G % 1&G

G G & 

1.11 Zadania

G

 5

Nast pujacy przykad pokazuje, ze oszacowanie asymptotyczne mo e by c zawodne. e z

 5

 2

 5

#% $

&

 5

 5

( "V

55

2 2

 5

&

66V

 5

 5

&

 5

V ( 0

Lemat 1.19 Jeeli granica z .

istnieje i jest waciwa (nie jest rwna s .

), to

 5

2 2 2 55  5     

&

&  @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

b dzie zbiorem indeksw. Dla ka dego e z oraz dzieli . Oblicz

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.

1.1 Poprawno syntaktyczna sc


Je eli program jest napisany zgodnie z reguami j zyka programowania, to mwimy, ze z e jest poprawny pod wzgl dem syntaktycznym, a wykroczenia przeciwko skadni j zyka e e nazywaja si b dami syntaktycznymi. Przykadami takich b dw w j zyku Pascal sa: e e e e u ycie zmiennej, ktra wczeniej nie zostaa zadeklarowana, lub postawienie srednika z s przed sowem else w instrukcji warunkowej. Poprawnoc syntaktyczna nie jest wielkim problemem. J zyki programowania maja s e bardzo scise reguy skadni, okrelajace, jak budowa poprawne programy, i konstruktos c rzy tych j zykw zadbali o to, aby mo na byo atwo wykry b dy syntaktyczne. Istniee z c e ja kompilatory, ktre automatycznie sprawdzaja poprawnoc syntaktyczna programw. s Kompilatory niektrych j zykw sa doc skomplikowanymi programami i oprcz komue s nikatu o b dzie daja tak e wskazwki, jak bad usuna . e z c

1.2 Poprawno semantyczna sc


Du o powa niejszym problemem jest poprawnoc semantyczna, czyli stwierdzenie, czy z z s program lub algorytm liczy to, co powinien. Problem zaczyna si ju wwczas, gdy spye z tamy, co to znaczy liczy to, co powinien. Zajmiemy si teraz jednym z mo liwych podejc do problemu poprawnoci. Program e z s s przeksztaca dane wejciowe w dane wyjciowe i dlatego mo emy go traktowa jak funks s z c cj ze zbioru danych wejciowych w zbir danych wyjciowych. Na przykad dla algoe s s rytmu Euklidesa (porwnaj rozdzia o teorii liczb) danymi wejciowymi sa pary liczb s 3

Rozdzia 1. Poprawnoc programw s

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

W przykadzie algorytmu Euklidesa: dane wejciowe to pary liczb naturalnych s

dane wyjciowe to zbir liczb naturalnych 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%

warunek okrela, ze ciag s menty co ciag :

 d h b f ` d c b ` X 0 eIp i&ge%&aYWVUT

warunek

mwi, ze ciag jest r nowartociowy: z s

jest rosnacy i zawiera dokadnie te same ele and

to zbiory wszystkich ciagw dugoci , s

' $

P ' $ RQIHG3

relacja

okrela, ze s

jest najwi kszym wsplnym dzielnikiem liczb e

predykatu (funkcji zdaniowej) , ktry okrela warunki poczatkowe; s muje wartoc prawda, je eli dane wejciowe sa poprawnie zbudowane, s z s

P 6 4 ' A 9 8 6 4 $ 0 ' $ FEDCB@75321)(&%    !  #" 

zbioru danych wyjciowych 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%

&%

&%

Rozdzia 1. Poprawnoc programw s

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

1.5 Algorytm Euklidesa jeszcze raz


Oto jeszcze raz algorytm Euklidesa opisany w j zyku Pascal: e var a,b,p,q:integer; begin readln(a,b); {A} p:=a;q:=b; while p<>q do {C} if p>q then p:=p-q else q:=q-p; {B} writeln(NWD(,a,,,b,)=,p) end. W programie umiecilimy trzy punkty kontrolne. Punkt s s na poczatku, zaraz za instrukcja readln(a,b). Asercja zwiazana z punktem orzeka, ze i to dwie dodatnie liczby cakowite. Punkt znajduje si na ko cu programu, tu przed instrukcja writeln. Asercja e n z zwiazana z tym punktem orzeka, ze zawiera najwi kszy wsplny dzielnik liczb i . e Trzeci punkt kontrolny jest wewnatrz p tli, tu przed instrukcja warunkowa if. e z Asercja orzeka, ze para liczb i ma taki sam najwi kszy wsplny dzielnik co para e i . Dowodzimy cztery implikacje:

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

' $

' $

' $

1.6. Pot gowanie e

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

1.6 Pot gowanie e


Drugim przykadem niech b dzie program na podnoszenie liczby dwa do pot gi . e e var n,x,y:integer; begin readln(n); {A} y:=1; x:=n; while x>0 do begin {C} x:=x-1; y:=y+y end; {B} writeln(y) end.

a   f  20 

 

Trzeci punkt kontrolny

jest wewnatrz p tli, tu przed instrukcja x:=x-1, z asercja: e z

  0 e f  2v

Punkt

na ko cu programu, tu przed instrukcja writeln, z asercja: n z

W tym programie te sa trzy punkty kontrolne. Punkt z cja readln, z asercja:

na poczatku, zaraz za instruk

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(&$

Rozdzia 1. Poprawnoc programw s

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

 3 1 ( & % " 3 1 ( & % " 5S6TSS26S6T4S45#!

A  3 I A I " F E 9 SRQC4!PHG@DC4BA@8

' ' ' ' $ $" #3210)(#&#%#!

  

 

 %" 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

oznacza zdarzenie, ze wylosowano kul e

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 .

 E " 6B(9 #%S 9& #&S 9% 0(2)"0 E E E 9

 4!

T4  4 4 ( 

' 1 0( 2& 2% " ' ' $ $

% 

 

  

 24$ 0 $% "

% R3 "

1.2. Prawdopodobie stwo n

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

A3) Jeeli zdarzenia 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 ,

Prawdopodobie stwo dowolnego zdarzenia jest wtedy rwne n

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

nazywamy rozkadem jednostajnym.

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


 

1 $ E 52% '& D9

  " E 9  6E 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.

c) Mamy A3 mamy d) wynika bezporednio z c). s

9 EE 9  9 %$ E E E 9 EE 9   E 999  9 )EE E 9  GE  9 9 E  9 $ E 9E  E 9 9 E  9 E 9 E 9 E 9 E 9

oraz

oraz

, a poniewa z

E 9

Dowd: a) Z aksjomatu A3 mamy speniaj c rwnoc a a s b) Je eli z , to

, a 0 jest jedyn liczb a a

, a wi c z aksjomatu A3 e a wi c z aksjomatu e , z wniosku 1.7b

&

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

% " ( "

1.3. Prawdopodobie stwo warunkowe i zdarzenia niezale ne n z

Dowd przez indukcj : e Dla twierdzenie zachodzi w sposb trywialny. Za my, ze twierdzenie jest prawdziwe dla dowolnej rodziny zbiorw. Rozpatrzmy z

z aksjomatu A3 i z zao enia indukcyjnego wynika 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

1.3 Prawdopodobienstwo warunkowe i zdarzenia niezale ne z


Denicja 1.11 Prawdopodobie stwo warunkowe zajcia zdarzenia n s zaszo zdarzenie oznaczane przez okrelamy jako s

pod warunkiem, ze

Ma to sens tylko wtedy gdy

$E9

  

I E

 

Twierdzenie 1.10 Dla dowolnej rodziny zbiorw mamy

(niekoniecznie parami roz cznych) a

$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


Twierdzenie 1.9 Niech dla kadej pary indeksw z

b dzie rodzin parami roz cznych zdarze ( e a a n ). Wtedy

 

 

"

 

 

$$$


E 9

      

T

"


 

Rozdzia 1. Rachunek prawdopodobienstwa

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

Dlatego mo na mwi , ze w takim przypadku zdarzenia z c Denicja 1.13 Mwimy, ze zdarzenia i

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

     

Denicja 1.15 Zdarzenia mamy

& " 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

, s niezalene jeeli dla kadego podzbioru a z 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

monetami, niech oznacza, ze na -tej monecie s niezalene. atwo sprawdzi , ze a z c

dla kadego , z

dla kadej pary z

dla kadej trjki z

, itd.

prawdopodobie stwo, ze wypadn same ory, wynosi n a

1.4 Prawdopodobienstwo cakowite


Twierdzenie 1.18 (wzr na prawdopodobienstwo cakowite.) Niech b d zdarzeniami takimi, ze: e a , dla kadego z , dla

(zdarzenia s parami roz czne), a a

(zdarzenia daj w sumie ca przestrze ). a a n

Wtedy prawdopodobie sto dowolnego zdarzenia n

wynosi

dla

wi c na mocy twierdzenia 1.9 mamy e

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

 E 9 C A " (  "! E 9 C A % " 2 E 9 A

% "

   

I C A " I I A T" I

$ $$ 

E 9

H     

QE 9

10

Rozdzia 1. Rachunek prawdopodobienstwa

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

 E ' 42 9& E 2& ' % @ E  %' ' 9

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 9 E F 9 E

& & % %  " % " " E 9 E  F  9  ! E  9 " E  9 & % &


" "   "  E  9  5 E "  E  F  9 S  9 E  9 9 9 E

 E $ " 2 9& E $ " ' % @ ' 9

E"

% ! E  9 E 9 "

' 9 4E #&$ 9" E 2'%$" 0! 

 9

&  % PE F 9 % " 2 E F 9

1.5. Zmienna losowa

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

1.5 Zmienna losowa


Denicja 1.21 Zmienna losowa jest to dowolna funkcja z przestrzeni zdarze elemenn tarnych w zbir liczb rzeczywistych . Trzeba tutaj przypomnie , ze w tej ksia ce rozwa amy tylko skonczone przestrzenie zdac z z rze elementarnych. W przypadku, gdy jest zbiorem niesko nczonym denicja zmiennej n losowej jest inna. Przykad 1.22 a) Rozwamy rzut monet , z a sowa jest okrelona tabel s a

(przykad 1.1a). Zmienna lo-

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  E 9 

Inny przykad to zmienna

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 2& 9 E 24 9 E $ "  9 E 24 9 E $ " @ ' $% $% 9


% " % & % % E 9 " % " "

" 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

reszt z dzielenia przez 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

nazywamy funkcj g stoci (rozkadu) prawdopodobie stwa zmiennej losowej a e s n

E 9 E 9 

Denicja 1.23 Funkcj e

E 9

 E 9 F

$ E 9 

    

Maj c zmienn losow a a a

i liczb rzeczywist e a

deniujemy zdarzenie

3 5I QCA @F @DC4BA@ I " E 9

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 E 9 E 9 E 9  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

. rozumiemy jako sko czon sum po zbiorze wartoci n a e s

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

z przykadu 1.22a posiada rozkad -1 1

 

$ E 9 

        

% " % " E 9

$" ! E 9 

E 9

 

    

E 9  

E 9 

E 9 

     E 9  

Dowd. Sum e zmiennej .

" E 9  

dla kadego z

E D9

  E 9 E 9  E 9

& E  9

Podobnie zmienna

ma rozkad

&

 % E 51S #%  9

mamy trzy niepuste zda-

 " " #@ 6(20 E  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

pami tajmy, ze zdarzenia e

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:

Lemat 1.29 Niech , b dzie g stoci acznego rozkadu zmiennych e e s a

"

"

0 1

"

"

( " " ( ( (  " "

Przykad 1.28 a) czny rozkad zmiennych losowych a jest przedstawiony w tabeli

"

jest innym zapisem zdarzenia

E 9 E 9 9 E 9 

$ ( )

" 3& 3 #( 2& & #% 2 9 3& E1

$ %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

mo emy okrela prawdopodobie stwa z s c n

z przykadu 1.24. mamy


"   1 & % E  9 #&  9 E ! " E "

s roz czne. a a

&

&

 9 2E  9 %

, z przykadu 1.22b

. Wtedy

2% E

" !


&  " "

" 

& T % !  E"

!  " E" "  

"  9 E#&  &  9 9 E  9

(
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

Dowd Zauwa my, ze z

a)

b)

1.5. Zmienna losowa

&

"

"

"

  

0 1

"

&

"

Przykad 1.31 Wemy zmienne z

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

" !

z przykadu 1.30. Wtedy

lub

lub

 9 E

15

16

Rozdzia 1. Rachunek prawdopodobienstwa

1.6 Niezale no c zmiennych losowych z s

lub inaczej, gdy gdzie zmiennej

oznacza g stoc rozkadu cznego, e s a .

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

Podobnie jak poprzednio atwo mo na pokaza , ze z c

Podobnie mamy w przypadku

zmiennych losowych

$ %E

9 E 9 E 9 E 9 

Denicja 1.34 Zmienne losowe mamy


s niezalene jeeli dla kadej trjki liczb , a z z z

$E

$ $ $    9  

$E

W oglnym przypadku zmiennych losowych podobie stwa okrelony jest jako n s

ich czny rozkad prawdoa

$$$

$ $ $   9 E $ $ $  9 

$$$

E

oraz na przykad

   $E 9  E 9         $ %E 9 E 9         E 9 E 9       

E 9 

E 9

Mamy przy tym

 E 9  E 9  E 9  E 9 E 9 E 9
$ %E

9 E 9 

Denicja 1.32 Zmienny losowe mamy i

s niezalene jeeli dla kadej pary liczb , a z z z

 9

1.6. Niezale noc zmiennych losowych z s

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

Dowd Poniewa zbir wartoci zmiennej z s elementy zbioru . Niech

jest sko czony, mo emy wypisa wszystkie n z c

dla jakiego s dla jakiego s

oraz

Poniewa sumowane zdarzenia wykluczaj si wzajemnie mamy z a e i

$ %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

s niezale ne, to niezale ne s te a z z a z

dowol-

$E

$ $ $  A

E 9

Denicja 1.35 Zmienne losowe zachodzi

s niezalene jeeli dla kadej -tki liczb a z z z

$$$

DC4A

E 9

F  

$$$ A

18

Rozdzia 1. Rachunek prawdopodobienstwa

ale

1.7 Warto c oczekiwana, srednia s


Denicja 1.38 Wartoc oczekiwana (rednia) zniennej losowej s s

to liczba

Przykad 1.39 Dla zmiennej losowej


z przykadu 1.24 wartoc oczekiwana wynosi s

Je eli zmienna posiada jednostajny rozkad prawdopodobie nstwa, to jej wartoc oczez s kiwana jest zwyk sredni arytmetyczn jej wartoci. a a a s

W oglnym przypadku wartoc oczekiwana jest nazywana sredni wa on . s a z a

E 9

    

E 9

         

  

Dowd Je eli pogrupujemy wyrazy sumy z , to otrzymamy

E 9 E 9

$ %E

    

E 9

Lemat 1.40

wedug wartoci zmiennej s

$ %E

9 E 9

$ E 9 

 $ " % % &" % E 9 

 

$ E 9 E 9  

F F  F F " " E 9

 

Teza twierdzenia wynika z prostego faktu, ze

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

1.7. Wartoc oczekiwana, srednia s

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

jest sredni ocen w tej grupie. a a

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 

 

EE 9 E 9 9

 

E 9 E 9

c) Jeeli zmienne z

s niezalene, to a z .

b) Jeeli z

jest liczb rzeczywist , to a a

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

 "

& 3 3 & % " ( 2% " & " ( " 1 E 9 3


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

Rozdzia 1. Rachunek prawdopodobienstwa

Twierdzenie 1.44 Wartoc oczekiwana sumy s


zmiennych

jest rwna

Twierdzenie 1.45 Jeeli zmienne z iloczynu rwna si e

s niezalene, to wartoc oczekiwana ich a z s


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

d) Je eli dla ka dego , z z

E 9

   $ %E 9 $$$     $E %D 9 E 9 $$$   "( E 9 E 9    E 9   E 9 $ %E 9 E 9  E 9 E 9 E 9  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

Pogrupujmy skadniki sumy wedug wartoci zmiennych s

   

E 9

  

E 9

E 9

 !

E 9 I



 " # ' $

E 9 1

1.7. Wartoc oczekiwana, srednia s

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

Rysunek 1.1: Przykad grafu

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  2   2   27   ' 2  2  #'2$ #   ' $  $

$ 7 

 H7 # F 

 %  "  " 25&S #5&20 #5%##2

'

 6H

22

Rozdzia 1. Rachunek prawdopodobienstwa

Rysunek 1.2: Trjkt a

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

to liczba r nokolorowych krawdzi w kolorowaniu . Ale z e

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

liczba kolorowa , w ktrych kraw d jest r nokolorowa n e z z

  

"  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)

poniewa zmienne s niezale ne, to z twierdzenia 1.43c z a z


Z drugiej strony

po odj ciu stronami dwch ostatnich rwnoci e s


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

Dowd a) wynika z faktu, ze zmienna b)


przyjmuje tylko nieujemne wartoci, s

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

Denicja 1.50 Wariancj zmiennej losowej a nazywamy liczb e


o wartoci oczekiwanej s

E 9

$ '

E 9

E 9

24

Rozdzia 1. Rachunek prawdopodobienstwa

1.9 Rozkad jednopunktowy


Z rozkadem jednopunktowym mamy do czynienia, wtedy gdy cae prawdopodobie nstwo jest skupione w jednym punkcie

wynosi

Lemat 1.54 Jeeli jaka zmienna przyjmuje wartoci nieujemne i z s s na losowa ma rozkad jednopunktowy, to znaczy

czyli dla kadego z

, 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

, to . Przypucmy s . Wtedy z nierwnoci Markowa, s

E 9

E 9

 E 9   E 9  &  E 9 & E 9   " E #! 0( 9

E 9

9 I E 9

Poniewa z , to Wartoc oczekiwana zmiennej s

dla ka dego z

, to zmien-

Denicja 1.53 Zmienna losowa

ma rozkad jednopunktowy, jeeli dla jekiego z s

E 9 EE

( E 9 "  E 9

 )99 E  9

ale

 " E  9 I E "

Stosuj c nierwnoc Markowa dla zmiennej a s

9 E $'F 9 " F

9 F

to

$ %E  "  9 E $ F "  " E 9  $'F E "


mamy

Dowd: Rozwa my zmienn losow z a a

. Poniewa z

 9

"  E 9 

 

 

1.10. Rozkad zero-jedynkowy Przykad 1.55 Zmienna losowa

25

z przykadu 1.26a z funkcj g stoci: a e s

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

1.10 Rozkad zero-jedynkowy


Zmienna losowa ma rozkad zero-jedynkowy, je eli prawdopodobie nstwo jest skupioz ne tylko w dwch punktach 0 i 1. G stoc rozkadu prawdopodobie stwa ma wtedy posta e s n c

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

przy czym rwnoc zachodzi wtedy i tylko wtedy, gdy s

dla kadego . z

 

"   "

Wniosek 1.57 Niech

b da dowolnymi liczbami rzeczywistymi i niech e

E 9 

"

E 9

$$$

" 2#

Dowd Poniewa z

, to z lematu 1.54 wynika, ze

"

E  E

Lemat 1.56 Jeeli z

, to zmienna losowa

$$$ E 9 0 E )99 E 9 E 9

&

Ale i na odwrt

posiada rozkad jednopunktowy.

$ )(

   EE 9 9  E  9 E 9

Wariancja zmiennej losowej


ma wartoc oczekiwan s a

% 2 " % " E 9 
. z rozkadem jednopunktowym wynosi

-1

E 9

 9

26

Rozdzia 1. Rachunek prawdopodobienstwa

1.11 Rozkad dwumianowy Bernoulliego


Przypucmy, ze mamy seri niezale nych dowiadcze i w ka dym dowiadczeniu dwa s e z s n z s mo liwe wyniki: sukces z prawdopodobienstwem i pora ka z prawdopodobienstwem z z . Niech b dzie zmienn losow rwn liczbie sukcesw w tej serii. Zmienna e a a a losowa posiada rozkad dwumianowy (Bernouliego) z parametrami i . Dla uproszczenia rozwa a za my, ze z n z . Prawdopodobienstwo zdarzenia, ze wyst pi sukces, pora ka, sukces i pora ka wynosi a z z , poniewa wyniki dowiadz s cze s niezale ne. Dokadnie dwa sukcesy w serii czterech dowiadcze b dziemy mieli, n a z s n e je eli wyst pi jeden z ci gw, w ktrych na dwch pozycjach wyst puj sukcesy: z a a e a (sukces, sukces, pora ka, pora ka), z z (sukces, pora ka, sukces, pora ka), z z (sukces, pora ka, pora ka, sukces), z z (pora ka, sukces, sukces, pora ka), z z (pora ka, sukces, pora ka, sukces), z z (pora ka, pora ka, sukces, sukces). z z , bo na tyle sposobw mo na wybra dwie pozycje, na ktrych z c Takich ci gw jest a b d sukcesy. Ka dy z tych ci gw ma takie samo prawdopodobie nstwo rwne e a z a .I poniewa te ci gi s zdarzeniami wykluczajcymi si , prawdopodobie nstwo, ze wyst pi z a a a e a ktry z nich wynosi s

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 

W podobny sposb mo na uzasadni , ze dla dowolnego z c metrami i ma posta c

rozkad dwumianowy z para-

maj cej rozkad dwua

E ! E 9  9

( 8
$

 (

$

  

( I I

E 9



  "

1.12. Kra ce rozkadu dwumianowego n Je eli teraz podstawimy z

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-

1.12 Krance rozkadu dwumianowego


Twierdzenie 1.60 (Nierwnoci Chernoffa) Niech zmienna losowa posiada rozkad s dwumianowy o parametrach i . Oznaczmy wartoc oczekiwan tego rozkadu przez s a . Wtedy dla dowolnej liczby rzeczywistej , , mamy

1.13 Problem dnia urodzin


Zastanwmy si ile osb musi znajdowa si w pokoju, aby bya du a szansa, ze dwie e c e z osoby maj urodziny tego samego dnia. a Dla prostoty przyjmujemy, ze problem dnia urodzin jest rwnowa nu problemowi z wylosowania ci gu liczb a , ka da spord z s mo liwoci, tak aby z s wyst pio w nim jakie powtrzenie. a s Oznaczmy przez zdarzenie przeciwne, ze wszystkie wylosowane liczby s r ne. a z Je eli zao ymy, ze wszystkie ci gi s rwno prawdopodobne, to prawdopodobie nstwo, z z a a ze otrzymamy ci g r nowartociowy wynosi a z s

E "

9 " "  9 E %  29E "  #  E  9 E"  9 E 9

13 ##&

$ $ $ 

oraz

$$$

" I " I

 9 9   I E E "  " I 9    I E E " "  9

$ 

"

E 9

E 9

Suma tych zmiennych

Rozwa my ci g niezale nych zmiennych losowych z a z zero jedynkowym oraz

, ka da o rozkadzie z

$ # 9 E $$$

$ %E

9  

E 9 "

" !

to otrzymamy

28

Rozdzia 1. Rachunek prawdopodobienstwa

Skorzystamy teraz z nierwnoci s

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)

i s rozdzielone jedn liter . a a a

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.

b) ze pomidzy i stoj dwie cyfry; e a c) ze , i

stoj obok siebie. a

% "

a) ze i

% "

% "

5. Cyfry

ustawiono losowo. Jakie jest prawdopodobienstwo,

stoj obok siebie; a

d) zachodz co najmniej dwa spord zdarze , a s n

c) zachodz dokadnie dwa ze zdarzen , a

b) zachodzi dokadnie jedno ze zdarzen ,

a) zachodz wszystkie trzy zdarzenia; a

  $ $ $ S

4.

a)

i stoj obok siebie; a

s zdarzeniami. Zapisa za pomoc dziaa na zbiorach zdarzenia: a c a n lub ; , .

' $

%  (  %  E " 9  $     

             I E 9   I "  9" E %  )"#E "  " # 9 9 "


$

E" 

% 2 "  13 ##&  %  %  " % "         I        $

1.14. Zadania 6. Pokaza , ze c 7. Dane s a

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

E  9 E 9 E % " PE 9 " PE 9 ( E  9 E & %8E & 9  " E 9 & " E 9 ( "  E 9 E 9 E 9

 9 9

30

Rozdzia 1. Rachunek prawdopodobienstwa i s niezale ne, to niezale ne s tak e a z z a z

16. Udowodnij, ze je eli zdarzenia z oraz i . 17. Zmienna losowa

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

Oblicz prawdopodobie stwa n

-1 1

( % " % 5 " 2 " " (% % @"  " % 5 " " 3 "

Z=0

22. W dwch tabelach przedstawiono czny rozkad zmiennych , a tabela zawiera wartoci s , a druga wartoci s .

E " 9 

Czy mo na tak dobra liczby , i , aby zmienne z c

0 1

%" @ " 3 " % @" "

21. czny rozkad zmiennych losowych a

przedstawiony jest w tabeli.

E # 9 

Oblicz

byy niezale ne? z i . Pierwsza

Oblicz rozkady zmiennych


E 9 E 9 9 E 9 E 9 E 9 % 3  " 3 "  " 3 " (  "  "

-1

0 1

20. czny rozkad zmiennych losowych a

przedstawiony jest w tabeli.

. .

18. Zmienna jest okrelona na przestrzeni s nym rozkadem. Podaj jej rozkad, wartoc oczekiwan oraz s a

, wariancj e

oraz

Oblicz wartoc oczekiwan s a

z jednostaj.

E #& 9 5 & $ $ $ ## " 9

E 9

1 E 9

Oblicz

3 5 " 3 5 " " "



.

E& # 9 E  "  " % " E 9 (

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 ,

z jednostajnym rozkadem okrelamy trzy zmienne s , . Czy zmienne te s niezale ne? a z

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

Podobnie ka dy podzbir tych zmiennych jest niezale ny. z z

28. Pokaza , ze jezeli mamy zmienna losow c a inn zmienn , to i s niezale ne a a a z

z rozkadem jednopunktowym i dowoln a i ,

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

c) Czy b) jest mo liwe je eli z z

ma rozkad jednostajny?

  

b) Czy jest mo liwe z

lub

a) Czy jest mo liwe z


lub

? ?

33. Przypucmy, ze zmienna losowa przyjmuje s ka de z dodatnim prawdopodobienstwem. z

wartoci s

$$$

32. Poda przykad dwch zmiennych c i .

o r nych rozkadach takich, ze z

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'

27. Pokaza , ze je eli c z

ma rozkad symetryczny, tzn dla pewnego dla ka dego , to z .

 9

26. Pokaza , ze dla ka dego c z oraz .

istnieje zmienna losowa

taka, ze

" E 9

"

$$$

25. Mamy

niezale nych zmiennych losowych z zmienne te sa niezale ne. z z

. Pokaza , ze dla ka dego c z

E 9

$$$

% E 9  & E 9  1  " 5& $ $ $ ##

Oblicz rozkady brzegowe zmiennych , .

. Oblicz

9 0 E

% 5 " % @" @" " " %" % 5 " % 5 " % @" " " "

Z=1

  2E1 ' " $

9 E

"

9 E

32

Rozdzia 1. Rachunek prawdopodobienstwa

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

; a je eli z to rozkad dwumianowy.

, 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

E E )AH E A 9 9 C @DC A 9 E )AH 9

% 2 "

b)

 E  9 '     % E 9    DE    9 E 9 '2% E 9 E 9 E 9 E 9 '


i s niezale ne to a z

&

34. Kowariancja zmiennych losowych . Pokaza , ze c

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

nie mo na umieszcza wi kszego kr zka na mniejszym. z c e 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

, to przekadamy ten jeden kr zek a

przekadamy

-ty kr zek z a

przekadamy

kr zkw z na a 3

(za pomoc palika a

przekadamy razie potrzeby palikiem

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

przenie( s wypisz przenie( s

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

Na rysunku 8.1 zilustrowano dziaanie procedury przenie dla s

. 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

), ).

 % #

    



 '% 

   

  

%  '&   % '&

 

# "   

$ $ $

%
 

1.2. Algorytm Euklidesa, wersja rekurencyjna

1.2 Algorytm Euklidesa, wersja rekurencyjna


Innym przykadem algorytmu rekurencyjnego mo e by rekurencyjna wersja algorytmu z c Euklidesa, ktry oblicza najwi kszy wsplny dzielnik dwch dodatnich liczb naturalnych e i : funkcja NWD(a,b): je eli z , to , to , to

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;

Rysunek 1.2: Schemat dziaania rekurencyjnej wersji algorytmu Euklidesa NWD(5,3):=1

NWD(2,3):=1

NWD(2,1):=1

Na rysunku 8.2 przedstawiono proces obliczania funkcji NWD(7,3).

1.3 Funkcje rekurencyjne


Czasami wygodnie jest zdeniowa funkcje za pomoc wzoru rekurencyjnego. Na przyc a kad funkcj silnia deniuje si zwykle za pomoc nast puj cych dwch rwna n: e e a e a

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.

1.4 Funkcja (ci g) Fibonacciego a


Nast pnym przykadem rekurencyjnego deniowania funkcji jest funkcja Fibonacciego, e okrelona rwnaniami: s

Kolejne wartoci funkcji Fibonacciego to: s

Udowodnimy teraz przez indukcj, ze e

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.

1.5 Funkcja Ackermanna


Funkcja Ackermanna okrelona jest, dla liczb naturalnych s naniami:

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   1 0 0            2   )%    (    "   %  %  %     %    #"       ! %   ' %& $    "   %     4"         

"  4 " %

3   10)' 2 (

34 2 64  10)' '% 64  '%   54  (    10)' (   '%    64    2 2 '10)' 4 ( 7 8  2 54 

D  C  A     @       9 B

  

333 &     "

 %  '%        "  "


  

 

(1.1)

, nast puj cymi rwe a

1.6. Algorytm sortowania przez scalanie

1.6 Algorytm sortowania przez scalanie


Zajmijmy si teraz pewnym prostym rekurencyjnym algorytem sortowania ci gu. Dla e a prostoty za my, ze dugoc ci gu jest pot g dwjki. z s a e a Algorytm sortowania

je eli ci g ma dugoc jeden, to jest ju posortowany, z a s z

je eli ci g jest du szy, to: z a z

dzielimy go na poowy,

sortujemy te poowy,

czymy posortowane poowy w jeden posortowany ci g. a a

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

W takiej sytuacje pozostae elementy tego drugiego ci gu przenosimy do ci gu a a

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

ma tylko jeden element, to koniec, ma wi cej elementw, to: e

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

je eli problem jest maego rozmiaru, to rozwi zujemy go bezporednio, z a s

czymy a

merge-sort(

merge-sort(

), ), .

dzielimy ci g a

na poowy

3   9      

9  
 

  
 

$ $ $ $

1.7. Rozwi zywanie rwna i nierwnoci rekurencyjnych a n s

1.7 Rozwi zywanie rwnan i nierwno rekurencyjnych a sci


Oszacujmy teraz czas dziaania algorytmu sortowania przez scalanie. Niech oznacza liczb operacji porwnania potrzebn do posortowania ci gu dugoci . Mamy nast puj ce e a a s e a oszacowania:

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

1.8 Metoda podstawiania


W metodzie podstawiania odgadujemy rozwi zanie albo jego oszacowanie, a nst pnie a e pokazujemy, ze jest ono poprawne. Poka emy dziaanie tej metody szacuj c zo onoc z a z s czasow merge-sortu okrelon rekurencj (1.2)-(1.3). Zgadujemy, ze a s a a

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

  

  

 2  (    %  (      (    

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

Po podzieleniu stromnami przez

, otrzymamy

Powy szy ukad jest speniony dla z

Tak wi c otrzymujemy wzr na funkcj Fibonacciego e e

(1.6)

1.9 Metoda iteracyjna


Moteda iteracyjna polega na rozwijaniu rekursji. Jako pierwszy przykad rozwa my zaz le noc. z s

Dla uproszczenia zakadamy, ze jest pot g e a rozwijamy w nast puj cy sposb: e a

, dla jakiego naturalnego. Funkcj s e

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

oraz speniaj rwnanie (1.5). a

%  

 

     

 

9     $ 9       

 

 %   %      )%    

Sprawd my, jakie funkcje postaci z rwnania (1.5) mamy

speniaj to rwnanie. Po podstawieniu do a

3 

  %%

     D      
 

3 4

    %

9   

 
%

 

 " "  "

 

 

  %

(1.5)

 

 

A  

%  A

33     &3          9        9           

        

     B (              9   9 %    33   3 D    9       B (    33  9   &3 D    9    3 3 3  9       D    9     9     D   9     D   9    


1.10. Metoda rekurencji uniwersalnej oraz z faktu, ze , czyli gdy i

Przypucmy, ze mamy rwnanie rekurencyjne s

    

33 3

   

(




 

 

Iteracj powtarzamy, a ostatni skadnik b dzie zawiera e z e Otrzymamy wtedy

Dla

Skorzystalimy tu z rwnoci s s .

1.10 Metoda rekurencji uniwersalnej


Jak b dziemy j rozwija , to otrzymamy e a c Jako drugi przykad rozwa my rekursj z e . Otrzymamy wtedy (1.7)

(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.

3. Napisz program, ktry rekurencyjnie oblicza funkcj: e

4. Oblicz

wedug rekurencyjnego algorytmu Euklidesa.

5. Wedug algorytmu czenia po cz ci gi a a a i .

 "    &  

3  2  10)' (

3 

%  &$ '%     $$ 

# 

 %   $   "

"

b) wedug wzoru

 '%

Jeeli z pewnej staej

dla pewnej staej .

oraz

 

 

Jeeli z

dla pewnej staej

, 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

8. 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

  

 

Rozdzia 1. Struktury danych

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,

dzwonimy pod ten numer,

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

1.2. Drzewa binarne

1.2 Drzewa binarne


Drzewo jest hierarchiczn struktur danych. Jeden element drzewa, zwany korzeniem, jest a a wyr niony. Inne elementy drzewa s jego potomstwem lub potomstwem jego potomstwa z a itd. Terminologia u ywana do opisu drzew jest mieszanin terminw z teorii grafw, boz a taniki i stosunkw rodzinnych. Elementy drzewa nazywa si wierzchokami lub w zami. e e Licie to wierzchoki nie maj ce potomstwa. Drzewa cz sto przedstawia si w formie s a e e grafu, gdzie ka dy wierzchoek jest po czony kraw dzi ze swoim ojcem i ze swoimi z a e a dzie mi (swoim potomstwem). Dla ka dego elementu w drzewie istnieje dokadnie jedna c z z scie ka prowadzca od korzenia do tego wierzchoka. a Drzewa binarne to takie drzewa, w ktrych ka dy wierzchoek ma co najwy ej dwch z z a synw. Do oznaczania wierzchokw w drzewie binarnym wygodnie jest u ywa c ci gw z oznacza zbir wszystkich skonczonych ci gw zer i jedya zer i jedynek. Niech nek. Zbir ten zawiera ci g pusty (dugoci 0), oznaczany przez . Wierzchoki drzewa a s oznaczamy w nast puj cy sposb: e a

korze drzewa oznaczamy przez n

pusty ci g, a

je eli jaki wierzchoek jest oznaczony przez , to jego synowie oznaczeni s przez z s a i .

Rysunek 1.1: Przykad drzewa binarnego

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 .









 

Rozdzia 1. Struktury danych

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.

1.3 Drzewa wyra en arytmetycznych z


Przykadem zastosowania drzew binarnych s drzewa wyra e n arytmetycznych. Najpierw a z przykad. Na rysunku 1.3 przedstawiono drzewo wyra enia z . W drzewie tym ka z dy wierzchoek ma etykiet . Licie etykietowane s staymi albo zmiennymi. Wierzchoki e s a nie b d ce licmi etykietowane s operacjami arytmetyczymi. Ka demu wierzchokowi e a s a z w drzewie mo emy przypisa wyra enie arytmetyczne wedug nast puj cej zasady: z c z e a dla lici wyra eniami s etykiety tych lici (stae lub zmienne), s z a s

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(

&'2$" % # '10 '% & %& & ( ( & '% )

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 .

1.3. Drzewa wyra e arytmetycznych z n

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     

Rysunek 1.3: Drzewo wyra enia z

!A@ &    

!   7&  

!   7&  

 

Rozdzia 1. Struktury danych

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

ma w postaci inxowej posta c a wyraenie z jest postxow postaci wyraenia a a 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

je eli element jest znakiem operacji, to: z


zdejmujemy dwie wartoci z wierzchu stosu, s wykonujemy operacj na tych wartociach, e s

obliczon wartoc wkadamy na wierzch stosu, a s

po przejciu caego wyra enia jego wartoc znajduje si na stosie. s z s e

Przykad 1.6 Zademonstrujmy ten algorytm na przykadzie wyraenia: z

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  

 


  

1.4. Przeszukiwanie drzew binarnych czytany element a b c stos 3, 3, 2, 3, 2, 1, 3, 3, 9, 9, 4, 9, 4, 2, 9, 2, 11.

1.4 Przeszukiwanie drzew binarnych


Zajmiemy si teraz dwoma algorytmami przeszukiwania drzew (binarnych): przeszukie wanie w g b i wszerz. R ni si one rodzajem u ytych struktur danych. W algorytmie a z a e z przeszukiwania w g b u yjemy stosu, a w algorytmie przeszukiwania wszerz u yjemy a z z kolejki.

1.4.1 Przeszukiwanie drzewa w gab


Algorytm przeszukiwania drzewa w g b. a Dane wejciowe: drzewo . s

odwiedzamy korze n odwiedzony,


i wkadamy go na STOS; zaznaczamy

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

ze STOSU i cofamy si do wierze

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

Rozdzia 1. Struktury danych Wierzchoek 0 00 0 01 0 1 10 1 11 110 11 111 11 1


STOS ,0 ,0,00 ,0 ,0,01 ,0


,1 ,1,10 ,1 ,1,11 ,1,11,110 ,1,11 ,1,11,111 ,1,11 ,1


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,

je eli przyszlimy do wierzchoka z s odwiedzony by tylko lewy syn,

od lewego syna

(po zdj ciu e

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

jest aktualnie odwiedzanym wierzchokiem i

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

je eli przyszlimy do wierzchoka od prawego syna z s odwiedzeni ju byli obaj synowie. z

(po zdj ciu ze stosu), to e

ze stosu), to

1.4. Przeszukiwanie drzew binarnych Je eli z oraz ojca wierzchoka .

11

Je eli ostatni operacj na stosie byo zdj cie 0 to: z a a e Je eli z choka .

, to zdejmij ostatni element ze stosu i przejd do ojca wierzz

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

,1 ,1,0 ,1 ,1,1 ,1,1,0 ,1,1 ,1,1,1 ,1,1 ,1


Zauwamy, ze etykiety na stosie z czone razem tworz nazw aktualnie odwiedzanego z a a e wierzchoka.

1.4.2 Przeszukiwanie drzewa wszerz


Nast pny algorytm przeszukiwania drzew u ywa kolejki jako pomocniczej struktury dae z nych. Algorytm przeszukiwania wszerz. Dane wejciowe: drzewo . s

odwiedzamy korze drzewa n

i wkadamy go do KOLEJKI.

Je eli z

, to przejd do z

, to zdejmij ostatni element ze stosu i 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

odwiedzamy wszystkiech synw wierzchoka kolejki.

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

KOLEJKA 0,1 1,00,01 00,01,10,11 01,10,11 10,11 11 110,111 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

1.4.3 Rekurencyjne algorytmy przeszukiwania drzew


Istnieje prosty i ciekawy sposb uzyskiwania postaci postxowej wyra enia arytmetyczz nego z drzewa tego wyra enia. Aby uzyska posta postxow wyra enia, nale y przez c c a z z szuka drzewo tego wyra enia w pewien okrelony sposb, zwany przeszukiwaniem poc z s storder. Przeszukiwanie postorder. Aby przeszuka (pod)drzewo maj ce swj korzen w wierzc a choku :

przeszukujemy jego lewe poddrzewo (z korzeniem w


przeszukujemy jego prawe poddrzewo (z korzeniem w

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@ &    

ktry jest postaci postxow wyraenia a a z

  )  

), ),

1.5. Drzewa poszukiwa binarnych n

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 :

przeszukujemy jego lewe poddrzewo (z korzeniem w

odwiedzamy wierzchoek

(korzen drzewa),

przeszukujemy jego prawe poddrzewo (z korzeniem w

Przeszukiwanie preorder. Aby przeszuka (pod)drzewo maj ce swj korzen w wierzc a choku :

odwiedzamy wierzchoek

(korzen drzewa), ),

przeszukujemy jego lewe poddrzewo (z korzeniem w

przeszukujemy jego prawe poddrzewo (z korzeniem w

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

1.5 Drzewa poszukiwan binarnych


Drzewa s podstawow struktur przy budowie du ych baz danych. Jed z najprostszych a a a z a takich struktur s drzewa poszukiwan binarnych. Aby utworzy drzewo poszukiwa bia c n narnych, zaczynamy od pustego drzewa, a nast pnie wstawiamy po kolei elementy, kte re maj by przechowywane w drzewie. Wstawiane elementy powinny by z jakiego a c c s uporzdkowanego zbioru. Poni ej przedstawiamy algorytmu wstawiania elementw do a z drzewa. oznacza wartoc przechowywan w wierzchoku . Pami tajmy, ze s a e oznacza poddrzewo o korzeniu w wierzchoku . Algorytm wstawiania elementu do drzewa poszukiwan binarnych. Aby wstawi element do drzewa : c

& '%

je eli drzewo z

jest puste, to

(wstaw do korzenia ),

 

!   

! A   

& '%

),

).

).

14

Rozdzia 1. Struktury danych w przeciwnym razie porwnaj z zawartoci korzenia s a

Przykad 1.11 Przypucmy, ze mamy ci g liczb naturalnych: s a

Utworzymy dla tego ci gu drzewo poszukiwa binarnych. a n

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

, .

Je eli mamy ju drzewo poszukiwan binarnych , to dla ka dego wierzchoka z z z zachodzi

   3 



  3        3    

 

    5      

 

( '% & & ( '%

je eli z

, to wstaw do poddrzewa

&'% ( & '%

je eli z

, to wstaw do poddrzewa

, .

& '%

1.6. Zadania

15

Rysunek 1.6: Drzewo dla ci gu: 128,76,106,402,100,46,354,1018,112,28, 396,35 a

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

3. Narysuj drzewo dla wyra enie z postxowej i prexowej.

 &    &  (

je eli z

, to szukamy w prawym poddrzewie

. Przedstaw to wyra enie w postaci z

! 

je eli z

, to szukamy w lewym poddrzewie

'% & ( &'% & '% @

je eli z

, to koniec, znale limy element na drzewie, z s , .

& '%

je eli z

nie jest puste, to porwnujemy z wartoci s a

je eli z

jest puste, to koniec, elementu nie ma na drzewie, :

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

9. Udowodnij, ze ka de pene drzewo binarne o z wewn trznych. e

liciach ma s

8. Udowodnij, ze ka de drzewo o z

werzchokach ma

kraw dzi. e wierzchokw

  ))   

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

W wyniku dzielenia otrzymalimy iloraz 145 i reszt 3. Liczby te speniaja rwnanie s e


    

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

nazywa si ilorazem cakowitoliczbowym e


(

przez , a nazywa si reszt z dzielenia e a . Iloraz

" #! $ %

! 4 65)

istnieje dokadnie jedna

4 a reszt przez e

Rozdzia 1. Teoria liczb

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

1.2 Podzielno c liczb s


! "

Mwimy, ze liczba cakowita wita , taka ze:

dzieli liczb cakowit , je eli istnieje liczba cakoe a z


W

Dowd. Je eli z

, to istniej dwie liczby cakowite a

oraz


Mamy wi c: e oraz

  ")!

czyli

dzieli

oraz

W $  $ # !"!   

($

('& $  #

# '&

!

$  # %



# %

# %

  !



  !  

Lemat 1.4 Jeeli z

oraz

, to

  

Przykad 1.3

oraz

. oraz

Liczb e

nazywamy dzielnikiem liczby .


$

Q T

!

B dziemy to oznacza przez e c

. Zauwa my, ze zachodzi wtedy: z

, takie ze:

!9 A@

Q T

Przykad 1.2

oraz

, poniewa z

oraz

 62 $

    F'E%  

W Q ! T 

 A

 A 

1.3. Relacja kongruencji

1.3 Relacja kongruencji


Niech b dzie dowoln liczb naturaln e a a a . Powiemy, ze dwie liczby cakowite s rwnowane (lub przystaj ) modulo , je eli a z a z
W ! " $

B dziemy wtedy pisa : e c Przykad 1.5 .


! Q T

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

zwrotno , dla kadego zachodzi sc z


!

przechodnio , dla kadego , i , sc z

Ponadto relacja modulo jest zgodna z dodawaniem, odejmowaniem i mno eniem. z


Q 

Dowd. Z zao enia mamy: z

z tego za atwo wynika, ze s

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

czyli zachodzi teza twierdzenia.

 

 & 

 

oraz

($ T  Q



($

   $

Q 

Q T

 !   ($   Q

 

!   !"   $   $

Twierdzenie 1.7 Jeeli z

oraz

to:

! ($

  $

Dowd. Udowodnimy tylko przechodnioc relacji. Je eli s z to czyli .

oraz

!  ! "$ ($ T   Q

$ T  Q

! "$ 

$ T  Q

$ T  Q

!!   

jeeli z


to

$ T  Q

symetri , dla kadego i , jeeli e z z

to

($ T  Q

Je eli i sa dodatnie, to z same reszty z dzielenia przez

wtedy i tylko wtedy, gdy i maja takie

Q T

W 1

Q T  $ T  Q

 "$ $

$%# !

Q T

%

  !

!!    $

Rozdzia 1. Teoria liczb

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 

Przykad 1.9 Aby przekona si , ze c e

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

1.4 Klasy abstrakcji


Dla relacji przystawania modulo deniujemy klasy abstrakcji. Dla dowolnej liczby cakowitej , klas abstrakcji elementu deniujemy w nast pujcy sposb: e e a
W

Przykad 1.10 Dla

mamy trzy klasy abstrakcji

Innymi sowy, klasa abstrakcji liczby


%

to zbir wszystkich liczb z ni rwnowa nych. a z

  A  $$

($   Q

$ 

$ 

Q T

   

wystarczy zauway , ze w iloczynie z c Inaczej oraz nia 1.7 mamy 10.

ostatnia cyfra powinno by 8 a nie 6. c , wi c na podstawie twierdzee , a liczba przystaje do 6 modulo

  Q  T@$ $

 

Q T

 $$  $  @ " VA$ 

Q        $  5A$   $$  $  @ " VA$ 

$ % Q T

   

$    $ $ A$   $  $ $ 

 Q  $ F T   $ 

 

 

$   $

czyli

ma takie same reszty modulo 3 co suma cyfr w zapisie dziesi tnym. e

Q T

to

$ 

Podobnie, dla dowolnej liczby , jeeli zapiszemy z

w postaci dziesi tnej: e

Q T

        $   $    $$  R#VA$ VA$ 

Q T

 $ $

 $

$ 



Zauwa my, ze klasy abstrakcji elementw rwnowa nych pokrywaj si . z z a e

Nast pna wa na wasnoc klas abstrakcji to ich roz cznoc. e z s a s

( 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

Klasy abstrakcji relacji modulo

$ 

1.5 Pier cien s

wygl daj nast puj co: a a e a

jest postaci:

 

($ T  Q

Z przechodnioci mamy wtedy s

, a z lematu 1.11

W 1

$ QT 

 

$ T  Q

 

Dowd. Przypucmy, ze klasy s

maj wsplny element . Wtedy: a

 

 

 

Lemat 1.12 Jeeli z inaczej, dwie klasy abstrakcji

to

, albo s identyczne, albo s roz czne. a a a

 

Identycznie pokazujemy zawieranie odwrotne

W  

 

a wi c pokazalimy, ze: e s

$ T  Q

  

 "    

 

$ T  Q

to

i z przechodnioci relacji s

 

Dowd. Je eli z

 

 

$ T  Q

Lemat 1.11 Jeeli z

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

  

 

$

Rozdzia 1. Teoria liczb

klas i wykonujemy dziaania na tych przedstawicielach. Dokadniej, dodawanie klas abstrakcji deniujemy nast puj co: e a
W   

Podobnie deniujemy odejmowanie i mno enie: z


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

Dowd. Z zao enia mamy: z

a z twierdzenia 1.7:

Lemat 1.15 Dziaania na klasach abstrakcji

speniaj nast puj ce warunki: a e a


0

dodawanie oraz mnoenie s przemienne i czne, z a a

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

jest elementem neutralnym mnoenia, to znaczy dla dowolnego z ,

mamy ,

    V

 V

dla kadej klasy z

istnieje klasa do niej przeciwna

, taka ze

$

 

klasa

jest elementem neutralnym dodawania, to znaczy dla kadego z ,

$

 A$ 

W W W    $ 

Przykad 1.14 Niech naley do z


 $ 

. Dla dowolnych dwch liczb a iloczyn do .

ich suma

mamy ,

W

$

oraz

W

W 1

$ T  Q

($ T  Q

 

 

Lemat 1.13 Jeeli z

oraz

to:

 

 

 

 

   

 

  

 &
 

    




  $     0 $

      0 

    
0 0 

Dowd: Udowodnimy tylko rozdzielnoc: s


W

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

dla prostoty b dziemy dalej opuszcza nawiasy. Mamy wi c zbir: e c e

z dodawaniem i mnoeniem okrelonym nast puj cymi tabelami: z s e a + 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 0 1 2 3 4




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

gdzie dodawanie i mnoenie jest okrelone nast puj cymi tabelami: z s e a + 0 1 2 3 0 0 1 2 3 1 1 2 3 0 2 2 3 0 1 3 3 0 1 2 0 1 2 3




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

Rozdzia 1. Teoria liczb

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.

1.6 Najwi kszy wsplny dzielnik e


Dla dwch liczb cakowitych i , ich najwi kszy wsplny dzielnik to po prostu najwi ksza e e liczba cakowita , ktra dzieli i . Najwi kszy wsplny dzielnik liczb i b dziemy e e . Na przykad: , . oznacza przez c
! $

1.7 Algorytm Euklidesa


Najwi kszy wsplny dzielnik dwch liczb dodatnich mo na obliczy za pomoc algoryte z c a mu Euklidesa. Algorytm Euklidesa. Aby obliczy najwi kszy wsplny dzielnik dwch dodatnich liczb c e naturalnych , , powtarzamy a do skutku: z
! !

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

(
$

 %

 


!

#$ !

#$

 

1.7. Algorytm Euklidesa

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

iteracji b dzie pomniejszone o i b dziemy mieli: e e

W ! 1

( 6&

Za my teraz, ze po -tej iteracji p tli z e


 A

oraz ze zachodzi:

lub mwi c inaczej, a

jest kombinacj cakowitoliczbow liczb a a

i .

 

! @

! 

!  $

 

. Wtedy

! (

 

12

Rozdzia 1. Teoria liczb

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

Tak wi c liczb 3 mo na przedstawi jako kombinacj liczb 15 i 36 w nast puj cy sposb: e e z c e e a


W  A

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

. Udowodnilimy poni szy s z

1.8. Liczby pierwsze i wzgl dnie pierwsze e Lemat 1.20

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
! @ ! ! ! !

Przykad 1.23 Zastanwmy si , ile wynosi e

oraz 2 jest wsplnym dzielnikiem 1998 i 2000, wi c e Zastanwmy si teraz, ile wynosi e

. Poniewa: z

wi c e

dzieli 2, a poniewa 2 nie dzieli ani 1999, ani 2001, wi c z e .

1.8 Liczby pierwsze i wzgl dnie pierwsze e


e z , a liczba Dwie liczby naturalne i sa wzgl dnie pierwsze, je eli naturalna jest pierwsza, je eli z i jedynymi dzielnikami naturalnymi s jedynka i a samo . Oto wszystkie liczby pierwsze mniejsze od 50:
! W

1.9 Rozkad liczb na czynniki pierwsze


W tym rozdziale zobaczymy, ze ka d liczb naturaln z a e a mo na rozo y na czynniki z z c pierwsze i ze taki rozkad jest jednoznaczny z dokadnoci do kolejnoci czynnikw. Na s a s przykad: i
W     & A $     

$ #

$ #

&

Liczba takie, ze

, ktra nie jest pierwsza jest zo ona. Istnieja wtedy dwie liczby , z .

 %

$ $ A$ 

 %      AA $ $    $ @A    A$   

A @   A  A   

$ $ A$ 

Wniosek 1.22 Jeeli istniej liczby cakowite i , takie, ze z a .


       

, to

. Poniewa: z

!! 


 !

! @

$ $ A$ 

! ! @  3 !! 

&

@$  $ AA $ $

jest podzielny przez kady wsplny dzielnik liczb z

      

! @

14

Rozdzia 1. Teoria liczb

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

ale wtedy, wbrew zao eniu, mamy rozkad liczby z

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

Pomn my teraz obie strony tego rwnania przez : z

Lemat 1.26 Jeeli liczba pierwsza dzieli iloczyn liczb pierwszych z


(

(   

( (

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

(niekoniecznie rnych), to wtedy jest rwne jednej z liczb z


) )

. jest

i zauwa my, ze z stron , czyli . e

dzieli oba skadniki po lewej stronie rwnania, a wi c dzieli praw e a

Dowd. Z twierdzenia 1.19, istniej dwie liczby cakowite a


W ! T 

i , takie ze:

)   

) )

) )

( (

  

 @ !

&

  

  

( (

( (

 !

  

$ #

&

dla pierwsze

. Ale poniewa z

s mniejsze od , wi c mo na je rozo y na czynniki a e z z c

W (

  

$#

&

Twierdzenie 1.24 Kad liczb naturaln z a e a pierwszych (niekoniecznie rnych): z

mona przedstawi jako iloczyn liczb z c

( (

$ #

1.10. Elementy odwracalne

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

1.10 Elementy odwracalne

 $

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

($ 

Lemat 1.31 Liczba

jest odwracalna wtedy i tylko wtedy, gdy , to istniej liczby cakowite a

i , takie ze:

, ktra przystaje

($ 

 

Q 

 

Przykad 1.30 jest odwracalna w calne sa take , i . z




bo

nazywamy elementem odwrotnym do


!

i oznaczamy przez


. . Oprcz 3 w odwra.

W 1

$ T  Q

Denicja 1.29 Element

jest odwracalny, jeeli istnieje z

, takie, ze

 

W ( W W

 

W W W

4 W @W W

gdzie

s dodatnimi liczbami naturalnymi, a .

W W W

Twierdzenie 1.27 Kad liczb naturaln z a e a stawi w postaci iloczynu: c

mona w dokadnie jeden sposb przedz

s liczbami pierwszymi oraz zachodzi a

(1.1)

16 czyli dla jakiego . Mamy wi c s e czyli

Rozdzia 1. Teoria liczb

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

Kolejne kroki algorytmu przedstawiono w tabeli:


( T (

17 5 5 5 3 1 Mamy wi c: e czyli: ale:

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

Dowd: Elementem odwrotnym do iloczynu jest .

jest

! 

Lemat 1.35 Jeeli z To oznacza, ze

to oraz z mnoeniem jest grup . z a

, 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-

Denicja 1.32 Zbir elementw odwracalnych w

oznaczamy przez

czyli 10 jest elementem odwrotnym do 12 w piercieniu s

. .

(wniosek 1.22).

W Q T Q 

$ # 


 

$ #  

'

%




$   



$ 

1.11. Funkcja liniowa

17

1.11 Funkcja liniowa


W

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

Zauwa my, ze je eli jest wartoci funkcji , czyli gdy z z s a

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

Lemat 1.37 Jeeli z

oraz
!

a poniewa dzieli i , to z liczby podzielne przez .

dzieli , a wi c wartociami funkcji e s

, to rwnania

$#

to istnieje takie , ze
!

mog by tylko a c

($ 

& 

$ T  Q

($ 

Lemat 1.36 Jeeli z jednoznaczn w a iw

, to funkcja

jest funkcj wzajemnie a

!

& 

Z tego wynika, ze rwnanie

jest wzajemnie jednoznaczna i "na" oraz, ze dla ka dego z

 &

W takim przypadku istnieje element odwrotny do jest odwrotna do . Rzeczywicie s


W

i funkcja

, ktra

($ 

($ T  Q

&   

Zastanwmy si jak w piercieniu e s


dziaa funkcja liniowa

& 

$ 

&

18 Dowd

Rozdzia 1. Teoria liczb

czyli wtedy i tylko wtedy, gdy

Z lematu 1.37, to rwnanie jest rwnowa ne rwnaniu z

takie ze
W

Ale rwnania (1.4) i (1.3) s spenione tak e przez liczby a z


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

, wi c najpierw rozwi zujemy rwnanie e a


 Q T

W mamy rwnaia (1.5) w

wi c rozwi zaniem jest e a s liczby a

. Tak wi c rozwi zaniami e a

Ale teraz

i rwnanie (1.4) ma dokadnie jedno rozwi zanie a

 

# 

$   Q

$ T  Q

W 1

W W W 9

 $ W W W

9 ! 

9 ! 

 F

9 @

9 @

9 9 $ @ 

 

 

w piercieniu s

, czyli szukamy takich

($   Q  $ W W $ W

Przypucmy teraz, ze s

dzieli i rozwi zmy rwnanie a

(1.2) , ze (1.3)

(1.4)

(1.5)

$ T  Q

$ # 

a to zachodzi wtedy i tylko wtedy, gdy istnieje


9 ! 

takie, ze

$#

9 !

9 @

wtedy i tylko wtedy, gdy istnieje

takie ze

($   Q


9 @

$ W W W

1.12. Szyfry liniowe

19

1.12 Szyfry liniowe


Przypucmy, ze mamy tekst zapisany za pomoc 26 liter alfabetu aci nskiego: s a

i chcemy ten tekst zaszyfrowa . W tym celu uto samiamy zbir liter z elementami pierc z scienia :


Funkcja deszyfrujca jest okrelona wzorem: a s


!

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

po zaszyfrowaniu wygl da tak: a

litera m a t e y k

szyfr k u p i a q

W tym celu musimy zaszyfrowa 6 liter: c tabeli:

, , , ,


W T 

$ $  $

Przykad 1.39 Wybierzmy

$ A

Z tego wynika, ze funkcja szyfrujca a




jest wzajemnie jednoznaczna. i zaszyfrujmy sowo

oraz . Obliczenia przedstawiono w

 )!

W 1

Q T

Q 

wybieramy dwie liczby literze wedug wzoru:

 ) ( $ #   !
, takie ze

 

   W W % W 

% $


 

, i szyfrujemy litera po

20

Rozdzia 1. Teoria liczb

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

Po odj ciu tych rwna stronami mamy: e n


W 1

Korzystaj c z algorytmu Euklidesa, moemy teraz wyliczy element odwrotny do 5 w piera z c scieniu . Jest to 21, poniewa: z

tak wi c: e Teraz z drugiego rwnania moemy wyliczy : z c


$  ! E   W 1

1.13 Chinskie twierdzenie o resztach


W staro ytnych Chinach generaowie u ywali pewnego ciekawego sposobu liczenia swoz z ich zonierzy. Dla kilku niewielkich liczb parami wzgl dnie pierwszych, na przykad dla: e

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

W poni szej tabeli mamy zestawione reszty modulo 2 i 3 liczb od 0 do 5: z

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 



22 Ka da z liczb od 0 do z , speniaj cych warunek a


F '

Rozdzia 1. Teoria liczb


 

Oczywicie 6 ma takie same reszty jak 0: s

dla jakiego cakowitego , to s


QT Q T

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:

Ponadto nie istnieje taka liczba , dla ktrej:

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

zachodzi bowiem poni sze twierdzenie. z

Twierdzenie 1.41 (chinskie twierdzenie o resztach) Niech

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

$ $

  

 

i oglnie, je eli dwie liczby z

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

Po odj ciu stronami tych dwch rwnan mamy: e

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

jest rozwi zaniem ukadu rwnan (1.6). a

$   Q

co daje:

$ T  Q

"

Zauwa my, ze je eli z z

, to

, oraz:

$

W 1

$ T  Q

Poniewa z takie ze:

maj roz czne rozkady, wi c a a e

oraz istnieje

$ 9

$ W W $ W

$ W W W

   

$ $   $ 

!% ! 3

wi c ka da spord liczb e z s wi c tak e ich iloczyn e z rozkad

dzieli dzieli

, a skoro liczby s wzgl dnie pierwsze, a e . Rzeczywicie, przypucmy bowiem, ze s s ma

$ W W $ W

  $

czyli

Dowd. Najpierw udowodnimy drug cz sc twierdzenia. Dla ka dego a e z

W 1

$   Q

W 1

Q $ T 

$   Q

$   Q

$ T  Q $
W W W

$ T  Q

(1.6)

mamy:

24

Rozdzia 1. Teoria liczb

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

poniewa 4 jest jedyn liczb z przedziau z a a oraz .


 Q T

, ktra posiada reszty

1.14 Pierwiastki kwadratowe

Lemat 1.46 Jeeli z z .

jest liczb pierwsz i a a

, to

$ T  Q

 $

czyli

, te jest pierwiastkiem . z i

s jedynymi pierwiastkami a

($

Q T

 $   $ T  Q

Zauwa my, ze je eli z z

 $

Przykad 1.45 W

pierwiastkami 4 s 2 i 3, a liczba 2 nie posiada pierwiastka. a to

($   Q

Denicja 1.44 Liczb e , jeeli z

nazywamy pierwiastkiem kwadratowym liczby

w piercieniu s

Q T

W W W  $

Q T

przez 15. atwo mona policzy , ze: z c

oraz

W QT QT Q T

     

      

Q T

 

wtedy rnica z

spenia nast puj cy ukad kongruencji: e a

Q T

Q T

a na apelu wieczornym byo


Q T

zonierzy i otrzymano reszty:

Q T

 

    Q T

3 $

Q T

, a wi c: e

Q T

1.15. Funkcja Eulera

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

czyli z chi skiego twierdzenia o resztach wynika, ze n

1.15 Funkcja Eulera

$

$

b) Jeeli z

s wzgl dnie pierwsze, to a e

$  

Lemat 1.50

a) Jeeli jest liczb pierwsz , to dla dowolnego z a a . W szczeglnoci s .

 

 

Przykad 1.49 Podobnie

, 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  

"

Poniewa z , to cztery r ne pierwiastki z 1, z


& ( &

oraz . S to liczby dla ktrych a

( T Q

W 1 (

oraz

( T Q

Q T

lub

Q T

lub

 

$

Przykad 1.47 Tak nie musi by , jeeli c z mamy cztery pierwiastki z , s to , , a


nie jest liczb pierwsz . Na przykad w a a .

i mamy wtedy

liczb e

$ T  Q

dzieli

lub

!    

Dowd Je eli z jest pierwsze to drugim

, to

dzieli . W pierwszym przypadku

($ T    Q   $ ($    Q


, a poniewa z ,w

(  Q

Q T

Q T

& ( 5F&

26 Dowd: a) Zauwa my ze, wrd liczb z s dzielne przez , jest ich


9

Rozdzia 1. Teoria liczb

wzgl dnie pierwsze z e , czyli


W 1

wtedy i tylko wtedy gdy

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

1.16 Szybkie pot gowanie e

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

y:=a; for i:=1 to j do y:=y*y mod n

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 :

dla krotnym mno-

oraz

Q 

$ Q 

$

a to zachodzi wtedy i tylko wtedy gdy reszty speniaj warunki a


oraz

(1.7)

b) Najpierw zauwa my, ze dla dowolnej liczby , z

  
2 5$

$ 

W W W

$ )

$ 

nie s te, ktre s poa a

W 1

( $

)

1.16. Szybkie pot gowanie e Przykad 1.51 Aby obliczy c w

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

 

 

  

Zauwa my, ze ka da liczba naturalna z z

$ A A$

Q T

Przykad 1.52 Aby obliczy c .


Q T

trzeba wymnoy z c

jest sum pot g dwjki a e

 

   

Je eli wykadnik jest sum pot g dwjki z a e



 % 

Q T Q   Q   Q  

obliczmy

   

%     #   31 %  %  E  

 

, to

 

28

Rozdzia 1. Teoria liczb

1.17 Mae twierdzenie Fermata

Dowd Niech to b d wszystkie elementy e a . Je eli pomno ymy je przez z z

to zgodnie z lematem 1.36 otrzymamy te same elementy tylko w innej kolejnoci. s Wymn my teraz elemnty obu ci gw z a

1.18 Szyfry RSA


W szyfrach one-pad opisanych w rozdziale o funkcjach boolowskich klucz do szyfrowania jest ten sam co klucz do deszfrowania. W szyfrach liniowych wprawdzie klucze do szyfrowania i deszyfrowania s r ne, ale jaden atwo mo na wyliczy z drugiego. Takie a z z c szyfry nazywamy symetrycznymi. Teraz zapoznamy si ze sposobem szyfrowania, w ktrych klucz do szyfrowania mo e e z by jawny, nawet ogaszany publicznie, a klucz do deszyfrowania jest tajny i jest praktyczc nie niemo liwe wyliczenie klucza tajnego z klucza jawnego. Sposb ten zaproponowali z Rivest, Shamir i Adleman. Przypucmy, ze Alicja chce utworzy swj klucz. Bierze w s c tym celu dwie du e liczby pierwsze i , ka da mo e zawiera po kilkaset bitw. Tworzy z z z c ich iloczyn . Funkcja Eulera . Nast pnie Alicja losuje liczb e e , ktra jest wzgl dnie pierwsza z e . Skoro to istnieje liczba , taka, ze . Teraz para jest jawnym kluczem Alicji i mo e z by publicznie ogoszona. Para c jest kluczem prywatnym Alicji, nie powinna go ona nikomu zdradza . Alicja nie powinna te zdradza rozkadu liczby na czynniki. Je eli c z c z kto zna i , to mo e wyliczy s z c oraz . Przypucmy, ze Bob chce przesa Alicji jak s zaszyfrowan wiadomoc . Traktujes c a a s my t wiadomoc jako liczb e s e . (Je eli wiadomoc jest ci giem znakw, to kodujemy z s a

 

 (

Q 

Wniosek 1.55 Jeeli z mamy

jest liczb pierwsz , to dla kadego a a z

wzgl dnie pierwszego z e

Po pomno eniu przez odwrotnoc z s

otrzymamy tez twierdzenia. e

W 1

$ T  Q

($ T  Q

 W W  W

W W W 

Twierdzenie 1.54 (Fermata) Niech

, wtedy

Q 

1.19. Testy pierwszoci s

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

i przesya j Alicji. Alicja odszyfrowuje za pomoc funkcji deszyfrujcej a a a


W

Poka emy teraz, ze je eli z z

, 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

1.19 Testy pierwszo ci s


W tym rozdziale zajmiemy si zagadnieniem jak sprawdzi , czy liczba jest pierwsza. e c Mo emy sobie wyobrazi , ze ma kilkaset bitw. Jak wida z poprzedniego rozdziau z c c du e liczby pierwsze mog by przydatne. z a c

1.19.1 Test naiwny


Najprostszy sposb to, dzieli przez kolejne liczby (pierwsze) a do c z test jest zupenie niepraktyczny, je eli ma kilkaset bitw. z

. 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

Rozdzia 1. Teoria liczb

1.19.2 Test Fermata


Drugi test jest algorytmem probabilistycznym i opiera si na twierdzeniu Fermata 1.54. e Losujemy liczb e i najpierw sprawdzamy, czy . Je eli i z nie s wzgl dnie pierwsze, i a e , to jest dzielnikiem i nie jest pierwsza. Je eli z , to obliczamy . Je eli z , to mamy pewnoc, ze nie jest liczb pierwsz . s a a jest zoona. z
Q T

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

i z chi skiego twierdzenia o resztach wynika, ze n


 Q T

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

' 

sa to wszystkie elementy , dla ktrych przez otrzymamy elementw

Dowd. Przypucmy, ze s

"

Lemat 1.57 Jeeli istnieje takie z , ze wa elementw jest swiadkiem Fermata dla .

, to przynajmniej poo-

. Wtedy po pomno eniu z

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 

 

1.19. Testy pierwszoci s

31

1.19.3 Test Millera-Rabina


Zakadamy, ze jest nieparzyste (2 jest jedyn parzyst liczb pierwsz ). Najpierw spraw a a a a dzamy, czy jest pot g jakiej liczby naturalnej. Dla od 2 do e a s sprawdzamy czy , dla jakiego . W rozdziale o arytmetyce opisano jak za pomoc binary search s a stwierdzi , czy liczba jest pot g innej liczby. Je eli jest pot g , to jest zo ona. c e a z e a z Poniewa jest nieparzyste, to z mo emy przedstawi w postaci z c

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

Je eli w tym ci gu jest jedynka, na przykad z a

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

i sprawdzaj c, czy a si przez ktr s z tych liczb. e a

mo emy za jednym razem sprawdzi , czy z c

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

Rozdzia 1. Teoria liczb

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

? . Podaj elementy odwrotne do 5 i

Q $ T 

$ T  Q

16. Niech reszt

b d dowolnymi dodatnimi liczbami cakowitymi. Dla jakich par e a istniej liczby speniaj ce ukad kongruencji: a a

 T  Q Q T 

15. Dla jakich par reszt

istniej liczby a

speniaj ce ukad kongruencji: a

14. Znajd elementy odwrotne do wszystkich elementw dwracalnych w z

13. Podaj tabliczk dodawania i mno enia w ciele e z 6w .

A

$  

 

10. Znajd cakowite rozwi zanie z a


$  

speniaj ce rwnanie: a

$ 

9. W piercieniu s

rozwia rwnania: a) z

, b)

Q 

 

 %

8. W piercieniu s

rozwia rwnania: a) z

. . .

 %

       

6. Dla liczb i speniaj ce rwnanie a

oblicz

oraz liczby cakowite

!  

@ ! 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)

 '

 

1. Dla ka dej z liczb: z ze .

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 .
!

, oblicza tak e wspz

1.21.2 Najmniejsza wsplna wielokrotno sc


!

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 .

1.21.3 Liczby wzgl dnie pierwsze e


Udowodnij, ze je eli jest wzgl dnie pierwsze z i , to jest wzgl dnie pierwsze z z e e iloczynem tych liczb . e z a , Jako wniosek udowodnij, ze je eli jest wzgl dnie pierwsze z ka d z liczb z to jest wzgl dnie pierwsze z iloczynem tych liczb e

$ W IWW $

! @

!! 

!! 
!


! W

! @

!!  !  !   !! 

!@!!   
! T $  & ! '6&

! T

! !

 


34

Rozdzia 1. Teoria liczb

1.21.4 Ukad kongruencji


Istnieje inny sposb rozwi zywania ukadu kongruencji. Poka emy go na przykadzie a z ukadu

Udowodnij, ze rozwizaniem ukadu (1.8) jest a




1.21.5 Chinskie twierdzenie o resztach

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



& 

%  



atwo mo na sprawdzi , ze zbir z c niem. Ponadto funkcja spenia warunki

z tak okrelonymi dziaaniami, jest piercies s oraz .

 !

'  !

$

Z chi skiego twierdzenia o resztach wynika, ze je eli n z

Q T

Q T

$ Q T 

Q T

  !

Poka , ze je eli podstawimy z z dobrze.

oraz

, to b dzie e

, to funkcja

 

 

Jak policzy c ze

oraz

? Poniewa 3 i 5 s wzgl dnie pierwsze, wi c istniej z a e e a

 

Q T

QT  QT QT Q T

       

Najpierw szukamy dwch liczb


$

speniaj cych warunki a

QT   Q T 

 $

(1.8)



i takie,

You might also like