220
Matematyka Dyskretna

MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

  • Upload
    others

  • View
    9

  • Download
    1

Embed Size (px)

Citation preview

Page 1: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Matematyka Dyskretna

Page 2: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i
Page 3: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Uniwersytet Marii Curie-SkłodowskiejWydział Matematyki, Fizyki i Informatyki

Instytut Informatyki

Matematyka Dyskretna

Andrzej Krajka

Moim wspaniałym dzieciomAsi i Tomkowi

Lublin 2011

Page 4: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Instytut Informatyki UMCSLublin 2011

Andrzej KrajkaMatematyka Dyskretna

Recenzent: Ryszard Smarzewski

Opracowanie techniczne: Marcin DenkowskiProjekt okładki: Agnieszka Kuśmierska

Praca współfinansowana ze środków Unii Europejskiej w ramachEuropejskiego Funduszu Społecznego

Publikacja bezpłatna dostępna on-line na stronachInstytutu Informatyki UMCS: informatyka.umcs.lublin.pl.

WydawcaUniwersytet Marii Curie-Skłodowskiej w LublinieInstytut Informatykipl. Marii Curie-Skłodowskiej 1, 20-031 LublinRedaktor serii: prof. dr hab. Paweł Mikołajczakwww: informatyka.umcs.lublin.plemail: [email protected]

DrukESUS Agencja Reklamowo-Wydawnicza Tomasz Przybylakul. Ratajczaka 26/861-815 Poznańwww: www.esus.pl

ISBN: 978-83-62773-05-3

Page 5: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Wstęp

Matematyka dyskretna jest to zbiorcza nazwa różnych działów matema-tyki, zajmujących się badaniem struktur nieciągłych czyli skończonych lubco najwyżej przeliczalnych. Matematyka dyskretna stała się popularna wostatnich latach dzięki zastosowaniom w informatyce, która w sposób natu-ralny zajmuje się jedynie strukturami skończonymi (skończona reprezentacjaliczb, skończona ilość operacji w jednostkach czasu komputera - taktowaniezegara).Skrypt ten powstał na podstawie wykładów, które prowadziłem na kie-

runkach informatycznych Uniwersytetu im. Marii Curie-Skłodowskiej w Lu-blinie. Z założenia jest poszerzeniem wykładu o niektóre elementy, które zpowodu ograniczeń czasowych nie mogły być w sposób kompletny wyłożone.Tak więc niektóre twierdzenia, podawane na wykładzie bez dowodów, tutajsą wprowadzone z dowodami i konieczną do tych dowodów teorią.Nie zakładam jednak, że ta książka jest pełną monografią wszystkich

działów matematyki dyskretnej. Ponieważ w planie zajęć studenci majątakie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp dologiki i teorii mnogości czy też elementy logiki i arytmetyki komputerów,więc poważnie zostały okrojone, a nawet zlikwidowane, takie działy mate-matyki dyskretnej jak algebra, logika, teoria mnogości, rachunek prawdopo-dobieństwa i kombinatoryka. Co więcej, ze względu na plan studiów, w tymskrypcie zakładam znajomość niektórych pojęć z tych działów (rozdział 7.1należy traktować jako raczej przypomnienie a nie formalne wprowadzenieprawdopodobieństwa). Z drugiej strony, ponieważ studenci na drugim rokustudiów mają przedmiot o nazwie teoria grafów, dlatego w ramach kursu- Matematyka Dyskretna teoria grafów została zredukowana do podstawo-wych pojęć. Traktujemy ją tutaj jako wprowadzenie do wspomnianego wyżejprzedmiotu, chociaż i tak w tym skrypcie zagadnienia związane z grafami sąznacznie bardziej rozbudowane w porównaniu z wykładem. Również dużailość przedmiotów takich jak podstawy programowania spowodowała usu-nięcie z wykładu elementów dotyczących sprawdzania poprawności logicznejprogramów.To co zostało to głównie problemy związane z rekurencjami, teoria liczb,

Page 6: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

vi Wstęp

sumy i metody różnicowe, funkcje całkowitoliczbowe czy podstawy teoriigrafów. Również wprowadzam, w dość okrojonym stopniu, rozdział doty-czący kombinatoryki, algorytmów sortowania i haszowania. Przy tworzeniuwykładu pojawił się problem wprowadzenia pojęcia ilorazu różnicowego.Najbardziej naturalne wprowadzenie polega na zastosowaniu analogii doróżniczkowania i całkowania, jednak o ile pochodna jest obecna w programieszkół średnich, o tyle pojęcie całki w większości szkół w chwili obecnej jestusunięte. W wykładzie utrzymałem analogię z całkami, ponieważ pojęciecałki na I roku studiów jest równolegle wprowadzane na analizie jak równieżużywane (nieformalnie) na niektórych przedmiotach fizycznych. Zdaję sobiejednak sprawę z tego, że rozdział 2.7.3 można skonstruować bez analogii zcałkąWykład starałem się konstruować na zasadzie od rozważenia pewnych

przykładów do formułowania prawidłowości. Chociaż zarówno podręcznikjak i wykład mógłby mieć logicznie spójniejszą formę (na przykład wszyst-kie metody rozwiązywania równań rekurencyjnych zgromadzone w jednymmiejscu), myślę jednak, że stałoby się to ze szkodą dla dydaktyki.Algorytmy podawane są albo opisowo, albo w zbliżonym do Pascala pseu-

dokodzie. W szczególności, w porównaniu z Pascalem często zamiast begini end używać będziemy nawiasów i (również używając tych nawiasówdo komentarzy) lub podobnych do Pythona wcięć, zwiększając przez to czy-telność programu. Opuszczać też będziemy słówko var w deklaracjach a dooperacji łączenia łańcuchów używać będziemy operatora &.

Page 7: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Oznaczenia

x ∧ y - minx, yx ∨ y - maxx, yf(n) ≍ g(n) - f(n) i g(n) mają ten sam współczynnik przyrostu, tzn. ist-nieje taka stała C, że |f(n)| ≤ C|g(n)| i |g(n)| ≤ C|f(n)|

f(n) ∼ g(n) - f(n) jest asymptotyczna do g(n) jeśli limn→∞f(n)g(n) = 1

f(n) ≺ g(n) - limn→∞f(n)g(n) = 0

X - moc zbioru X (dla skończonych zbiorów jest to ilość elementów zbioruX)

m ⊥ n - liczby m i n są względnie pierwsze, tzn. NWD(m,n) = 1P ⊥ Q - wielomiany P i Q są względnie pierwsze, tzn. NWD(P,Q) = 1a ≡ b mod m - a przystaje do b modulo m jeśli (a mod m) = (b mod m)lub równoważnie m|(a− b)

⌊x⌋ - funkcja ”podłoga” równa maxc ∈ Z : c ≤ x⌈x⌉ - funkcja ”sufit” równa minc ∈ Z : c ≥ xx - funkcja ”część ułamkowa” równa x− ⌊x⌋xm - m ta dolna silnia od x definiowana jako

xm =

x(x− 1)(x− 2)...(x −m+ 1), dla m > 0,1, dla m = 0,

1(x+1)(x+2)(x+3)...(x+(−m)) , dla m < 0.

(rk

)- uogólniony symbol Newtona, dla k ∈ N równy rk

k! podczas gdy dlak ∈ Z−

(rk

)= 0

m|n - m jest dzielnikiem n tzn. istnieje liczba całkowita k taka, że n = kmP |Q - wielomian P jest dzielnikiem Q tzn. istnieje wielomian R taki, że

Q = PRm||n -m jest dokładnym dzielnikiem n tzn. istnieje liczba pierwsza p i liczba

r takie, że m = pr|n i pr+1 6 |nx mod y - operacja modulo równa x mod y = x − y⌊xy ⌋ dla y 6= 0 oraz

x mod 0 = xAmin, Asr, Amax, A

imin, A

isr, A

imax - ilość przesunięć rekordów potrzebnych

przy dodawaniu nowego rekordu minimalnie, przeciętnie i w najgorszym

Page 8: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

viii Oznaczenia

przypadku. Litery z indeksem i dotyczą przesuwania nie rekordów aleindeksów

A(z) - ([a0, ..]) funkcja tworząca ciągu to funkcja A(z) = [ao, a1, a2, ...] =ao + a1z + a2z

2 + ... =∑

k≥0 akzk, n-ty wyraz funkcji yworzącej równy

an zapisujemy jako zn(A(z))Bn - bukiet jest grafem zawierającym jeden wierzchołek i n pętli w tymwierzchołku

C - zbiór liczb zespolonychCn - graf n-cykl to graf zawierający n wierzchołków V (Cn) = v1, v2, ..., vni dokładnie n krawędzi E(Cn) = v1, v2, v2, v3, ..., vn−1, vn, vn, v1.

Ckn - ilość kombinacji bez powtórzeń k elementów ze zbioru n elementowego,Ckn =

(nk

)

Ckn - ilość kombinacji z powtórzeniami k elementów ze zbioru n elemento-wego, Ck

n =(n+k−1

k

)

(cn...c1c0, c−1...c−k)p - zapis liczby cyframi w układzie o podstawie liczeniap równy

∑ni=−k cip

i

Df(x), f ′(x), df(x)dx - operator różniczkowania równy limh→0f(x+h)−f(x)

hDn - dipol jest grafem zawierającym dwa wierzchołki i n krawędzi łączącychte wierzchołki

D(q)n - ciąg rekurencyjny wspomagający rozwiązanie problemu Flawiusza:D

(q)0 = 1, D

(q)n = ⌈ q

q−1D(q)n−1⌉, n ≥ 1

degP (x) - stopień wielomianu P (x) - najmniejsza liczba naturalna n taka,że nP (x) ≡ 0.

degG(v) - stopień wierzchołka v w grafie G, jest to ilość krawędzi do którychnależy v

f(x) - operator różnicowy równy f(x+ 1)− f(x)E - operator przesunięcia, Ef(x) = f(x+ 1)E(G) - zbiór krawędzi grafu GEX - wartość oczekiwana zmiennej losowej XG∅ - graf pusty (∅, ∅)G(V1, V2) - graf dwudzielny jest to graf którego zbiór wierzchołków moż-na podzielić na dwa podzbiory takie, że żadne dwa wierzchołki z tegosamego podzbioru nie są połączone krawędzią

Hn - n-ta liczba harmoniczna Hn =∑n

k=11k

I(A) - indykator zdarzenia A, funkcja równa 1 dla ω ∈ A, i równa 0 dlaω 6∈ A

IG - lista krawędzi grafu G, lista na której bezpośrednio podajemy wszystkiekrawędzie grafu

indegG(v) - stopień wchodzący wierzchołka v w grafie skierowanym G, jestto ilość krawędzi które kończą się v

Jk(n) rekurencja Flawiusza

Page 9: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Oznaczenia ix

Kn - graf kompletny to graf prosty składający się z n wierzchołków i kra-wędzi łączących każde dwa wierzchołki

Kr1,r2 - pełny graf dwudzielny jest to graf którego zbiór wierzchołków moż-na podzielić na dwa podzbiory liczebności odpowiednio r1 oraz r2 takie,że żadne dwa wierzchołki z tego samego podzbioru nie są połączone kra-wędzią a zbiór krawędzi zawiera wszystkie krawędzie łączące wierzchoł-ki jednego podzbioru z wierzchołkami drugiego podzbioru. Analogiczniedefiniujemy grafy trójdzielne Kr1,r2,r3 itd.

LG - lista incydencji grafu G. Lista dla każdego wierzchołka v, w którejprzechowujemy zbiór wierzchołków połączonych krawędzią z v

ln - liczba obszarów w problemie pizzy ln = 1 + n(n+1)2 , n ≥ 0

LCG(M,a, b, α) - liniowy generator liczb pseudolosowych Lehmera tworzo-ny wg. wzoru rekurencyjnego Xn = (aXn−1 + b) mod M, n > 1, zzainicjowaną w jakiś sposób wartością Xo

M(p) - liczba Mersenne’a (wynosi 2p − 1).MG - macierz sąsiedztwa [mi,j] grafu G, mi,j oznacza ilość krawędzi grafuG łączących i-ty i j-ty wierzchołek

N - zbiór liczb naturalnych, o ile nie zostanie to wyraźnie stwierdzone za-wsze z 0

N(α, n) - ilość elementów w widmie Spec(α) nie większych niż nNWmin, NWsr, NWmax, NW i

min, NW isr, NW i

max - ilość przejrzanych rekor-dów potrzebnych do znalezienia poszukiwanego rekordu (minimalna, prze-ciętna i najgorsza) gdzy tego rekordu nie znaleźliśmy. Litery z indeksemi dotyczą przesuwania nie rekordów ale indeksów

NWD(P,Q) - najwększy wspólny dzielnik wielomianów P i Q, zakładamy,że zawsze najwyższy współczynnik wielomianu NWD(P,Q) wynosi 1

NWD(m,n) - największy wspólny dzielnik licz m i n równy maxk : k|m∧k|n

NWW (m,n) - najmniejsza wspólna wielokrotność liczbm i n równamink :m|k ∧ n|k

O(f(n)) - symbol O, g(n) = O(f(n)) gdy ∃C∀n∈N |f(n)| ≤ C|g(n)|o(f(n)) - symbol o, g(n) = o(f(n)) gdy limn→∞

g(n)f(n) = 0

outdegG(v) - stopień wychodzący wierzchołka v w grafie skierowanym G,jest to ilość krawędzi zaczynających się od v

P (A|B) - (P [A|B]) prawdopodobieństwo zajścia zdarzenia A pod warun-kiem, że wiemy iż zaszło zdarzenie B

Pn - ilość permutacji bez powtórzeń Pn = n!Pn1,n2,...,nkn - ilość permutacji z powtórzeniami (n1, n2, ..., nk) gdzie n = n1+n2 + ...+ nk wtedy Pn1,n2,...,nk

n = n!n1!n2!...nk!

,

P λ1,λ2,...,λn - ilość podziałów zbioru 1, 2, ..., n na λi zbiorów liczebnościi, 1 ≤ i ≤ n przy czym n = λ1+λ2+...+λn wynosi n!

λ1!λ2!...λn!(1!)λ1 (2!)λ2 ...(n!)λn

Page 10: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

x Oznaczenia

P (n, k) - ilość przedstawień liczby n jako suma k składnikówPet - to graf Petersena jest to graf skonstruowany z dwóch rozłącznych

5-cykli u0, u1, u2, u3, u4 oraz v0, v1, v2, v3, v4 połączone miedzy sobąkrawędziami ui, v2i mod 5, i = 0, 1, 2, 3, 4

Pomin, Posr, Pomax - ilość porównań z elementami ciągu w algorytmachsortowania (minimalna, przeciętna i najgorsza)

Pwmin, Pwsr, Pwmax - ilość przesunięć lub zamian elementów ciągu w danejmetodzie sortowania (minimalna, przeciętna, najgorsza)

Q - zbiór liczb wymiernych,Qd - graf d-wymiarowy hipersześcian to graf zawierający 2d wierzchołkówktóre możemy nazwać kodami Gray’a tak, że kody różniące sie na jednejpozycji są połączone krawędzią

R - zbiór liczb rzeczywistychS(n, k) - liczba Stirlinga II rodzaju, jest to ilość podziału zbioru n elemen-towego na k klas, spełnia rekurencję S(n+1, k) = S(n, k−1)+kS(n, k),dla 1 ≤ k < n, oraz S(n, 1) = S(n, n) = 1, n ≥ 1

s(n, k) - liczba Stirlinga I rodzaju, jest to ilość rozkładów zbioru n elemen-towego na k cykli, spełnia rekurencję s(n+1, k) = s(n, k−1)+ns(n, k),dla 1 ≤ k < n oraz s(n, 1) = (n− 1)!, s(n, n) = 1, n ≥ 1

SCn - graf n-ścieżka to graf zawierający n wierzchołków V (SCn) = v1, v2, ..., vni dokładnie n− 1 krawędzi E(SCn) = v1, v2, v2, v3, ..., vn−1, vn

Spec(α) - widmo liczby α jest to zbiór ⌊α⌋, ⌊2α⌋, ⌊3α⌋, ⌊4α⌋, ...,Speci(α) - i-ty element widma Spec(α).T (L) - optymalne drzewo binarne dla ciągu wag L (np. skonstruowane al-gorytmem Huffmana)

U(K) - rozkład jednostajny na zbiorze K, tzn. dla każdego x ∈ K jestP [U(K) = x] = 1

K

Umin, Usr, Umax, Uimin, U

isr, U

imax - ilość przesunięć rekordów potrzebnych przy

usuwaniu nowego rekordu minimalnie, przeciętnie i w najgorszym przy-padku. Litery z indeksem i dotyczą przesuwania nie rekordów ale indek-sów

V (G) - zbiór wierzchołków grafu GV kn - ilość wariacji bez powtórzeń k elementów ze zbioru n elementowego,V kn = n!

(n−k)!

Vkn - ilość wariacji z powtórzeniami k elementów ze zbioru n elementowego,V

kn = nk

V ar(X) - wariancja zmiennej losowej XWmin,Wsr,Wmax,W

imin,W

isr,W

imax - ilość przejrzanych rekordów potrzeb-

nych do znalezienia poszukiwanego rekordu (minimalna, przeciętna inajgorsza). Litery z indeksem i dotyczą przesuwania nie rekordów aleindeksów

Page 11: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Oznaczenia xi

Wn - graf n-koło to Cn−1 cykl z wierzchołkami V (Cn−1) = v1, v2, ..., vn−1z dodanym jednym wierzchołkiem vn który ma krawędzie ł ączące zkażdym z z wierzchołków V (Cn−1)

Z - zbiór liczb całkowitychγ = 0, 57721 56649 01533... stałą Euleraκ(G) - spójność wierzchołkowa grafu G, jest to najmniejszą liczbę usuniętychwierzchołków powodujących rozspójnienie grafu

λ(G) - spójność krawędziowa grafu G, jest to najmniejszą liczbę usuniętychkrawędzi powodujących rozspójnienie grafu

τn ilość porównań w metodzie sortowania “quicksort”φ(n) - funkcja Eulera, oznacza ilość spośród liczb 1, 2, ..., n−1 tych liczb,które są względnie pierwsze z n

χG - liczba chromatyczny grafu G to najmniejsza ilość kolorów potrzeba dopomalowania wierzchołków grafu tak aby sąsiednie wierzchoł ki miałyróżne kolory

χG - indeks chromatyczny grafu G to najmniejszą ilość kolorów potrzebnychdo pomalowania krawędzi tak, aby żadne dwie krawędzie maj ce wspólnywierzchołek nie były tego samego koloru

Υ - macierz incydencji [µi,j ] grafu G, wierszami są krawędzie a kolumnamiwierzchołki, jeśli krawędź wychodzi z danego wierzchołka to piszemy wodpowiedniej kolumnie (−1), jeśli do niego wchodzi piszemy (+1), jeśliwierzchołek nie należy do krawędzi piszemy 0, jeli jest to pętla własnapiszemy 2

Ω - przestrzeń zdarzeń elementarnychω - zdarzenie elementarne

Page 12: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i
Page 13: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Spis treści

Wstęp v

Oznaczenia vii

1 Równania rekurencyjne 11.1. Zasada indukcji matematycznej . . . . . . . . . . . . . . . . . 21.2. Przykłady rekurencji. . . . . . . . . . . . . . . . . . . . . . . 51.3. Metoda repertuaru . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Sumy 172.1. Oznaczenia i definicje . . . . . . . . . . . . . . . . . . . . . . 182.2. Metoda czynnika sumacyjnego . . . . . . . . . . . . . . . . . 202.3. Własności sumowania . . . . . . . . . . . . . . . . . . . . . . 222.4. Liczby harmoniczne . . . . . . . . . . . . . . . . . . . . . . . 232.5. Sumy wielokrotne . . . . . . . . . . . . . . . . . . . . . . . . . 252.6. Różne metody obliczania sum . . . . . . . . . . . . . . . . . . 282.7. Rachunek różnicowy . . . . . . . . . . . . . . . . . . . . . . . 32

3 Funkcje całkowitoliczbowe 413.1. Podłoga i sufit . . . . . . . . . . . . . . . . . . . . . . . . . . 423.2. Widmo liczby . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.3. Rekurencje z funkcjami podłoga i sufit . . . . . . . . . . . . . 473.4. Działanie dwuargumentowe mod . . . . . . . . . . . . . . . . 523.5. Generatory liczb pseudolosowych . . . . . . . . . . . . . . . . 543.6. Zapisy liczb naturalnych w różnych podstawach liczenia . . . 56

4 Teoria liczb 614.1. Podzielność, NWD i NWW . . . . . . . . . . . . . . . . . . . 624.2. Liczby pierwsze . . . . . . . . . . . . . . . . . . . . . . . . . . 654.3. Reprezentacja liczb wymiernych - drzewo Sterna - Brocota . 704.4. Kongruencje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.5. Funkcja φ Eulera i algorytm RSA . . . . . . . . . . . . . . . . 76

Page 14: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

xiv SPIS TREŚCI

5 Kombinatoryka 815.1. Permutacje, kombinacje, wariacje . . . . . . . . . . . . . . . . 825.2. Podziały zbioru i liczby Stirlinga . . . . . . . . . . . . . . . . 865.3. Współczynniki dwumianowe . . . . . . . . . . . . . . . . . . . 90

6 Funkcje tworzące 976.1. Splot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986.2. Rozwiązywanie rekurencji za pomocą funkcji tworzących . . . 1006.3. Algebra wielomianów rzeczywistych . . . . . . . . . . . . . . . 106

7 Wstęp do analizy algorytmów 1197.1. Prawdopodobieństwo dyskretne . . . . . . . . . . . . . . . . . 1207.2. Asymptotyka . . . . . . . . . . . . . . . . . . . . . . . . . . . 1257.3. Algorytmy sortowania . . . . . . . . . . . . . . . . . . . . . . 1297.4. Problem rozmieszczenia rekordów w pamięci . . . . . . . . . . 137

8 Grafy 1538.1. Podstawowe pojęcia i problem reprezentacji . . . . . . . . . . 1548.2. Grafy nieskierowane . . . . . . . . . . . . . . . . . . . . . . . 1588.3. Grafy skierowane . . . . . . . . . . . . . . . . . . . . . . . . . 1778.4. Drzewa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1798.5. Zastosowania teorii grafów . . . . . . . . . . . . . . . . . . . . 188

Bibliografia 193

Wykaz tabel 196

Wykaz rysunków 198

Wykaz algorytmów 199

Wykaz osób 201

Indeks 203

Page 15: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Rozdział 1

Równania rekurencyjne

1.1. Zasada indukcji matematycznej . . . . . . . . . . . . . 21.2. Przykłady rekurencji. . . . . . . . . . . . . . . . . . . . 51.3. Metoda repertuaru . . . . . . . . . . . . . . . . . . . . 11

Page 16: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2 1. Równania rekurencyjne

1.1. Zasada indukcji matematycznej

Przykład 1.1.1. Udowodnij, że dla dowolnej liczby naturalnej n > 0, liczba11n − 3n jest podzielna przez 8.

Dowód.Krok 1. n = 1 Liczba 111 − 31 = 8 jest podzielna przez 8.Krok 2. Załóżmy, że dla pewnego n > 0 oraz pewnej liczby naturalnej

k mamy 11n − 3n = 8k. Wtedy 11n+1 − 3n+1 = 11 · (3n + 8k) − 3n+1 =88k + (11− 3) · 3n = 88k + 8 · 3n jest również liczbą podzielną przez 8.Stąd wnioskujemy tezę.

Zasadę indukcji matematycznej możemy więc sformułować następująco

Zasada indukcji matematycznej. Niech S(n), n ∈ N , będzie jakimśstwierdzeniem logicznym (to znaczy takim, o którym możemy powiedzieć, żejest prawdziwe lub fałszywe). Jeżeli1. S(0) jest prawdziwe,2. dla każdej liczby naturalnej k ≥ 1: z prawdziwości S(k−1) wynika praw-dziwość zdania S(k),

to zdanie S(n) jest prawdziwe dla wszystkich liczb naturalnych N .Krok 1 nazywamy krokiem początkowym a krok 2 krokiem indukcyj-

nym. Obrazowo działanie indukcji matematycznej można przedstawić naprzykładzie ułożonych kostek domina. Jeżeli przewróci się pierwsza kostka(krok początkowy) i wszystkie kostki są tak ustawione blisko siebie, że prze-wrócenie dowolnej kostki spowoduje przewrócenie następnej, to wszystkiekostki domina się przewrócą. Jednak w tym klasycznym przykładzie nigdynie jesteśmy w stanie ułożyć wszystkich nieskończenie wielu kostek domino(życia by nie wystarczyło) a jednak dla tego podzbioru zasada indukcjimatematycznej działa. Zasada indukcji matematycznej ma wiele różnychwariantów. Na przykład dla naszych kostek mamy:

Zasada indukcji matematycznej (i). Niech S(n) będzie stwierdze-niem logicznym, takim że1. dla pewnej liczby naturalnej ko jest prawdziwe zdanie S(ko),2. dla każdej liczby naturalnej k > ko i k < k1: z prawdziwości S(k − 1)wynika prawdziwość zdania dla S(k).

Wtedy zdanie S(n) jest prawdziwe dla wszystkich liczb naturalnych n ∈ko, ko + 1, ..., k1.

W terminach zbiorów równoważnym sformułowaniem jest na przykład:

Zasada Indukcji Matematycznej (ii).Jeżeli X ⊆ N jest jakimś nie-pustym podzbiorem liczb naturalnych,(i) do którego należy liczba ko, tzn., ko ∈ X

Page 17: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

1.1. Zasada indukcji matematycznej 3

(ii) oraz X wraz z każdą liczbą naturalną k ≥ ko zawiera również kolejną

liczbę k + 1 , tzn.∧

k≥kok ∈ X ⇒ k + 1 ∈ X,

to wtedy zbiór X zawiera wszystkie liczby naturalne n ≥ ko, tzn. X ⊇N\0, 1, 2, ..., ko − 1

Przykład 1.1.2. Czasem nie docenia się kroku początkowego. Zwróćmy u-wagę, że w ewidentnie fałszywym stwierdzeniu n = n − 3 krok indukcyjnyjest spełniony bo k = (k − 1) + 1 = (k − 1) − 3 + 1 = k − 3 a mimo to nieistnieje żadna liczba naturalna dla której to stwierdzenie jest prawdziwe.

Problem 1.1.1. Co by było, gdyby był spełniony krok indukcyjny dla wszys-tkich naturalnych n i istniała chociaż jedna liczba naturalna dla której takiejak w Przykładzie 1.1.2 stwierdzenie byłoby prawdziwe?

Przykład 1.1.3. Chcemy dowieść twierdzenie, że każda liczba naturalnawi eksza od 1 albo jest pierwsza albo można ją przedstawić jako iloczyn liczbpierwszych. Liczba 2 jest pierwsza a więc krok początkowy jest spełniony.Jeśli jednak weźmiemy liczbę 118973 to informacja, że 118972 jest pierwszalub jest iloczynem liczb pierwszych nic nam nie daje. Musimy mieć silniej-sze założenie. Dla dowolnej liczby załóżmy, że nie tylko poprzednią liczbęale i wszystkie poprzednie można tak przedstawić. Wtedy albo k jest liczbąpierwszą, albo jest złożona, to znaczy, że jest iloczynem dwóch liczb i oraz jtakich, że 1 < i, j < k a ponieważ z założenia indukcyjnego każda z nich jestalbo pierwsza albo jest iloczynem liczb pierwszych, więc i k spełnia tezę.

Możemy teraz sformułowć użytą w powyższym przykładzie zasadę:

Zasada indukcji matematycznej zupełnej. Niech S(n), n ∈ N , bę-dzie jakimś stwierdzeniem logicznym dla którego1. S(0) jest prawdziwe,2. dla każdej liczby naturalnej k > 1: z prawdziwości S(0), S(1), ..., S(k−1)wynika prawdziwość zdania dla S(k).

Wtedy zdanie S(n) jest prawdziwe dla wszystkich liczb naturalnych N .

lub równoważne sformułowanie w terminach zbiorów:

Zasada Indukcji Zupełnej. Jeżeli X jest jakimś niepustym zbioremliczb naturalnych, który wraz z każdym początkowym fragmentem zbioru Npostaci 0, 1, 2, 3, ..., k−1 zawiera również kolejną liczbę k, tzn.

k∈N (jeżeli∧

l<kl ∈ X to k ∈ X) to wtedy X zawiera wszystkie liczby naturalne, tzn.

X = N .

Wydaje się, że to sformułowanie zasady indukcji matematycznej jestogólniejsze, jednak oba przytoczone tutaj sformułowania są równoważne.

Page 18: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4 1. Równania rekurencyjne

Problem 1.1.2. Co jest nieprawidłowego w następującym rozumowaniu:Chcemy dowieść że wszystkie samochody kosztują tyle samo. Mamy jakiśjeden samochód i widzimy jego cenę C1 a więc krok początkowy jest speł-niony, Załóżmy, że mamy zbiór k samochodów o cenach C1, C2, ..., Ck. Po-nieważ w zbiorze C1, C2, ..., Ck−1 wszystkie ceny są identyczne a w zbiorzeC2, C3, ..., Ck też wszystkie ceny są identyczne więc i C1, C2, ..., Ck są iden-tyczne, a więc i krok indukcyjny jest prawdziwy. A przecież wystarczy sięprzejść do salonu samochodowego?

Problem 1.1.3. Czy i jak można sprawdzić, za pomocą indukcji matema-tycznej, własność która zachodzi dla:(a) wszystkich liczb naturalnych podzielnych przez 3?(b) wszystkich liczb pierwszych?(c) wszystkich liczb całkowitych?(d) wszystkich liczb wymiernych?(e) wszystkich liczb niewymiernych?

Zasadę indukcji matematycznej używamy najczęściej wtedy, gdy odga-dujemy wynik albo gdy znamy zależności pomiędzy k-tym a poprzednimielementami.

Problem 1.1.4. Niech będzie dany ciąg taki, że pierwszym jego wyrazemjest F1 = 1, drugim F2 = 1, a każdy następny jest sumą dwóch bezpośredniopoprzednich. Jak można zapisać tę zależność? Czy z podanego stwierdzeniapotrafimy wyliczyć każdy wyraz ciągu? Jak to można udowodnić?

Problem 1.1.5. Załóżmy, że mamy algorytm

Algorytm 1.1. Suma S(n)

r e a l Function S(n : i n t e g e r ) ;s : r e a l ;i : i n t e g e r ;s :=0;f o r i=1 to n s t ep 1

s :=s+2 s q r t ( s )+1;re turn ( s ) ;

gdzie funkcja sqrt() oznacza pierwiastek kwadratowy. Ile wyniesie S(20)po wyjściu z tej pętli? Jak można wypisać zależność sn od sn−1 i jak torównanie rekurencyjne można rozwiązać?

Page 19: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

1.2. Przykłady rekurencji. 5

1.2. Przykłady rekurencji.

W Problemie 1.1.5 podaliśmy algorytm obliczania pewnego ciągu. Po-równajmy ten algorytm z następującymi dwoma algorytmami:

Algorytm 1.2. Suma S(n) - drugi sposób

r e a l Function S(n : i n t e g e r ) ;i f n=0 then

re tu rn (0)e l s e

r e tu rn (S (n−1)+2sq r t (S (n−1) )+1) ;

oraz

Algorytm 1.3. Suma S(n) - trzeci sposób

r e a l Function S(n : i n t e g e r ) ;r e tu rn n∗n ;

Rozważaną we wszystkich trzech algorytmach rekurencją jest rekurencja

s0 = 1,sn = sn−1 + 2

√sn−1 + 1 dla n ≥ 1,

natomiast jej rozwiązaniem sn = n2, n ≥ 0, (sprawdź indukcyjnie).Widzimy więc, że równania rekurencyjne związane są z pętlami w języ-

kach programowania i można je zawsze implementować za pomocą pewnegozestawu pętli (zob. Algorytm 1.1).Możemy również równanie rekurencyjne zaimplementować (zob. Algo-

rytm 1.2) jako funkcję rekurencyjną (to znaczy taką, która sama siebiewywołuje). W przypadku procedur/funkcji rekurencyjnych istnieje szeregpułapek, na które doświadczony programista powinien zwracać uwagę. Tu-taj, na przykład, do wyliczenia S(n) potrzebne jest dwukrotne obliczenie tejsamej wartości S(n− 1), a więc dwa razy wywołuje się obliczającą to samoprocedurę. Przy dalszych wywołaniach błąd ten się bardzo szybko kumuluje.Błąd w tym algorytmie jest oczywisty, jednak są algorytmy, gdzie dublujesię obliczanie tych samych wartości, ale zweryfikowanie tego jest trudne.Rekurencja w programowaniu może też dramatycznie zwiększyć złożonośćobliczeniową. Ponadto rekurencja zawsze zwiększa pamięciowe zapotrzebo-wanie programu (chyba że zostanie użyta możliwa w pewnych przypadkachoptymalizacja zwana rekursją ogonową), gdyż wymaga ona zapamiętaniam.in. adresów powrotu, pozwalających programowi ”zorientować się” doktórego miejsca ma wrócić po zakończeniu jednego z wywołań rekurencyj-

Page 20: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6 1. Równania rekurencyjne

nych. Niezaprzeczalną zaletą rekurencji jest przejrzystość programów, którez niej korzystają.W Algorytmie 1.3 wykorzystano rozwiązanie tego równania rekurencyj-

nego.Oczywiście najoptymalniejszy pod każdym względem jest Algorytm 1.3.

Równanie rekurencyjne jest to równanie, w którym znana jest pewnailość początkowych wyrazów ciągu (so, s1, s2, ..., sk), a ogólny wyraz sn wyli-czany jest w oparciu o znajomość kilku lub wszystkich poprzednich wyrazów(so, s1, s2, ..., sn−1).Rozwiązanie równania rekurencyjnego jest to zapisanie wyrazu sn zwar-

tym wzorem zależnym tylko od argumentu n. Rozwiązanie równania reku-rencyjnego zazwyczaj znacznie skraca i upraszcza obliczanie dowolnego n-tego elementu.

Przykład 1.2.1. Silnia n! Definiujemy 0! = 1, n! = 1 · 2 · 3 · ... · n, n ≥ 1.Aby jednak komputer był w stanie efektywnie wyliczyć silnię, potrzebna jestinna definicja:

s0 = 1,sn = nsn−1 dla n ≥ 1,

wtedy sn = n!, n ≥ 0. Czy ta defincja jest poprawna (por. z zasadą indukcjimatematycznej)? Co będzie, jak w tej definicji zmienimy so = 1 na so = 0lub so = 1

2?

Przykład 1.2.2. Ciągi arytmetyczne i geometryczne. Ciąg nazywa-my arytmetycznym jeżeli różnica każdego wyrazu i wyrazu poprzedniego cią-gu jest stała, równa r:

a0 = α,an = an−1 + r = a0 + nr dla n ≥ 1.

Sumę ciągu arytmetycznego liczymy ze wzoru:

sn = sn−1 + an = sn−1 + a0 + nr = (n+ 1)α+n(n+ 1)

2r dla n ≥ 0.

Analogicznie ciąg nazywamy geometrycznym, jeżeli iloraz każdego wyrazuprzez wyraz poprzedni jest stały równy q:

a0 = α,an = qan−1 = αqn dla n ≥ 1.

Sumę ciągu geometrycznego liczymy ze wzoru

sn = sn−1 + an = α1− qn+1

1− qdla n ≥ 0.

Page 21: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

1.2. Przykłady rekurencji. 7

Przykład 1.2.3. ”Problem cyfr”. Jak wiele jest łańcuchów n-cyfrowychzawierających parzystą liczbę 0? Niech an będzie ilością takich łańcuchówn-cyfrowych. Aby otrzymać z łańcucha n − 1 cyfrowego łańcuch n cyfrowynależy dodać ”0” do któregoś z 10n−1 − an−1 łańcuchów nie zawierającychparzystej liczby 0 albo dodać jedną z 9 cyfr do któregoś z an−1 ciągów. Stądmamy

a1 = 9,an = (10n−1 − an−1) + 9an−1 = 10n−1 + 8an−1 dla n ≥ 1,

(1.2.1)

a stąd a4 = 7048. Jakie jest ogólne rozwiązanie tej rekurencji? (zob. Tabela1.7)

Przykład 1.2.4. Wieża w Hanoi. (E. Lucas, 1883)

Rysunek 1.1. Wieża w Hanoi.

U zarania czasu Bóg umieścił 64 złote krążki na jednej z trzech diamen-towych iglic tak, że krążki najniżej położone miały największe promienie ate najwyżej położone najmniejsze promienie (zob. Rys. 1.1). Następnie Bógpolecił grupie mnichów przełożenie tych krążków na drugą iglicę (B), ale takby:– w jednym ruchu przenosić tylko jeden krążek,– krążek większy nigdy nie może leżeć na krążku mniejszym,– można posługiwać się trzecią iglicą C.Mnisi pracują od zarania dziejów dzień i noc ... . Przełożenie jednego

krążka zajmuje im 1 sek. Jak można to zrobić i ile czasu im to zajmie?(Według legendy nastąpi wtedy koniec świata). Niech HANOI(A,B, n) ozna-cza zbiór ruchów jakie należy wykonać przenosząc n krążków z A do B gdzieC może być swobodnie wykorzystywany, C może być pusty albo zawieraćprążki większe od wszystkich przenoszonych prążków. Przeniesienie krążka zA do B oznaczać będziemy przez A→ B.Dla n=0 nie trzeba nic robić:HANOI(A,B,0)=∅Dla n=1 mamy jeden ruch A→ B :HANOI(A,B,1)=A→ B

Page 22: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8 1. Równania rekurencyjne

Dla n=2 mamy trzy ruchy A→ C,A→ B,C → B :HANOI(A,B,2)=HANOI(A,C,1)∪HANOI(A,B,1)∪HANOI(C,B,1)=A→ C,A→ B,C → BDla n=3 potrzeba 7 ruchów: najpierw przenosimy dwa górne krążki na C(A → B,A → C,B → C) następnie największy krążek z A przenosimyna B (A→ B) a następnie 2 krążki z C przenosimy na B (C → A,C →B,A→ B):HANOI(A,B,3)=HANOI(A,C,2)∪HANOI(A,B,1)∪HANOI(C,B,2)=A→ B,A→ C,B → C,A→ B,C → A,C → B,A→ BDla n=4 potrzeba 15 ruchów:HANOI(A,B,4)=HANOI(A,C,3)∪HANOI(A,B,1)∪HANOI(C,B,3)=A→ C,A → B,C → B,A → C,B → A,B → C,A → CA → B,C → B,C →A,B → A,C → B,A→ C,A→ B,C → BZ tych przykładów widzimy jak można to zrobić:

HANOI(A,B, 0) = ∅,HANOI(A,B, n) = HANOI(A,C, n − 1) ∪ HANOI(A,B, 1)

∪HANOI(C,B, n − 1), dla n ≥ 1,

a stąd liczba niezb ednych przełożeń hn spełnia:

ho = 0,hn = hn−1 + 1 + hn−1 = 2hn−1 + 1, dla n ≥ 1.

Obliczając kilka pierwszych elementów tak określonego ciągu otrzymujemy:

Tabela 1.1. Ilość ruchów potrzebnych na przeniesienie prążków w problemie wieżyz Hanoi

n 0 1 2 3 4 5 6 7 8 9 10 11 12hn 0 1 3 7 15 31 63 127 255 511 1023 2047 4095

Żeby rozwiązać to równanie rekurencyjne dodajmy do obu stron drugiegorównania 1 i zróbmy podstawienie un = hn + 1, n ≥ 0, wtedy

uo = ho + 1 = 1,un = hn + 1 = 2hn−1 + 2 = 2un−1, dla n ≥ 1,

czyli

uo = 1,un = 2un−1, dla n ≥ 1,

a to jest równanie rekurencyjne ciągu geometrycznego (porównaj z Przykła-dem 1.2.2), czyli un = 2n a stąd hn = 2n − 1, n ≥ 0.

Page 23: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

1.2. Przykłady rekurencji. 9

Problem 1.2.1. Problemy związane z wieżą z Hanoi. Jak postępo-wać, jeśli mamy do dyspozycji cztery a nie trzy pręty? Jak wygląda rekuren-cja gdy mamy 2n krążków z których każde dwa są tych samych rozmiarów?

Przykład 1.2.5. Problem pizzy. (Proste na płaszczyźnie.)Jaka jest największa możliwa liczba ln obszarów wyznaczonych przez n

prostych na płaszczyźnie? (Jak najmniejszą liczbą ruchów podzielić pizzę naln kawałków?)Sprawdźmy najpierw kilka początkowych wartości.(i) Gdy nie ma żadnej prostej obszar jest jeden lo = 1.(ii) Jedna prosta tworzy zawsze dwa różne obszary l1 = 2.(iii) Kładąc drugą prostą (byle nie równoległą do pierwszej) otrzymujemyl2 = 4 obszary.

Jednak wcale nie jest ln = 2n bo l3 = 7!

Tabela 1.2. Ilość obszarów które można uzyskać w problemie pizzy.

n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14ln 1 2 4 7 11 16 22 29 37 46 56 67 79 92 106

Zauważmy, że nowa prosta zwiększa ilość obszarów o k jeśli przecinadokładnie k − 1 poprzednich prostych i to w nowych punktach przecięć. Zdrugiej strony dwie proste mogą się przeciąć co najwyżej w jednym punkcie iprzecinają się o ile nie są równoległe. Widzimy zatem, że najwięcej obszarówdostaniemy kładąc kolejne proste w ten sposób, aby żadne dwie nie byłyrównoległe i żadne trzy nie przecinały się w jednym punkcie. Otrzymujemynastępujące równanie rekurencyjne:

lo = 1,ln = ln−1 + n, dla n ≥ 1,

Porównując ten wzór ze wzorem na sumę ciągu arytmetycznego (Przykład1.2.2 ao = 0, α = so = 1, r = 1) otrzymujemy ln = 1 + n(n+1)

2 , n ≥ 0.

Problem 1.2.2. Inne problemy związane z problemem pizzy: Wy-znacz największą liczbę kawałków ograniczonych n konfiguracjami (tniemynożem o kształcie):(a) konfiguracja kątów (w kształcie litery V),(b) konfiguracja dwóch okręgów stycznych wewnętrznie,(c) konfiguracja dwóch okręgów stycznych zewnętrznie,(d) konfiguracja trzech okręgów stycznych wewnętrznie,(e) konfiguracja dwóch prostych równoległych,(f) konfiguracja trzech prostych równoległych.

Page 24: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

10 1. Równania rekurencyjne

Przykład 1.2.6. Problem Flawiusza. 41 żydowskich powstańców zamknię-tych jest przez Rzymian w jaskini. Aby nie dostać się w ręce wrogów powstań-cy postanowili sami się zabić. Ustawili się w okrąg z wyróżnioną jedną osobąi zaczęli liczyć od tej wyróżnionej osoby co 3 osobę, zabijając ją. Na któ-rej pozycji należy się ustawić, aby zostać ostatnią osobą i uniknąć śmierci?Ogólnie mamy n osób i eliminujemy co k - tą osobę. Na której pozycji Jk(n)należy się ustawić, aby pozostać? Będziemy w skrócie pisać J(n) = J2(n) izajmiemy się w tym rozdziale tylko rekurencją J(n) (inne przypadki zostanąomówione w rodziale 3.2).Rozważając początkowe przypadki otrzymujemy:

Tabela 1.3. Numer pozycji na której zostanie żywa osoba w problemie Flawiusza

n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15J(n) 1 1 3 1 3 5 7 1 3 5 7 9 11 13 15

Rysunek 1.2. Eliminacje po pierwszym obiegu okręgu w Problemie Flawiusza.

5

643

62162n2n-1

.

.

.

.

.

.

.. . .

687

66

3

21n

.

.

.. .

4

+

AAAU

ZZZ

5

643

62612n+162n

2n-1

.

.

.

.

.

.. . .

687

66

2

1n

n-1.

.

.. .

3

?@@@R

+

ZZZ

Rozważając przenumerowanie po pierwszym obiegu okręgu (Rys. 1.2)otrzymujemy rekurencję:

J(1) = 1,J(2n) = 2J(n)− 1, dla n ≥ 1,J(2n+ 1) = 2J(n) + 1, dla n ≥ 1.

Niech n będzie dowolną liczbą naturalną a m, l będą liczbami określo-nymi nierównościami 0 ≤ l < 2m, 2m ≤ n < 2m+1. Liczby te, dla ustalonegon są zadane jednoznacznie (m = ⌊log2 n⌋, l = n − 2m). W tym przykładzie

Page 25: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

1.3. Metoda repertuaru 11

wszędzie przez m = m(n) i l = l(n) będziemy rozumieć tak otrzymane z nliczby.

Twierdzenie 1.2.1. Zachodzi J(n) = J(2m + l) = 2l + 1, n ≥ 1.

Dowód. (Indukcja względem m)Krok 1. m = 0.Wtedy n = 20 + l a l < 20 czyli l = 0 oraz n = 1 a J(1) = 1 = 2 · 0 + 1.Krok 2. Zakładamy prawdziwość twierdzenia dla pewnego m i dowo-

dzimy prawdziwości dla m+ 1.Rozważmy dwa przypadki:Przypadek 1. l jest liczbą parzystą. Wtedy

J(2m+1 + l) = 2J(2m +l

2)− 1 = 2(2 · l

2+ 1)− 1 = 2l + 1.

Przypadek 2. l jest liczbą nieparzystą.

J(2m+1 + l) = 2J(2m +l − 1

2) + 1 = 2(2 · l − 1

2+ 1) + 1 = 2l + 1.

a więc teza zachodzi też dla m+ 1 i dowolnego 0 ≤ l < 2m+1.

Uwaga 1.2.2. System binarny. Niech n będzie przedstawione w układziebinarnym (dwójkowym) n = (bmbm−1...b2b1bo)2, gdzie najbardziej znaczącybit bm = 1. Wtedy l = (0bm−1...b2b1b0)2 oraz

J(n) = 2l + 1 = (bm−1bm−2...b2b1b01)2 = (bm−1bm−2...b2b1b0bm)2.

Jest to więc cykliczne przesunięcie reprezentacji binarnej.

1.3. Metoda repertuaru

Uogólnijmy rekurencję Flawiusza (skomplikujmy problem) rozważającklasę równań rekurencyjnych zależnych od parametrów α, β, γ ∈ R.

f(1) = α,f(2n) = 2f(n) + β, dla n ≥ 1,f(2n+ 1) = 2f(n) + γ, dla n ≥ 1.

Page 26: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

12 1. Równania rekurencyjne

Oczywiście do zwykłej rekurencji Flawiusza wracamy przyjmując α = γ =1, β = −1. Obliczmy kilka początkowych wyrazów:

Tabela 1.4. Kolejne rozwiązania uogólnionego problemu Flawiusza

n f(n)

1 α2 2α+ β3 2α+ γ4 4α+ 3β5 4α+ 2β + γ6 4α+ β + 2γ7 4α+ 3γ8 8α+ 7β9 8α+ 6β + γ10 8α+ 5β + 2γ11 8α+ 4β + 3γ

n f(n)

12 8α + 3β + 4γ13 8α + 2β + 5γ14 8α + β + 6γ15 8α + 7γ16 16α + 15β17 16α + 14β + γ18 16α + 13β + 2γ19 16α + 12β + 3γ20 16α + 11β + 4γ21 16α + 10β + 5γ22 16α + 9β + 6γ

n f(n)

23 16α + 8β + 7γ24 16α + 7β + 8γ25 16α + 6β + 9γ26 16α + 5β + 10γ27 16α + 4β + 11γ28 16α + 3β + 12γ29 16α + 2β + 13γ30 16α + β + 14γ31 16α + 15γ

......

Zauważmy, że

f(n) = A(n) · α+B(n) · β + C(n) · γ, n ≥ 1.

Ogólna strategia przy rozwiązywaniu równań rekurencyjnych metodą reper-tuaru może być opisana następująco:• Uogólnij równanie rekurencyjne uzależniając je od parametrów• Ustal parametry dla których znasz rozwiązania• Połącz przypadki szczególne aby znaleźć rozwiązanie ogólne.⋆ Pierwszy przypadek szczególny f(n) = 1. Wtedy

f(1) = 1 = α,f(2n) = 1 = 2 + β, dla n ≥ 1,f(2n+ 1) = 1 = 2 + γ, dla n ≥ 1,

czyli α = 1, β = γ = −1 - można znaleźć parametry stanowiące roz-wiązanie tego równania niezależne od n. Jest to więc dobre rozwiązanie.Stąd otrzymujemy:

1 = A(n)−B(n)− C(n), n ≥ 1. (1.3.2)

⋆ Drugi przypadek szczególny f(n) = n. Wtedy

1 = α,2n = 2n+ β, dla n ≥ 1,2n+ 1 = 2n+ γ, dla n ≥ 1,

Page 27: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

1.3. Metoda repertuaru 13

a stąd α = γ = 1, β = 0 co daje:

n = A(n) + C(n), n ≥ 1. (1.3.3)

⋆ Przypadek szczególny (zły) f(n) = n2. Wtedy

1 = α,4n2 = 2n2 + β, dla n ≥ 1,4n2 + 4n+ 1 = 2n2 + γ, dla n ≥ 1,

i nie istnieją parametry β i γ niezależne od n i takie, aby powyższerównanie zachodziło dla wszystkich n.

⋆ Trzeci przypadek szczególny f(n) = 2m(n). Wtedy uwzględniającnierówności:

20 ≤ 1 < 2,

2m(n)+1 ≤ 2n < 2n+ 1 < 2m(n)+2,

otrzymujemy

20 = α,2m+1 = 2m+1 + β, dla n ≥ 1,2m+1 = 2m+1 + γ, dla n ≥ 1,

a stąd α = 1, β = γ = 0, a więc

A(n) = 2m, gdzie n = 2m + l, n ≥ 1. (1.3.4)

Ze wzorów (1.3.2)-(1.3.4) otrzymujemy:

A(n) = 2m,1 = A(n)−B(n)− C(n),n = A(n) + C(n), n ≥ 1,

a stąd A(n) = 2m, B(n) = 2m − l − 1, C(n) = n− 2m = l, a więc

f(n) = α2m + β(2m − l − 1) + γl

i wstawiając α = γ = 1, β = −1, otrzymujemy

J(n) = 2m − 2m + l + 1 + l = 2l + 1.

Widać było w tym przykładzie, że o ile funkcje f(n) = 1 czy f(n) = ndość łatwo odgadnąć, o tyle funkcja f(n) = 2m jest bardzo specyficzna itrudno zgadnąć, że ją należy wstawić.

Podamy teraz inny przykład zastosowania metody repertuaru.

Page 28: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

14 1. Równania rekurencyjne

Przykład 1.3.1. Rozwiążmy równanie rekurencyjne:

T (1) = 3,T (n) = 3T (n− 1) + n− 2, n ≥ 2.

Uogólniamy to równanie do

f(1) = α,f(n) = 3f(n− 1) + βn+ γ, n ≥ 2,

i rozważając przypadki szczególne otrzymujemy:

Tabela 1.5. Wyniki metody repertuaru dla rekurencji.

f(n) = 1 f(n) = n f(n) = 3n

1 = α,1 = 3 + βn+ γ,

1 = α,n = 3n− 3 + βn+ γ,

3 = α,3n = 3n + βn+ γ,

α = 1,β = 0,γ = −2,

α = 1,β = −2,γ = 3,

α = 3,β = 0,γ = 0,

1 = A(n)− 2C(n), n = A(n)− 2B(n) + 3C(n), 3n = 3A(n),

skąd

A(n) = 3n−1,B(n) = 5

43n−1 − 3

4 − n2 ,

C(n) = 3n−1−12 , n ≥ 1,

co prowadzi do

f(n) = α3n−1 + β(5

43n−1 − 3

4− n

2) + γ

3n−1 − 1

2, n ≥ 1,

czyli

T (n) = 3n +1

43n−1 +

1

4− n

2, n ≥ 1.

Przykład 1.3.2. Metoda ta, mimo najszczerszych chęci, może nie prowa-dzić do rozwiązania. Rozważmy Przykład 1.2.3. Uogólniamy równanie reku-rencyjne (1.2.1) do

a(1) = α,a(n) = βa(n − 1) + γ10n−1, n ≥ 2.

(1.3.5)

Page 29: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

1.3. Metoda repertuaru 15

i rozważając przypadki szczególne otrzymujemy:

Tabela 1.6. Zastosowanie metody repertuaru do problemu cyfr.

a(n) = 1 a(n) = 2n a(n) = 10n

1 = α,1 = β + γ10n−1,

21 = α,2n = β2n−1 + γ10n−1,

101 = α,10n = β10n−1 + γ10n−1,

α = 1,β = 1,γ = 0,

α = 2,β = 2,γ = 0,

α = 10,β = 0,γ = 10,

1 = A(n) +B(n), 2n = 2A(n) + 2B(n), 10n = 10A(n) + 10C(n),

otrzymaliśmy więc sprzeczny układ równań. Przenalizujmy dlaczego siętak stało. Rozważając kolejne rozwiązania sparametryzowanego układu o-trzymujemy:

Tabela 1.7. Rozwiązania uogólnionego problemu cyfr

1 γ2 10α+ βγ3 102α+ 10αβ + β2γ4 103α+ 102αβ + 10αβ2 + β3γ......

k α∑k−1

j=1 10k−jβj−1 + βk−1γ

......

a jak widać rozwiązania te nie są liniowymi kombinacjami α, β, γ.

Uwaga 1.3.1. Skąd się bierze taka metoda postępowania z równaniami re-kurencyjnymi? W zasadzie ideą, która leży u podstaw metody repertuarujest zgadywanie. Jeśli jednak mamy konkretne równanie rekurencyjne tn =fn(t1, ..., tn−1), n ≥ 0, to odgadnąć, czy rozwiązaniem jest tn = 3.257n2 −0.45, czy tn = 3.251n2 − 0, 44 czy też z innymi współczynnikami liczbowy-mi jest prawie niemożliwe. Jednak mamy inną sytaucję, gdy zastanawiamysię nie nad konkretnym rozwiązaniem, ale nad tym, z jakiej klasy funkcje”wchodzą” w skład rozwiązania? Dokładnie, chcemy rozważać nie pojedyn-cze równanie rekurencyjne ale klasę równań rekurencyjnych K(E) = Tn =fn,α,β,γ...(T1, ..., Tn−1) : α, β, γ, ... ∈ E, taką, że tn, n ≥ 1 ∈ K(E). Jeżeliklasa K(E) jest dostatecznie szeroka, to być może należą do niej pewne kla-sy funkcji: 1, n, n2, n3, n4, ..., 2n, 3n, ..., n!, stanowiące ”bazę” interesującego

Page 30: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

16 1. Równania rekurencyjne

nas rozwiązania, a wtedy konkretne rozwiązanie tn, n ≥ 1 jest liniowąkombinacją tych, sprawdzonych przez nas funkcji ”bazowych”.

Uwaga 1.3.2.(i) Parametryzując równanie rekurencyjne, które zawiera funkcje np. 1, n2,czasem lepiej jest dorzucić jeszcze jeden parametr z funkcją n. Na przy-kład Tn = Tn−1 + 3n2 − 5, n ≥ 1, dobrze jest sparametryzować doTn = Tn−1 + αn2 + βn + γ, n ≥ 1. Podobnie, jeżeli występuje wyrazn w najwyższej potędze k to niezależnie od innych wyrazów, przy para-metryzacji należy rozważać wielomian αnk + βnk−1 + γnk−2 + ... .(ii) Jeżeli w równaniu rekurencyjnym przy Tn−1 występuje zależny od nwyraz an to należy również rozważyć funkcję

∏nk=1 ak. W szczególności

dla rekurencji Tn = nTn−1 + 2n4 − 4, n ≥ 1, należy rozważyć funkcje:1, n, n2, n3, n4, n!, a w rekurencji Tn = 3Tn−1+2n, n ≥ 1, funkcje 1, n, 3n.

Podsumowanie• Definicje rekurencyjne. Definicja rekurencyjna (indukcyjna):nieformalnie - taka definicja, która odwołuje się do samej siebie - aletrzeba tu uważać, by odwołanie było do instancji o mniejszej komplikacji,zwykle chodzi o ciąg - dla którego przepis na element wykorzystuje jakieśpoprzednie elementy,początkowy element (lub kilka początkowych) muszą być zadane kon-kretnie - żeby było od czego zacząć,zwykle definicja rekurencyjna odwołuje się do jednego lub kilku poprzed-nich elementów, ale może też odwoływać się do wszystkich poprzednich.

• Poprawność definicji rekurencyjnych wynika z zasady indukcji matema-tycznej

• Rozwiązanie rekurencji zazwyczaj, choć nie zawsze, przyspiesza oblicze-nia programów komputerowych

• Poprzez sparametryzowanie stałych występujących w równaniu rekuren-cyjnym i sprawdzanie jakie klasy funkcji wchodzą w skład sparametry-zowanego równania możemy rozwiązać równanie rekurencyjne metodąrepertuaru.

Page 31: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Rozdział 2

Sumy

2.1. Oznaczenia i definicje . . . . . . . . . . . . . . . . . . . 182.2. Metoda czynnika sumacyjnego . . . . . . . . . . . . . . 202.3. Własności sumowania . . . . . . . . . . . . . . . . . . . 222.4. Liczby harmoniczne . . . . . . . . . . . . . . . . . . . . 232.5. Sumy wielokrotne . . . . . . . . . . . . . . . . . . . . . 252.6. Różne metody obliczania sum . . . . . . . . . . . . . . 282.7. Rachunek różnicowy . . . . . . . . . . . . . . . . . . . . 32

Page 32: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

18 2. Sumy

2.1. Oznaczenia i definicje

Symbol reprezentujący sumy, używający greckiej dużej litery∑(sigma),

był wprowadzony przez matematyka Josepha Fouriera w 1820 roku.

Definicja 2.1.1. Wyrażenie∑n

k=m a(k),m, n ∈ Z, gdzie a(.) jest funkcjąokreśloną na [m,n] ∩ Z, przyjmuje wartość a(m) + a(m+ 1) + . . . + a(n −1) + a(n), jeżeli m ≤ n,m, n,∈ Z i 0 w pozostałych przypadkach.

Funkcja a(.) określona na podzbiorze liczb całkowitych jest nazywanazazwyczaj ciągiem i stosuje się skrócony zapis ak = a(k), k ∈ Z.Często zamiast zapisu

∑nk=m ak, stosuje się zapis

k∈Z:m≤k≤n ak, lubkrócej

m≤k≤n ak, wiedząc, że zbiór znajdujący się pod znakiem sumy jestzawsze podzbiorem Z. Należy uważać jednak, bo ten ostatni zapis sumy niejest jednoznaczny, nie wiemy czy indeksem sumowania jest k, n czy m! Naprzykład:

k<m,k,m∈N

k

2m=

k2k, jeśli indeksem sumowania jest m,

(m−1)m2m+1 , jeśli indeksem sumowania jest k.

Stąd mamy różne postacie tej samej sumy:

a1 + a2 + a3 + ...+ an,n∑

k=m

ak,∑

m≤k≤n

ak,∑

ak[m ≤ k ≤ n].

Wyjaśnimy teraz ten ostatni zapis. Niech P(k) będzie pewną funkcjązdaniową, prawdziwą lub fałszywą, dla dowolonej liczby całkowitej k, wtedypiszemy

k∈Z:P(k) jest prawdziweak =

P(k)

ak =∑

ak[P(k)],

gdzie

[P(k)] =

1, P(k) jest prawdziwe,0, P(k) jest fałszywe,

przyjmując jednak 0 · ∞ = 0. Zapis ten nazywa się zapisem sumy wg. kon-wencji K. E. Iversona.

Przykład 2.1.1. Niech

[k jest liczbą pierwszą] =

1, k jest liczbą pierwszą,0, k nie jest liczbą pierwszą.

Wtedy∑

k

[k jest liczbą pierwszą][1 ≤ k ≤ n]1

k,

Page 33: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.1. Oznaczenia i definicje 19

oznacza sumę odwrotności wszystkich liczb pierwszych spośród 1, 2, 3, 4, ..., n.Warto zwrócić uwagę, że chociaż odwrotność 0 nie istnieje, to ponieważ[0 jest liczbą pierwszą] = [1 ≤ 0 ≤ n] = 0 więc umownie przyjmuje się

[0 jest liczbą pierwszą][1 ≤ 0 ≤ n]1

0= 0 · ∞ = 0.

Różne postacie sum mogą być wygodne i poręczne przy wielu różnychprzekształceniach.

Związek pomiędzy sumami a rekurencjami. Każda suma jest re-kurencją. Rzeczywiście

Sn =n∑

k=0

ak,

So = ao,Sn = Sn−1 + an, n ≥ 1,

Wiele rekurencji daje się zapisać w postaci sum, np. rekurencja

Ro = α,Rn = Rn−1 + βn+ γ, n ≥ 1,

Rn = α+n∑

k=1

(βk + γ).

Czasem aby obliczyć rekurencję łatwiej jest sprowadzić ją do sumy i obli-czyć sumę, a czasem, gdy trudno jest bezpośrednio wyliczyć sumę, można jąsprowadzić do rekurencji i jakimś sposobem rozwiązać rekurencję.

Problem 2.1.1. Które rekurencje da się sprowadzić do sum? Napewno nie można tego zrobić na przykład z taką rekurencją:

ao = α,an = a2n−1 + 3n, n ≥ 1.

Rozważmy jednak rekurencję pojawiającą się w problemie wieży w Hanoi

ho = 0,hn = 2hn−1 + 1, dla n ≥ 1.

Dzieląc pierwsze równanie przez 20 a drugie przez 2n otrzymujemy

ho

20 = 0,hn

2n = hn−1

2n−1 + 12n , dla n ≥ 1,

i po podstawieniu Sn = hn

2n otrzymujemy

So = 0,Sn = Sn−1 +

12n , dla n ≥ 1,

Page 34: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

20 2. Sumy

czyli

Sn =n∑

k=1

2−k = 1− 2−n,

i wracając do hn otrzymujemy

hn = 2n − 1, n ≥ 1.

Przez co należy dzielić ”inne” rekurencje aby otrzymać sumy?

2.2. Metoda czynnika sumacyjnego

Rozważmy rekurencję

aoTo = co,anTn = bnTn−1 + cn, dla n ≥ 1,

(2.2.1)

gdzie bn 6= 0, n ≥ 1. Mnożąc obie strony równania (2.2.1) przez so i odpo-wiednio sn otrzymujemy

aosoTo = coso,ansnTn︸ ︷︷ ︸

= bnsnTn−1︸ ︷︷ ︸

+cnsn, dla n ≥ 1,

Sn = Sn−1 + cnsn, n ≥ 1.

(2.2.2)

Żeby zapisać tą rekurencję w postaci sumy współczynniki przy Tn musząnam się “zgadzać” tzn.:

snbn = sn−1an−1, n ≥ 1,

czyli

sn = sn−1an−1

bn= sn−2

an−1an−2

bnbn−1= so

aoa1...an−1

b1b2...bn, n ≥ 1,

i możemy przyjąć so = 1 otrzymując

sn =aoa1...an−1

b1b2...bn, n ≥ 1.

Wtedy

Sn = s1b1To +n∑

k=1

skck, n ≥ 0,

czyli

Tn =1

snan(s1b1To +

n∑

k=1

skck), n ≥ 0. (2.2.3)

Page 35: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.2. Metoda czynnika sumacyjnego 21

Przykład 2.2.1. Rozwiąż rekurencję

τo = 0,

τn = n+ 1 + 2n

∑n−1k=0 τk, dla n ≥ 1.

(2.2.4)

Ciąg ten określa średnią liczbę porównań dla jednej z wersji sortowania n lo-sowych elementów metodą “szybkiego sortowania” (quicksort, [10] i [21], str.95). Szerzej algorytm ”szybkiego sortowania” omówimy w rozdziale 7.3.4.Zwróćmy uwagę, że

nτn = n(n+ 1) + 2∑n−1

k=0 τk, dla n ≥ 0,

− (n− 1)τn−1 = (n− 1)n + 2∑n−2

k=0 τk, dla n ≥ 1,

nτn − (n− 1)τn−1 = 2n+ 2τn−1, n ≥ 1.

Czyli rekurencja (2.2.4) jest równoważna

τo = 0,nτn = 2n+ (n+ 1)τn−1, dla n ≥ 1.

(2.2.5)

Stosując metodę czynnika sumacyjnego z an = n (n ≥ 1), ao = 1, bn =n+ 1 (n ≥ 1), cn = 2n (n ≥ 0), wyliczamy czynnik sumacyjny

sn =1 · 1 · 2 · (n− 1)

2 · 3 · 4 · ...(n + 1)=

1

n(n+ 1)

i stosujemy wzór (2.2.3) otrzymując

τn =1

snan(s1b1To +

n∑

k=1

skck)

=n(n+ 1)

n(1

2· 2 · 0 +

n∑

k=1

1

n(n+ 1)· 2k)

= 2(n+ 1)n∑

k=1

1

k + 1.

W całym tym skrypcie liczby

n∑

k=1

1

k, n ≥ 1,

nazywamy liczbami harmonicznymi i oznaczamy symbolem Hn. Ważniejszewłasności tych liczb podamy w podrozdziale 2.4.

Page 36: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

22 2. Sumy

Jak wyrazić τn za pomocą liczb harmonicznych? Korzystamy z przekształ-ceń sum:

n∑

k=1

1

n+ 1=

1≤k≤n

1

k + 1k→k−1=

1≤k−1≤n

1

k − 1 + 1

=∑

2≤k≤n+1

1

k=

1≤k≤n

1

k− 1

1+

1

n+ 1= Hn −

n

n+ 1,

a stądτn = 2(n+ 1)Hn − 2n, n ≥ 0.

2.3. Własności sumowania

Wprowadzony w tym rozdziale operator sumowania może uprościć długieoperacje na sumach. Dlatego scharakteryzujmy podstawowe własności tegooperatora:

k∈Kcak = c

k∈Kak, Prawo jednorodności,

k∈K(ak + bk) =

k∈Kak +

k∈Kbk, Prawo addytywności,

k∈Kak =

p(k)∈Kap(k), Prawo przemienności,

k∈Kak +

k∈K′ak =

k∈K∪K′ak +

k∈K∩K′ak, Prawo łączenia zbiorów

indeksów sumowanian∑

k=m

(ak+1 − ak) = an+1 − am, Prawo składania (“telescoping”),

gdzie p(k) oznacza dowolną permutację liczb całkowitych (np. jak w przy-kładzie poniżej p(k) = k+1, lub p(k) = −k+c) o ile powyższe sumy istniejąi są skończone (szeregi). Dokładnie permutacja p jest funkcją taką, że:

p : Z → Z,∧

n∈K

k∈Z! p(k) = n.

Prawo przemienności można uogólnić. Niech f : J → K,J ,K ⊂ Z będziedowolnym przekształceniem dwóch zbiorów indeksów. Wtedy

j∈Jaf(j) =

k∈Kakf−1(k),

Page 37: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.4. Liczby harmoniczne 23

gdzie f−1(k) oznacza moc zbioru j : f(j) = k. Konieczność występowaniaczłonów f−1(k) wyjaśnimy na przykładzie:

Przykład 2.3.1. Niech f(k) = k2, k ∈ Z a K = −1, 0, 1, 2, 3. Rozważa-my sumę

k∈K af(k):

k∈−1,0,1,2,3af(k) = a(−1)2 + a02 + a12 + a22 + a32

= a0 + 2a1 + a4 + a9

=∑

k∈f(K)

akf−1(k).

Przedostatnia tożsamość wynika z

[k ∈ K] + [k ∈ K′] = [k ∈ K ∪ K′] + [k ∈ K ∩ K′]

i zapisu sumy w konwencji Iversona.

2.4. Liczby harmoniczne

Dwa następujące wyniki charakteryzują liczby harmoniczne. Pierwszymówi, że ciąg Hn, n ≥ 0 (z definicji sumy H0 =

∑0i=1

1i = 0) jest nieujem-

ny, rosnący, rozbieżny do nieskończoności a drugi, że pełni w matematycedyskretnej taką rolę, jak funkcja ln(.) w “zwykłej” matematyce. Zaczniemyjednak od tabelki w której wymienimy początkowe liczby harmoniczne:

Tabela 2.1. Liczby harmoniczne Hn.

n 0 1 2 3 4 5 6 7 8 9 10 11

Hn 0 1 32

116

2512

13760

4920

363140

761280

71292520

73812520

8371127720

Twierdzenie 2.4.1. limn→∞Hn =∞.Dowód. Mamy

H2n −Hn =1

n+ 1+

1

n+ 2+ ...+

1

2n> n · 1

2n=

1

2

i gdyby istniała skończona granica ciągu Hn, to przechodząc w powyższejnierówności stronami do granicy lewa strona byłaby zbieżna do 0 a prawastale równa 1

2 .

Page 38: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

24 2. Sumy

Twierdzenie 2.4.2. limn→∞(Hn−ln(n)) = γ, gdzie γ = 0, 57721 56649 01533 . . .jest nazywana stałą Eulera.Dowód. Rozważmy funkcję f(x) = ln(x)− x. Funkcja ta ma pochodną

f ′(x) = 1x − 1 dodatnią dla 0 < x < 1 i ujemną dla x > 1. Zatem funkcja

f(x) osiąga największą wartość dla x > 0 w punkcie x = 1 równą f(1) = −1.Stąd otrzymujemy nierówność

ln(x) ≤ x− 1, x ∈ [0,∞).

A zatemln(x+ 1) ≤ x, x ∈ [−1,∞).

Kładąc x = 1k oraz x = − 1

k otrzymujemy

1

k≥ ln(

k + 1

k) = − ln(

k

k + 1) = − ln(1− 1

k + 1) ≥ 1

k + 1, k ≥ 1,

a więc

0 <1

k− ln(

k + 1

k) <

1

k− 1

k + 1, k ≥ 1.

Stąd ciąg Sn =∑n

k=1(1k − ln(k+1

k )) jest monotoniczny i ograniczony przez∑n

k=1(1k − 1

k+1) = 1− 1n+1 < 1, a więc jest zbieżny. Oznaczmy jego granicę

przez γ. Zatem z równości

Hn − ln(n) =n∑

k=1

(1

k− ln(

k + 1

k)) +

n∑

k=1

(ln(k + 1)− ln(k))− ln(n)

=n∑

k=1

(1

k− ln(

k + 1

k)) + ln(

n + 1

n)

→ γ + ln(1)

= γ.

Uwaga 2.4.3. Nie wiadomo dotąd czy liczba Eulera γ jest wymierna czyniewymierna?

Uwaga 2.4.4. Można uzyskać dokładniejsze rozwinięcie: Hn ≈ ln(n)+ γ+12n + 1

12n2 + 1120n4 .

Uwaga 2.4.5. Liczby harmoniczne spełniają tożsamości• ∑n

i=1Hi = (n+ 1)(Hn+1 − 1), n ≥ 1,• ∑n

i=1 iHi =(n+1

2

)(Hn+1 − 1

2), n ≥ 1,

• ∑ni=1

( ik

)Hi =

(n+1k+1

)(Hn+1 − 1

k+1), k ≥ 1.Można udowodnić to korzystając z obliczania sum metodą zaburzania (zob.podrozdział 2.6.2).

Page 39: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.5. Sumy wielokrotne 25

2.5. Sumy wielokrotne

W niektórych sytuacjach mamy do czynienia pod znakiem sumy nie zciągiem ai, i ≥ 1 ale z tablicą ai,j , i, j ≥ 1 albo tablicą mającą jeszczewięcej wymiarów. Co prawda wielowymiarowy ciąg zawsze można ustawićw ciąg jednowymiarowy (z teorii mnogości zbiory N oraz N k dla k ∈ Nsą równoliczne - metoda przekątniowa), jednak takie ustawienie w jednowy-miarowy ciąg może być skomplikowane i może zaciemnić strukturę badanejsumy. Dlatego czasem rozważa się sumy po wielowymiarowych zbiorach in-deksów. Na przykład:

1≤j≤31≤k≤2

ajbk = a1b1 + a1b2 + a2b1 + a2b2 + a3b1 + a3b2.

Podobnie do konwencji Iversona w przypadku dwuwymiarowych sumstosujemy notację

P(j,k)

aj,k =∑

j,k

aj,k[P(j, k)],∑

j

k

aj,k[P(j, k)] =∑

P(j,k)

aj,k =∑

k

j

aj,k[P(j, k)].

Szczególnie interesująca jest druga własność, a zwłaszcza jej dwie wersje:∑

j∈J

k∈Kaj,k =

j∈Jk∈K

aj,k =∑

k∈K

j∈Jaj,k, wersja waniliowa,

j∈J

k∈K(j)

aj,k =∑

j∈Jk∈K(j)

aj,k =∑

k∈K′

j∈J ′(k)

aj,k, wersja bakaliowa,

oraz szczególny przypadek wersji waniliowej∑

j∈Jk∈K

ajbk = (∑

j∈Jaj)(

k∈Kbk).

Wersja waniliowa zachodzi wtedy, gdy zbiory indeksów są niezależne

[j ∈ J , k ∈ K] = [j ∈ J ][k ∈ K],

a gdy są zależne to wtedy stosujemy wersję bakaliową z

[j ∈ J ][k ∈ K(j)] = [k ∈ K′][j ∈ J ′(k)].

Page 40: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

26 2. Sumy

Jako przykład wersji bakaliowej rozważmy zbiór (j, k) ∈ Z2 : 1 ≤ j ≤k ≤ n lub w konwencji Iversona [1 ≤ j ≤ k ≤ n]. Jest to obszar zakre-skowany na Rysunku 2.1. Obserwując w jakich granicach globalnie może sięj zmieniać widzimy, że J = 1, 2, 3, ..., n czyli [1 ≤ j ≤ n]. Ponadto dladowolnego ustalonego w tym przedziale j zmienność k jest ograniczona doK(j) = j, j+1, j+2, ..., n lub w konwencji Iversona [j ≤ k ≤ n]. Z drugiejstrony analizując zmienność k otrzymujemy K′ = 1, 2, 3, ..., n ([1 ≤ k ≤n]) a dla dowolnego ustalonego k zmienność j wynosi J ′(k) = 1, 2, 3, ..., k([1 ≤ j ≤ k]) a stąd

[1 ≤ j ≤ n][j ≤ k ≤ n] = [1 ≤ j ≤ k ≤ n] = [1 ≤ k ≤ n][1 ≤ j ≤ k],

Rysunek 2.1. Ilustracja wersji bakaliowej przemienności sumowania.

-

6

@@@

@@@

@@@@

@@@@

@@@

@@

@

1 2 3 4 n

1234

n

j

k

[1,k]

[j,n]

a przechodząc na sumy

n∑

j=1

n∑

k=j

aj,k =∑

1≤j≤k≤n

aj,k =n∑

k=1

k∑

j=1

aj,k.

Przykład 2.5.1. Oblicz sumę górnego trójkąta tablicy

S∇ =∑

1≤j≤k≤n

ajak =∑

1≤k≤j≤n

ajak = S.

Ponieważ

[1 ≤ j ≤ k ≤ n]+[1 ≤ k ≤ j ≤ n] = [1 ≤ j ≤ n][1 ≤ k ≤ n]+[1 ≤ j = k ≤ n]

Page 41: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.5. Sumy wielokrotne 27

Rysunek 2.2. Graficzna ilustracja operacji na indeksach sumy.

-

6

1

k

1 j

q qq qqq qqqq qqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

-

6

1

k

1 j

qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

qqqqqqqqqqqqqqqqqqq

qqqqqqqqqqqqqqqqqqqqqqq -

6

1

k

1 j

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

-

6

1

k

1 j

q q q q qq q q q q

q q+ = +

a więc

2S∇ = S∇ + S = (n∑

j=1

aj)2 +

n∑

j=1

a2j .

Przykład 2.5.2. Oblicz

S =∑

1≤j<k≤n

(ak − aj)(bk − bj).

Z symetrii mamy∑

1≤j<k≤n

(ak − aj)(bk − bj) =∑

1≤j<k≤n

(aj − ak)(bj − bk),

a z tożsamości

[1 ≤ j < k ≤ n] + [1 ≤ k, j ≤ n] = [1 ≤ k ≤ n]− [1 ≤ j = k ≤ n]

Rysunek 2.3. Graficzna ilustracja operacji na indeksach sumy.

-

6

1

k

1 j

q qq qqq qqqq qqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

-

6

1

k

1 j

qqqqqqqqqqqqqqqqqqqqqqqqqqqq

qqqqqqqqqqqqqqqqq

qqqqqqqqqqqqqqqqqqqqq

-

6

1

k

1 j

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

qqqqqqqqqqqq

-

6

1

k

1 j

q q q q qq q q q q

q q+ = –

otrzymujemy

2S =∑

1≤j,k≤n

(aj − ak)(bj − bk)−∑

1≤j=k≤n

(aj − ak)(bj − bk),

Page 42: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

28 2. Sumy

i wymnażając czynniki pod znakiem pierwszej sumy (wszystkie o smaku wa-niliowym) otrzymujemy

2S = 2n∑

1≤k≤n

akbk − 2(n∑

k=1

ak)(n∑

k=1

bk),

a stąd otrzymujemy interesujący wzór

(n∑

k=1

ak)(n∑

k=1

bk) = n∑

1≤k≤n

akbk −∑

1≤j<k≤n

(ak − aj)(bk − bj).

Przykład 2.5.3. Oblicz

Sn =∑

1≤j<k≤n

1

2k − j.

Podstawiając 2k − j zamiast j wyliczamy następująco sumę Sn:

Sn =∑

1≤k≤n

(∑

1≤j<k

1

2k − j)j:=2k−j

=∑

1≤k≤n

(∑

1≤2k−j<k

1

2k − 2k + j)

=∑

1≤k≤n

k<j≤2k−1

1

j=

1≤k≤n

H2k−1 −∑

1≤k≤n

Hk.

Przykład 2.5.4. Korzystając z poprzedniego wyniku oblicz

1≤j2<k≤n

1

k − j2.

2.6. Różne metody obliczania sum

W tym podrozdziale podamy różne metody rozwiązania następującegoproblemu:

Problem 2.6.1. Oblicz

Sn =n∑

k=1

k2, n ≥ 1.

Page 43: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.6. Różne metody obliczania sum 29

2.6.1. Metoda indukcyjna

Zgadnij (lub odwiedź jasnowidza), że

Sn =n∑

k=1

k2 =n(n+ 1)(2n + 1)

6, n ≥ 1,

i udowodnij wynik indukcyjnie.Krok 1. Sprawdzamy dla n = 1:

S1 = 1 =1 · 2 · 3

6.

Krok 2. Załóżmy, że teza jest prawdziwa dla n i dowiedziemy jej praw-dziwości dla n+ 1.

Sn+1 = Sn + (n+ 1)2 =n(n+ 1)(2n + 1) + 6(n+ 1)2

6

=(n + 1)(2n2 + n+ 6n+ 6)

6=

(n+ 1)(2n2 + 7n+ 6)

6

=(n + 1)(n + 2)(2n + 3)

6.

2.6.2. Metoda zaburzania

Metoda zaburzania. Załóżmy, że chcemy obliczyć sumę Sn =∑n

k=1 ak.Z jednej strony wiemy, że Sn+1 = Sn+ an+1 a z drugiej strony Sn+1 = a1+∑n+1

k=2 ak. Gdyby udało się wyrazić∑n+1

k=2 ak za pomocą sumy Sn =∑n

k=1 ak(zwróć uwagę że ilość składników w obu sumach jest taka sama), na przykładgdyby

∑n+1k=2 ak = f(Sn) to otrzymalibyśmy równanie:

Sn + an+1 = a1 + f(Sn), n ≥ 1,

z jedną niewiadomą Sn którą można by było obliczyć.

Zastosujmy metodę zaburzania do naszego przykładu

Sn+1 = Sn + (n+ 1)2 = 12 +n+1∑

k=2

k2 = 1 +n∑

k=1

(k + 1)2

= 1 +n∑

k=1

k2 +n∑

k=1

(2k + 1) = 1 + Sn + 2n∑

k=1

k + n

= Sn + 2n∑

k=1

k + (n+ 1),

Page 44: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

30 2. Sumy

a stądn∑

k=1

k =n(n+ 1)

2, n ≥ 1.

Metoda zaburzania nie doprowadziła nas do celu, poszukiwana zmiennaSn zredukowała się po obu stronach równania! Niechcący zaburzenie sumySn =

∑nk=1 k

2 pozwoliło obliczyć sumę∑n

k=1 k, więc wydaje się, że abyznaleźć naszą sumę, powinniśmy zaburzyć sumę Tn =

∑nk=1 k

3, n ≥ 1.Postępując tak otrzymujemy

Tn+1 = Tn + (n+ 1)3 = 13 +n+1∑

k=2

k3 = 1 +n∑

k=1

(k + 1)3

= 1 +n∑

k=1

k3 + 3n∑

k=1

k2 + 3n∑

k=1

k + n

= 1 + Tn + 3Sn + 3n(n+ 1)

2+ n,

a stąd

(n+ 1)3 = 3Sn +3n(n+ 1)

2+ (n+ 1),

co prowadzi don(n+ 1)(2n + 1)

6= Sn, n ≥ 1.

Podajmy inny przykład metody zaburzania, obliczmy sumę Sn =∑n

k=1 2k.

Analizując tę sumę otrzymujemy

Sn+1 = Sn+2n+1 = 1+n+1∑

k=2

2k = 1+n∑

k=1

2k+1 = 1+2n∑

k=1

2k = 1+2Sn, n ≥ 1,

a więcSn + 2n+1 = 1 + 2Sn, n ≥ 1,

co prowadzi do

Sn =n∑

k=1

2k = 2n+1 − 1,

(por. wzór na sumę ciągu geometrycznego Przykład 1.2.2).

Problem 2.6.2. Oblicz metodą zaburzania sumę

(a) Sn =∑

0≤k≤n

kxk, x 6= 1,

Page 45: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.6. Różne metody obliczania sum 31

(b) Sn =∑

1≤k≤n

Hk, (zaburz sumę∑

1≤k≤n

kHk),

(c) Sn =∑

1≤k≤n

sin(kx).

2.6.3. Przejdź do rekurencji i skonstruuj repertuar

Zapisując tę sumę w formie rekurencji otrzymujemy

S1 = 1,Sn = Sn−1 + n2 dla n > 1,

którą uogólniamy do

S(1) = α,S(n) = S(n− 1) + βn2 + γn+ δ dla n ≥ 1,

i szukamy rozwiązania w postaci

S(n) = αA(n) + βB(n) + γC(n) + δD(n), n ≥ 1.

Kolejno dla funkcji S(n) = 1, S(n) = n, S(n) = n2, S(n) = n3, otrzymujemyrozwiązania

α = 1, β = 0, γ = 0, δ = 0,

α = 1, β = 0, γ = 0, δ = 1,

α = 1, β = 0, γ = 2, δ = −1,α = 1, β = 3, γ = −3, δ = 1,

czyli otrzymujemy układ równań

1 = A(n),

n = A(n) +D(n),

n2 = A(n) + 2C(n)−D(n),

n3 = A(n) + 3B(n)− 3C(n) +D(n),

co można rozwiązać

A(n) = 1,

B(n) =2n3 + 3n2 + n− 6

6,

Page 46: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

32 2. Sumy

C(n) =n2 + n− 2

2,

D(n) = n− 1,

a więc otrzymujemy ogólne rozwiązanie

S(n) = α+ β2n3 + 3n2 + n− 6

6+ γ

n2 + n− 2

2+ δ(n − 1),

ze szczególnym przypadkiem α = β = 1, γ = δ = 0,

Sn = 1 +2n3 + 3n2 + n− 6

6=

n(n+ 1)(2n + 1)

6, n ≥ 1.

Uwaga!!! Inne metody obliczania sum to metody różnicowe i metodafunkcji tworzących, które poznamy dalej.

2.7. Rachunek różnicowy

Rachunek różnicowy powstał przez analogię do rachunku różniczkowe-go - działu matematyki (analiza matematyczna) zajmującego się badaniemfunkcji rzeczywistych i zespolonych, przy użyciu ich pochodnych i całek.

2.7.1. Podstawowe pojęcia

Podstawą rachunku różniczkowego jest operator pochodnej D, zdefinio-wany jako

(Df)(x) = limh→0

f(x+ h)− f(x)

h.

Przyporządkowuje on funkcję Df funkcji rzeczywistej f . Czasem zamiastzapisu (Df)(x) stosuje się f ′(x) lub ∂f

∂x(x). Odpowiednikiem operatora po-chodnej w rachunku różnicowym jest operator różnicowy , zdefiniowanyjako

(f)(x) = f(x+ 1)− f(x).

Przyporządkowuje on funkcję f funkcji rzeczywistej f . Będziemy go jed-nak rozważać tylko dla funkcji określonych na zbiorze liczb naturalnych(czyli dla ciągów). Operator to “skończony odpowiednik” operatora D.Rozważając funkcję liczb całkowitych f nie mamy możliwości badać grani-cy występującej w definicji D. W zamian za to rozważamy stosowny ilorazf(x+1)−f(x)

1 przy najmniejszej możliwej naturalnej wartości h.

Page 47: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.7. Rachunek różnicowy 33

Operator możemy iterować:0f = f,

nf = (n−1f), n ≥ 1.

Na przykład jeśli f(x) =∑x

k=1 k2, x ≥ 1, to

0f =x∑

k=1

k2 =x(x+ 1)(2x + 1)

6,

f = (x+ 1)2,

2f = 2x+ 1,

3f = 2,

4f = 0.

2.7.2. Własności operatora różnicowego

Uwaga 2.7.1. Operator różnicowy spełnia następujące własności:

(cf(x)) = c · f(x),

(f + g)(x) = f(x) +g(x),

mxn = 0, dla m > n, nxn = n!,

nf(x) =n∑

k=0

(−1)k(

n

k

)

f(x+ n− k),

f(x+ n) =n∑

k=0

(

n

k

)

kf(x),

dla dowolnej stałej c, dowolnych funkcji f i g oraz naturalnych n i m.

Dwie pierwsze własności wykazujemy bezpośrednio z definicji a trzyostatnie dowodzimy indukcyjnie.Szczególnie łatwo jest obliczyć pochodną D dla funkcji postaci f(x) =

xa. Mamy bowiem D(xa) = axa−1, a 6= 0. Niestety, nie jest ten wzór praw-dziwy dla operatora. Na przykład(x2) = (x+1)2−x2 = 2x+1, (x3) =(x + 1)3 − x3 = 3x2 + 3x + 1. Istnieje jednak funkcja która daje podobnewzory dla operatora .Definicja 2.7.1. Zdefiniujmy funkcję m-ta dolna silnia od x przez

xm =

x(x− 1)(x− 2)...(x −m+ 1), dla m > 0,1, dla m = 0,

1(x+1)(x+2)(x+3)...(x+(−m)) , dla m < 0.

Page 48: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

34 2. Sumy

Kolejne wartości tej funkcji w zależności od zwykłych potęg przedsta-wiamy w tabeli:

Tabela 2.2. Tablica potęg i dolnych silni.

k0 = 1 k0 = 1k1 = k k1 = k1

k2 = k2 − k k2 = k2 + k1

k3 = k3 − 3k2 + 2k k3 = k3 + 3k2 + k1

k4 = k4 − 6k3 + 11k2 − 6k k4 = k4 + 6k3 + 7k2 + k1

k5 = k5 − 10k4 + 35k3 − 50k2 + 24k k5 = k5 + 10k4 + 25k3 + 15k2 + k1

Twierdzenie 2.7.2. Dla dowolnych liczb całkowitych m 6= 0, a, n zachodzi

(x+ a)m = m(x+ a)m−1,

Hx−1 =1

x,

ax = (a− 1) · ax,

(

x

n

)

=

(

x

n− 1

)

,

xn =n∑

k=1

(

n

k

)

xn−k,

sin(x) = 2 sin(1

2) cos(x+

1

2),

cos(x) = −2 sin(12) sin(x+

1

2).

Dowód. Dla liczby naturalnej m

(x+ a)m = (x+ a+ 1)(x+ a)...(x + a−m+ 2)

−(x+ a)(x+ a− 1)...(x + a−m+ 1)

= (x+ a)(x+ a− 1)...(x + a−m+ 2)(x+ a+ 1− (x+ a−m+ 1))

= m(x+ a)m−1,

natomiast

(x+ a)−m =1

(x+ a+ 2)...(x + a+m+ 1)− 1

(x+ a+ 1)...(x + a+m)

=1

(x+ a+ 2)...(x + a+m)

( 1

x+ a+m+ 1− 1

x+ a+ 1

)

Page 49: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.7. Rachunek różnicowy 35

=1

(x+ a+ 2)...(x + a+m)· x+ a+ 1− (x+ a+m+ 1)

(x+ a+ 1)(x+ a+m+ 1)

=1

(x+ a+ 1)...(x + a+m+ 1)· (−m)

= (−m)(x+ a)−m−1.

Druga równość wynika natychmiast z definicji ciągu liczb harmonicznych,trzecia jest oczywista, pozostałe możemy dowieść bezpośrednio z definicji.

Warto zauważyć, że z powyższego twierdzenia wynika, że 2x = 2x, awięc funkcja 2x odgrywa taką role w rachunku różnicowym jak funkcja ex wrachunku różniczkowym. Natomiast funkcjaHx odgrywa taką rolę jak ln(x),co zauważyliśmy już w podrozdziale 2.4.

2.7.3. Operator różnicowy a operator sumy ∑

Operatorem odwrotnym do operatora D jest operator całki∫. Podobnie

można rozważać operator odwrotny do jako operator ∑,

Df(x) = g(x) ⇐⇒ f(x) =

g(x)dx + C,

f(x) = g(x) ⇐⇒ f(x) =∑

g(x)δx + C.

Uwaga 2.7.3.

(cf(x))δx = c∑

f(x)δx,∑

(f(x) + g(x))δx = c∑

f(x)δx+∑

g(x)δx.

W przypadku całek operator δ oznacza najmniejszy możliwy przyrost,podobnie jest i w przypadku sum, tutaj najmniejszy możliwy przyrost δx =(x+ 1)− x = 1.W analizie rozważa się zarówno całki nieoznaczone jak i oznaczone. Po-

dobnie możemy postępować w przypadku rachunku różnicowego:

Df(x) = g(x) ⇐⇒ f(b)− f(a) =

∫ b

ag(x)dx,

f(x) = g(x) ⇐⇒ f(b)− f(a) =b∑

a

f(x) =∑

a≤x<b

g(x) =b−1∑

x=a

g(x).

Z Twierdzenia 2.7.2 bezpośrednio otrzymujemy

Page 50: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

36 2. Sumy

Twierdzenie 2.7.4. Dla dowolnej liczby całkowitej m oraz naturalnych ni rzeczywistego a 6= 1 mamy

n−1∑

k=0

km =

1m+1(n

m+1 − 0m+1) dla m 6= −1,Hn dla m = −1,

n−1∑

k=0

ak =an − 1

a− 1.

Uwaga 2.7.5. Twierdzenie 2.7.2 pozwala nam uzyskać szereg bardzo inte-resujących zależności, na przykład:

2n−1∑

k=n

(

k

n− 1

)

=

(

2n

n

)

− 1,

n−1∑

k=0

cos(k +1

2) =

sin(n)

2 sin(12 ),

n−1∑

k=0

sin(k +1

2) =

cos(n)

2 sin(12).

2.7.4. Obliczanie sum metodami różnicowymi

Wróćmy do naszego przykładu Sn =∑n

k=1 k2 =

∑nk=0 k

2. Z Tablicy 2.2i Twierdzenia 2.7.4 otrzymujemy

Sn−1 =∑

0≤k<n

k2 =∑

0≤k<n

k2 +∑

0≤k<n

k1 =1

3n3 +

1

2n2

=n(n− 1)(n − 2)

3+

n(n− 1)

2=

n(n− 1)(2n − 1)

6,

i zamieniając n− 1 na n otrzymujemy tezę.

Przykład 2.7.1. Obliczyć sumę:∑n−1

k=0(k3 − 3k+2k + k3−1

(k+1)(k+2)(k+3) ). Zewzorów z Tabeli 2.2

k3 = k3 + 3k2 + k1,

k = k1.

Postaramy się najpierw wyrazić k3−1(k+1)(k+2)(k+3) za pomocą dolnych silni.

Procedura jest taka, weź wyraz z największą potęgą w liczniku - u nas k3

(ze wspołczynnikiem liczbowym) i zmniejsz tą potęge o 1 (k2) oraz ostatniczynnik w mianowniku - tutaj (k + 3) i zastąp w liczniku ten wyraz z naj-wyższą potęgą k3 przez iloczyn k2(k + 3) a dalej uzupełnij licznik tak, abyjego wartość się nie zmieniła (k3 − 1 = k2(k + 3) − 3k2 − 1) rozbij na dwa

Page 51: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.7. Rachunek różnicowy 37

ułamki i postępuj tak dalej. Wszystkie potrzebne przekształcenia podajemyponiżej

k3 − 1

(k + 1)(k + 2)(k + 3)=

k3 + 3k2 − 3k2 − 1

(k + 1)(k + 2)(k + 3)

=k2(k + 3)

(k + 1)(k + 2)(k + 3)− 3k2 + 1

(k + 1)(k + 2)(k + 3)

=k2

(k + 1)(k + 2)− 3k2 + 9k − 9k + 1

(k + 1)(k + 2)(k + 3)

=k(k + 2)

(k + 1)(k + 2)− 2k

(k + 1)(k + 2)

− 3k(k + 3)

(k + 1)(k + 2)(k + 3)+

9k − 1

(k + 1)(k + 2)(k + 3)

=k

k + 1− 2k + 4− 4

(k + 1)(k + 2)

− 3k + 6− 6

(k + 1)(k + 2)+

9k + 27− 28

(k + 1)(k + 2)(k + 3)

=k + 1− 1

k + 1− 2(k + 2)

(k + 1)(k + 2)

− 4

(k + 1)(k + 2)− 3(k + 2)

(k + 1)(k + 2)

+6

(k + 1)(k + 2)+

9k + 27− 27− 1

(k + 1)(k + 2)(k + 3)

= 1− k−1 − 2k−1 + 4k−2 − 3k−1 + 6k−2 + 9k−2 − 28k−3

= k0 − 6k−1 + 19k−2 − 28k−3.

Tak więc otrzymaliśmy sumy składników, które potrafimy obliczyć metodamiróżnicowymi (z Twierdzenia 2.7.4).

n−1∑

k=0

(k3 − 3k + 2k +k3 − 1

(k + 1)(k + 2)(k + 3))

=n−1∑

k=0

(

2k + k3 + 3k2 + 2k1 + k0 − 6k−1 + 19k−2 − 28k−3)

= 2k |n0 +k4

4|n0 +

3k3

3|n0 +

2k2

2|n0 +

k1

1|n0 −6Hk |n0 +

19k−1

−1 |n0 −28k−2

−2 |n0

= 2n − 1 +n4

4+ 3

n3

3+ 2

n2

2+

n1

1− 6Hn + 19(

n−1

−1 − 1)− 28(n−2

−2 −1

(−2)2! )

= 2n − 27 +n4 − 6n3 + 11n2 − 6n

4+ n3 − 3n2 + 2n + n2 − n+ n

Page 52: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

38 2. Sumy

−6Hn −19

n+ 1+

14

(n+ 1)(n + 2)

= 2n +n4

4− n3

2+

3n2

4+

n

2− 27− 6Hn −

19

n+ 1+

14

(n+ 1)(n + 2).

Uwaga 2.7.6. Jeżeli mamy obliczyć iloraz różnicowy ułamka, w którymnie ma w mianowniku ciągu arytmetycznego (z r = 1) liczb, np. 2k2−3

(k+2)(k+5) ,to wtedy uzupełniemy mianownik i licznik domnażając przez odpowiedniewyrazy (2k2−3)(k+1)(k+3)(k+4)

(k+1)(k+2)(k+3)(k+4)(k+5) .

Uwaga 2.7.7. Reguły postępowania przy obliczaniu sum metodami różni-cowymi to:♣ Wyraź wszystkie składniki sumy za pomocą dolnych silni km (Tabela2.2), potęg ak lub symboli Newtona

(kn

)

lub, jak zobaczymy w następnympodrozdziale iloczynów opisanych tutaj typów.♣ Zastosuj Twierdzenie 2.7.4, Twierdzenie 2.7.3, dla (xn

)lub podany w

następnym podrozdziale wzór na różnicowanie przez części dla iloczynówi Twierdzeń 2.7.3-2.7.4.♣ Znowu stosując Tabelę 2.2 lub wyliczając bezpośrednio zamień dolnąsilnię na zwykłe potęgi i uporządkuj wynik.

2.7.5. Wzór na różnicę iloczynu i sumowanie przez części

Wprowadźmy najpierw operator przesunięcia E poprzez Ef(x) = f(x+1). Oczywiście stąd Enf(x) = f(x+ n), n ≥ 1. W rachunku różniczkowymznane są wzory na pochodną iloczynu i ilorazu funkcji:

D(f · g)(x) = (Df)(x)g(x) + f(x)(Dg)(x), (f · g)′ = f ′g + fg′,

D(f

g)(x) =

(Df)(x)g(x) − f(x)(Dg)(x)

g2(x), (

f

g)′ =

f ′g − fg′

g2.

Czy podobne wzory można również podać w rachunku różnicowym? Odpo-wiedź jest pozytywna, jednak pojawiają się pewne drobne różnice.

Twierdzenie 2.7.8. Dla dowolnych całkowitoliczbowych funkcji

(f · g)(x) = f(x)(g)(x) + (f)(x)g(x + 1) = (f(g) + (f)(Eg))(x),

(f

g)(x) =

(f)(x)g(x) − f(x)(g)(x)

g(x)g(x + 1)=

(f)g − f(g)

gEg(x).

Dowód. Z definicji operatora różnicowego i E otrzymujemy

(f · g)(x) = f(x+ 1)g(x + 1)− f(x)g(x)

Page 53: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

2.7. Rachunek różnicowy 39

= f(x+ 1)g(x + 1)− f(x)g(x+ 1) + f(x)g(x + 1)− f(x)g(x)

= g(x+ 1)(f)(x) + f(x)(g)(x)

= (f(g) + (f)(Eg))(x),

oraz

(f

g)(x) =

f(x+ 1)

g(x+ 1)− f(x)

g(x)

=f(x+ 1)g(x) − f(x)g(x+ 1)

g(x)g(x + 1)

=(f(x+ 1)− f(x))g(x) − f(x)(g(x+ 1)− g(x))

g(x)g(x + 1)

=(f)g − f(g)

gEg(x).

Twierdzenia Leibnitza pomagające obliczyć n-tą pochodną iloczynu funk-cji:

(fg)(n) =n∑

k=1

(

n

k

)

f (k)g(n−k),

gdzie f (n) oznacza n-tą pochodną funkcji f . Wynik analogiczny w rachunkuróżnicowym do tego twierdzenia można uzyskać indukcyjnie z Twierdzenia2.7.8.

Twierdzenie 2.7.9. Zachodzi

n(f ·g)(x) =n∑

k=0

(

n

k

)

(kf)(x)(n−kg)(x+k) =n∑

k=0

(

n

k

)

((kf)(n−k(Ekg)))(x).

Twierdzenie 2.7.8 pozwala uzyskać ciekawy wzór na różnicowanie przezczęści, poprzez analogię do całkowania przez części

f(x)g′(x)dx = f(x)g(x)−∫

f ′(x)g(x)dx.

Twierdzenie 2.7.10.

f(x) · g(x)δx = f(x) · g(x)−∑

(f)(x)g(x + 1)δx.

Pokażemy jak ten wzór można wykorzystać do obliczenia sumy∑

0≤k<n k2k.

Oczywiście mamy 2k = 2k więc

Page 54: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

40 2. Sumy

0≤k<n

k2k =∑

0≤k<n

k2k

= n2n −∑

0≤k<n

k12k+1

= n2n −∑

0≤k<n

2k+1

= n2n −∑

0≤k<n+1

2k + 1

= n2n − 2n+1 + 1 + 1

= n2n − 2n+1 + 2.

Podsumowanie.• Sumy są szczególnymi rodzajami rekurencji i niektóre rekurencje dająsię sprowadzić do sum i obliczyć metodami charakterystycznymi dla ope-racji na sumach. Sprowadzanie rekurencji do sum nazywa się obliczaniemrekurencji metodą czynnika sumacyjnego.

• Liczby harmoniczne są to sumy odwrotności kolejnych liczb naturalnych.Oznaczamy je przez Hn i odgrywają one ważną rolę w matematyce dys-kretnej i przyrodzie (podobną do roli logarytmu naturalnego w analizie).

• Sumy obliczamy metodą zaburzania, poprzez próbę wyrażenia sumyskładników od wyrazu 2 do n + 1 jako suma składników od wyrazu1 do n i potem rozwiązania równania. Jednak często nie udaje nam siętak wyrazić tych sum a po drugie często otrzymujemy równanie uwi-kłane, którego nie potrafimy rozwiązać. Drugim potężnym narzędziemobliczania sum jest rachunek różnicowy, który pozwala nam wyliczyćwiele interesujących sum.

• Sumy wielokrotne często daje się obliczyć poprzez geometryczną analizęzbioru indeksowego i rozpisanie tego zbioru w postaci sum i/lub iloczy-nów innych zbiorów.

Page 55: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Rozdział 3

Funkcje całkowitoliczbowe

3.1. Podłoga i sufit . . . . . . . . . . . . . . . . . . . . . . . 423.2. Widmo liczby . . . . . . . . . . . . . . . . . . . . . . . 463.3. Rekurencje z funkcjami podłoga i sufit . . . . . . . . . 473.4. Działanie dwuargumentowe mod . . . . . . . . . . . . . 523.5. Generatory liczb pseudolosowych . . . . . . . . . . . . . 543.6. Zapisy liczb naturalnych w różnych podstawach liczenia 56

Page 56: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

42 3. Funkcje całkowitoliczbowe

Funkcje całkowitoliczbowe są to funkcję, których zbiorem wartości jestzbiór liczb całkowitych lub jego podzbiór. W tym rozdziale rozważamyfunkcje określone na zbiorze liczb rzeczywistych. W bibliotece JAVA - ja-va.lang.Math występują funkcje: ceil(), f loor(), rint(), round() oraz opera-tory % i xmod y, podobnie w języku PYTHON w bibliotece matematycznejwystępują trzy takie funkcje: floor(, ) ceil() i divmod() oraz operatory % i\\. W tym rozdziale będziemy zajmować się takimi właśnie funkcjami.

3.1. Podłoga i sufit

Definicja 3.1.1. Funkcje podłoga ⌊.⌋ oraz sufit ⌈.⌉ definiujemy wzorami:

⌊x⌋ = maxc ∈ Z : c ≤ x,⌈x⌉ = minc ∈ Z : c ≥ x.

Rysunek 3.1. Funkcje ”podłoga” i ”sufit”.

-

6

-4

-3

-2

-1

1

2

3

4

-4 -3 -2 -1 0 1 2 3 4-

6

-4

-3

-2

-1

1

2

3

4

-4 -3 -2 -1 0 1 2 3 4

b

b

b

b

b

b

b

b

b

y = ⌊x⌋b

b

b

b

b

b

b

b

b

y = ⌈x⌉

W językach programowania funkcji podłoga najczęściej odpowiada funk-cja floor() natomiast sufit to ceil(). W VISUAL BASICu funkcja INT ()działa jak podłoga ale jest też inna funkcja, FIX(), określona następująco

FIX(x) =

⌊x⌋, dla x ≥ 0,⌈x⌉, dla x < 0.

Zwróćmy uwagę na interesujący związek funkcji podłoga i sufit z oma-wianym w poprzednim rozdziale symbolem Iversona i zbiorem liczb całko-witych

⌈x⌉−⌊x⌋ = [x nie jest liczbą całkowitą] =

0, x jest liczbą całkowitą,1, x nie jest liczbą całkowitą.

Page 57: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.1. Podłoga i sufit 43

Ponadto bezpośrednio z definicji zachodzą następujące nierówności:

x− 1 < ⌊x⌋ ≤ x ≤ ⌈x⌉ < x+ 1,

⌊−x⌋ = −⌈x⌉, ⌈−x⌉ = −⌊x⌋.

Z tych prostych własności bezpośrednio można otrzymać:

Uwaga 3.1.1. Zachodzi

⌊x⌋ = n ⇐⇒ n ≤ x < n+ 1,

⌊x⌋ = n ⇐⇒ x− 1 < n ≤ x,

⌈x⌉ = n ⇐⇒ n− 1 < x ≤ n,

⌈x⌉ = n ⇐⇒ x ≤ n < x+ 1,

a ponadto

x < n ⇐⇒ ⌊x⌋ < n,

n < x ⇐⇒ n < ⌈x⌉,x ≤ n ⇐⇒ ⌈x⌉ ≤ n,

n ≤ x ⇐⇒ n ≤ ⌊x⌋.

Problem 3.1.1. Czy

⌊x+ y⌋ = ⌊x⌋+ ⌊y⌋, ⌈x+ y⌉ = ⌈x⌉+ ⌈y⌉,⌊x · y⌋ = ⌊x⌋ · ⌊y⌋, ⌈x · y⌉ = ⌈x⌉ · ⌈y⌉?

Łatwo sprawdzić, że dla naturalnych liczb n: ⌊x±n⌋ = ⌊x⌋±n i ⌈x±n⌉ =⌈x⌉ ± n, ale w ogólności nie jest prawdziwe ⌊nx⌋ = n⌊x⌋, czy ⌈nx⌉ = n⌈x⌉,(połóż n = 2, x = 1

2).Zdefiniujmy x = x − ⌊x⌋ (jest to część ułamkowa x). Przebieg tej

funkcji ilustruje Rys. 3.2

Rysunek 3.2. Funkcja x.

-

6

-4

-3

-2

-1

1

2

3

4

-4 -3 -2 -1 0 1 2 3 4b b b b b b b b b

y = x

Page 58: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

44 3. Funkcje całkowitoliczbowe

Z drugiej strony mamy x = x+ ⌊x⌋ a stąd

⌊x+ y⌋ = ⌊⌊x⌋+ ⌊y⌋+ x+ y⌋ = ⌊x⌋+ ⌊y⌋+ ⌊x+ y⌋,

a ponieważ 0 ≤ x+ y < 2, więc

⌊x+ y⌋ =

⌊x⌋+ ⌊y⌋, gdy 0 ≤ x+ y < 1,⌊x⌋+ ⌊y⌋+ 1, gdy 1 ≤ x+ y < 2.

Twierdzenie 3.1.2. Dla dowolnej nieujemnej rzeczywistej liczby x zacho-dzi

⌊√

⌊x⌋⌋

=⌊√

x⌋

,⌈√

⌈x⌉⌉

=⌈√

x⌉

.

Udowodnimy twierdzenie ogólniejsze:

Twierdzenie 3.1.3. Niech f będzie rosnącą ciągłą funkcją o tej własności,że

Jeśli f(x) jest liczbą całkowitą to x jest liczbą całkowitą

Wtedy⌊

f(⌊x⌋)⌋

=⌊

f(x)⌋

,⌈

f(⌈x⌉)⌉

=⌈

f(x)⌉

.

Dowód. Udowodnimy tylko pierwszą równość (druga jest analogiczna).Jeżeli ⌊x⌋ = x to teza jest oczywista, załóżmy więc ⌊x⌋ < x. Z tego, żefunkcja f jest rosnąca wynika, że f(⌊x⌋) < f(x) a z własności funkcjipodłoga

f(⌊x⌋)⌋

≤⌊

f(x)⌋

. Załóżmy teraz, że⌊

f(⌊x⌋)⌋

<⌊

f(x)⌋

. Stąd

oczywiście f(⌊x⌋) <⌊

f(x)⌋

≤ f(x), a więc istnieje liczba ⌊x⌋ < y ≤ x taka,

że f(y) =⌊

f(x)⌋

. Z własności funkcji f() wynika, że y jest liczbą całkowitą(bo f(y) jest liczbą całkowitą) a nie ma żadnej liczby całkowitej pomiędzy⌊x⌋ a x.

Wniosek 3.1.1. Dla dowolnych n,m ∈ N , x ∈ ℜ, bezpośrednio z twierdze-nia 3.1.3 otrzymujemy:

⌊x+m

n

=⌊⌊x⌋+m

n

,

⌈x+m

n

=⌈⌈x⌉+m

n

.

Page 59: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.1. Podłoga i sufit 45

Problem 3.1.2. Czy prawdziwe są równości

⌊√

⌈x⌉⌋

=⌊√

x⌋

,⌈√

⌊x⌋⌉

=⌈√

x⌉

?

Oznaczmy przez[α, β] przedział domknięty α ≤ x ≤ β,[α, β) przedział α ≤ x < β,(α, β] przedział α < x ≤ β,(α, β) przedział otwarty α < x < β.

Twierdzenie 3.1.4. Ilość liczb całkowitych zawartych w każdym z tychprzedziałów przedstawiamy w Tabeli 3.1

Tabela 3.1. Ilość liczb całkowitych w różnego typu przedziałach.

Przedział Ilość liczb całkowitych Założeniazawartych w tym przedziale

[α, β] ⌊β⌋ − ⌈α⌉ + 1 α ≤ β,[α, β) ⌈β⌉ − ⌈α⌉ α ≤ β,(α, β] ⌊β⌋ − ⌊α⌋ α ≤ β,(α, β) ⌈β⌉ − ⌊α⌋ − 1 α < β,

Dowód. Jeśli α ≤ n ≤ β to ⌈α⌉ ≤ n ≤ ⌊β⌋ a liczb naturalnych spełnie-jących ten warunek jest dokładnie ⌊β⌋−⌈α⌉+1. Podobnie jeśli α ≤ n < β to⌈α⌉ ≤ n < ⌈β⌉ a liczb naturalnych spełniejących ten warunek jest dokładnie⌈β⌉ − ⌈α⌉. Pozostałe wzory dowodzimy podobnie.

Problem 3.1.3. Ile jest wielokrotności liczby x w przedziałach: [α, β], [α, β),(α, β], (α, β)?

Przykład 3.1.1. Obliczmy sumę∑

0≤k<n⌊k2⌋.Mamy

0≤k<n

⌊k2⌋ =

k,j≥0

j[j = ⌊k2⌋][k < n]

=∑

k,j≥0

j[j ≤ k

2< j + 1][k < n]

=∑

k,j≥0

j[2j ≤ k < 2j + 2][k < n]

Page 60: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

46 3. Funkcje całkowitoliczbowe

=∑

j≥0

k≥0

j[2j ≤ k < 2j + 2][k < n]

=∑

j≥0

j∑

k≥0

[2j ≤ k < 2j + 2 ≤ n] +∑

j≥0

j∑

k≥0

[2j ≤ k < n < 2j + 2]

=∑

j≥0

j(2j + 2− 2j)[2j + 2 ≤ n] +∑

j≥0

j(n − 2j)[2j < n < 2j + 2]

=∑

j≥0

2j[2j ≤ n− 2] +∑

j≥0

j(n − 2j)[2j + 1 = n = 2j + 1]

= 2∑

0≤j≤⌊n2⌋−1

j +n− 1

2[n− 1 parzyste]

= (⌊n2⌋ − 1)(⌊n

2⌋) + n− 1

2[n− 1 parzyste].

Problem 3.1.4. Oblicz następujące sumy∑

0≤k<n⌈k2⌉,∑

0≤k<n⌊k3⌋,∑

0≤k<n⌈k3⌉.

3.2. Widmo liczby

Definicja 3.2.1. Widmem dowolnej liczby rzeczywistej α nazywamy ciągSpec(α) = ⌊α⌋, ⌊2α⌋, ⌊3α⌋, ⌊4α⌋, ....

Na przykład:

Spec(1

2) = 0, 1, 1, 2, 2, 3, 3, ...,

Spec(1

3) = 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, ...,

Spec(−2.3) = −3,−5,−7,−10,−12,−14,−17, ...,Spec(π) = 3, 6, 9, 12, 15, 18, 21, 25, 28, 31, ....

Łatwo sprawdzić, że ciąg ten jest niemalejący dla dodatnich liczb α,nierosnący dla ujemnych i stały równy 0 dla α = 0.

Twierdzenie 3.2.1. Dla dowolnych liczb rzeczywistych α i β:

α = β ⇐⇒ Spec(α) = Spec(β).

Dowód. Implikacja α = β ⇒ Spec(α) = Spec(β) jest oczywista. Jeśliα 6= β to można z symetrii założyć, że α < β, a wtedy istnieje taka liczba

Page 61: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.3. Rekurencje z funkcjami podłoga i sufit 47

naturalna m, że m(β − α) ≥ 1 (np. m = ⌈ 1β−α⌉) stąd mβ ≥ mα + 1 czyli

⌊mβ⌋ > ⌊mα⌋ a stąd Spec(α) 6= Spec(β).

Reprezentacja liczby jej widmem jest więc reprezentacją jednoznaczną.Przez Speck(α) oznaczać będziemy k-ty element widma α, to znaczy ⌊kα⌋.Dla dowolnej dodatniej liczby α oznaczmy przez N(α, n) ilość elemen-

tów w widmie Spec(α) nie większych niż n. Wtedy

N(α, n) =∑

k>0

[⌊kα⌋ ≤ n]

=∑

k>0

[⌊kα⌋ < n+ 1]

=∑

k>0

[kα < n]

=∑

k

[0 < k < (n+ 1)/α]

= ⌈(n+ 1)/α⌉ − 1.

Twierdzenie 3.2.2. Niech p i q będą dwoma liczbami niewymiernymi ta-kimi, że 1

p + 1q = 1. Wtedy Spec(p) ∪ Spec(q) = N , Spec(p) ∩ Spec(q) = ∅.

Dowód. Napierw wykażemy że dla każdej liczby naturalnej n zachodziN(p, n) + N(q, n) = n (zwróćmy uwagę, że równość ta oznacza iż liczba nwystępuje dokładnie raz w jednym z widm). Mamy

N(p, n) +N(q, n) = ⌈n+ 1

p⌉ − 1 + ⌈n+ 1

q⌉ − 1 = n

⇐⇒ ⌊n+ 1

p⌋+ ⌊n+ 1

q⌋ = n,

⇐⇒ n+ 1

p− n+ 1

p+ n+ 1

q− n+ 1

q = n,

⇐⇒ (n+ 1)(1

p+

1

q)− n + 1

p − n+ 1

q = n,

⇐⇒ n+ 1

p+ n+ 1

q = 1,

co jest prawdziwe bo n+1p + n+1

q = n+ 1.

W szczególności za liczby p i q można wybrać√2 i 2 +

√2 (Sprawdź).

3.3. Rekurencje z funkcjami podłoga i sufit

Przykład 3.3.1. Niech a[1 : n] będzie tablicą liczb, które chcemy posorto-wać a b[1 : n] pomocniczą tablicą. Rozważmy następujący algorytm sortowa-nia:

Page 62: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

48 3. Funkcje całkowitoliczbowe

Algorytm 3.1. Sortowanie przez podział i złączanie

procedure s o r t (p , k : i n t e g e r ) ;p1 , i , j , s : i n t e g e r ;i f k>p then

p1:=⌊ ( k+p) /2 ⌋ ;s o r t (p , p1 ) ;s o r t ( p1+1,k ) ;i :=p ; j :=p1+1; s :=p ;whi le ( i<=p1 ) and ( j<=k) do

i f a [ i ]<a [ j ] then

b [ s ] := a [ i ] ; i := i +1; e l s e

b [ s ] := a [ j ] ; j := j +1; s := s+1;

i f i=p1+1 then

f o r i := j to k

b [ s ] := a [ i ] ; s := s+1;

e l s e

f o r j := i to p1 b [ s ] := a [ j ] ; s := s+1;

f o r i :=p to k

a [ i ] :=b [ i ] ;

s o r t (1 , n) ;

Wyznacz liczbę porównań elementów tablicy a w najgorszym możliwymprzypadku. Powyższą metodę sortowania możemy opisać następująco: dzie-limy ciąg na dwie równe (gdy n nieparzyste ”mniej więcej” równe) części,sortujemy te części osobno i potem łączymy je w jeden posortowany już ciąg.Dzielenie następuje tak długo, dopóki nie otrzymamy ciąg długości 1. Po-dział na ”mniej więcej” równe posortowane części odpowiada przedstawieniuliczby n w następujący sposób:

n = ⌊n2⌋+ ⌈n

2⌉,

a więc uzyskujemy rekurencję:

T (0) = 0,T (n) = T (⌊n2 ⌋) + T (⌈n2 ⌉) + (n− 1), dla n ≥ 1.

Page 63: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.3. Rekurencje z funkcjami podłoga i sufit 49

Jak rozwiązać tę rekurencję? Udowodnimy najpierw pomocniczą tożsa-mość:

⌈log2(2j)⌉ = ⌈log2(j)⌉ + 1, j ≥ 1,

⌈log2(2j − 1)⌉ = ⌈log2(j)⌉ + [j > 1], j ≥ 1.

Pierwsza równość wynika z faktu, że ⌈log2(2j)⌉ = ⌈log2(j) + 1⌉, natomiastdla drugiej mamy

⌈log2(2j − 1)⌉ = k

⇐⇒ k − 1 < log2(2j − 1) ≤ k

⇐⇒ 2k−1 < 2j − 1 ≤ 2k

⇐⇒ 2k−2 +1

2< j ≤ 2k−1 +

1

2

⇐⇒ 2k−2 < j ≤ 2k+[j>1],

bowiem jedynie dla k = 1 w przedziałach typu (2k−1, 2k−1 + 12 ] znajduje się

liczba całkowita.Następnie rozważmy sumę

∑nk=1⌈log2(k)⌉. Ponieważ

n∑

k=1

⌈log2(k)⌉ =

⌊n2⌋

k=1

⌈log2(2k)⌉ +⌈n2⌉

k=1

⌈log2(2k − 1)⌉

=

⌊n2⌋

k=1

⌈log2(k)⌉ + ⌊n

2⌋+

⌈n2⌉

k=1

⌈log2(k)⌉+ ⌈n

2⌉ − 1

=

⌊n2⌋

k=1

⌈log2(k)⌉ +⌈n2⌉

k=1

⌈log2(k)⌉+ n− 1,

więc

T (n) =n∑

k=1

⌈log2(k)⌉.

Ta sama suma pojawia się w innym algorytmie sortowania - algorytmiewstawiania połówkowego (algorytm 7.2). Algorytm ten zostanie omówionyszczegółowo w podrozdziale 7.3.1.

Przykład 3.3.2. Rekurencja Flawiusza. Rozważmy teraz ponownie reku-rencję Flawiusza. Rekurencję Flawiusza J2() możemy zapisać zwartym wzo-rem jako:

J2(1) = 1,J2(n) = 2J2(⌊n2 ⌋)− (−1)n, dla n ≥ 2,

Page 64: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

50 3. Funkcje całkowitoliczbowe

natomiast ”oryginalną” rekurencję Flawiusza można opisać

J3(1) = 1,J3(n) = ⌈32J3(⌊2n3 ⌋) + an⌉ mod n + 1, dla n ≥ 2,

gdzie

an =

−2 jeśli n mod 3 = 0,1 jeśli n mod 3 = 1,−1

2 jeśli n mod 3 = 2,

a operator dwuargumentowy n mod m oznacza resztę z dzielenia n przezm (więcej o tym operatorze w następnym podrozdziale). Nie jest to rów-nanie, które możnaby rozwiązać jakimiś znanymi metodami, ale zupełnieinne podejście do problemu Flawiusza może być efektywniejsze. Załóżmy,że po eliminacjach nadamy nowe (dalsze) numery pozostałym osobom. Naprzykład, dla n = 12 osób mamy

1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 17 18 19 2021 22 23 24 25 2627 28 29 30

31 3233 34

3536

Zauważmy, że k-ta w kolejności zabita osoba teraz w chwili śmierci manumer 3k a poszukiwana J3(n)-ta osoba ma numer 3n. Jak łatwo widaćosoba o numerze N = n + 2k + 1 lub N = n+ 2k + 2 miała numer 3k + 1lub 3k+2, odpowiednio, a stąd “stary” numer jest równy ⌊N−n−1

2 ⌋+N −nco prowadzi do następującego algorytmu obliczania J3(n):

Algorytm 3.2. Obliczanie J3(n)N:=3n ;wh i l e N>n do

N:= ⌊N−n−12

⌋+N−n ;J3 (n) :=N;

Otrzymaliśmy więc algorytm obliczenia J3(n) ale dalej nie mamy tutajani zwartego wzoru, ani nawet rekurencji. Jeśli jednak zrobimy podstawienieD = 3n+ 1−N to

D := 3n+ 1−(⌊(3n + 1−D)− n− 1

2

+ (3n+ 1−D)− n

)

Page 65: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.3. Rekurencje z funkcjami podłoga i sufit 51

= n+D −⌊2n−D

2

= d−⌊−D

2

= d+⌈D

2

=⌈3

2D⌉

,

a stąd otrzymujemy algorytm

Algorytm 3.3. Obliczanie J3(n) - drugi sposóbD:=1;wh i l e D<=2n do

D:= ⌈ 32D⌉ ;

J3 (n) :=3n+1−D;

Zdefiniujmy ciąg rekurencyjny

D(q)0 = 1,

D(q)n = ⌈ q

q−1D(q)n−1⌉, dla n ≥ 1,

wtedyJq(n) = qn+ 1−D

(q)k ,

gdzie k = infj ≥ 1 : D(q)j > (q − 1)n.

W poniższej tabeli podamy liczby D(q)k , 1 ≤ k ≤ 30, q = 3, 4, 5 :

Tabela 3.2. Liczby D(q)k , q = 3, 4, 5.

k D(3)k D

(4)k D

(5)k

1 1 1 12 2 2 23 3 3 34 5 4 45 8 6 56 12 8 77 18 11 98 27 15 129 41 20 1510 62 27 1911 93 36 2412 140 48 3013 210 64 3814 315 86 4815 473 115 60

k D(3)k D

(4)k D

(5)k

16 710 154 7517 1065 206 9418 1598 275 11819 2397 367 14820 3596 490 18521 5394 654 23222 8091 872 29023 12137 1163 36324 18206 1551 45425 27309 2068 56826 40964 2758 71027 61446 3678 88828 92169 4904 111029 138254 6539 138830 207381 8719 1735

Page 66: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

52 3. Funkcje całkowitoliczbowe

Obliczmy teraz J3(41). Z tabelki widzimy, że D(3)11 > 2× 41 = 82 a więc

k = 11 a J3(41) = 3× 41 + 1− 93 = 31. Należy więc stanąć na 31 pozycji.Widzimy więc jak dobrym matematykiem był Flawiusz (matematyka czasemratuje ludziom życie).Sprawdźmy jeszcze przedstawioną teorię dla znanego przypadku q = 2.

Wtedy D(2)n = 2n i k = infj ≥ 1 : D

(2)j > n = m(n) + 1 = ⌊log2(n)⌋+ 1 a

więc

J2(n) = n+ 1−D(2)k = 2n+ 1− 2m+1 = 2(n − 2m) + 1 = 2l + 1,

co jest zgodne z Twierdzeniem 1.2.1.

3.4. Działanie dwuargumentowe mod

Wpoprzednim podrozdziale pojawił się operator dwuargumentowymod.Zajmiemy się tutaj bliżej własnościami tego operatora. Dla dowolnych liczbnaturalnych n i m (n > m), liczba m mieści si e ⌊ nm⌋ razy w liczbie n,natomiast n mod m jest resztą z dzielenia n przez m, a więc każdą liczbęnaturalną n możemy przedstawić w postaci

n = ⌊ nm⌋m+ n mod m. (3.4.1)

Chcemy rozszerzyć tę własność na wszystkie liczby rzeczywiste, kładąc dlax, y ∈ ℜ, y 6= 0

x mod y = x− y⌊xy⌋.

Dla y = 0 dookreślamy

x mod 0 = x.

Definicja 3.4.1. Operatorem dwuargumentowym x mod y określonym dlax, y ∈ ℜ nazywamy

x mod y =

x− y⌊xy ⌋, dla y 6= 0,

x, dla y = 0.

Liczbę za symbolem y nazywamy modulnikiem. Możemy spytać się ja-ka jest interpretacja geometryczna tej operacji? Wyobraźmy sobie okrąg oobwodzie długości y. Jeżeli przejdziemy wzdłuż tego okręgu drogę długości

Page 67: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.4. Działanie dwuargumentowe mod 53

x to wykonamy ⌊xy ⌋ pełne obroty okręgu a skończymy w miejscu odległymod początku o x mod y.

Rysunek 3.3. Ilustracja x mod y oraz ⌊xy⌋.

6$%&$pp p p p

⌊ xy⌋ - razy

całe koła x mod yx2π

Twierdzenie 3.4.1. Dla dowolnych x, y, c mamy:

(i) 0 ≤ x mod y < y, dla y > 0,(ii) 0 ≥ x mod y > y, dla y < 0,(iii) c(x mod y) = (cx) mod (cy).

Dowód (iii)

c(x mod y) = c(x− y⌊xy⌋) = cx− cy⌊cx

cy⌋ = (cx) mod (cy).

Problem 3.4.1. Podziel n osób na m możliwie równolicznych grup. Naprzykład niech n = 10 dzielimy na m = 4 grupy. Otrzymujemy dwie grupypo ⌊104 ⌋ = 2 elementów oraz dwie grupy po ⌈104 ⌉ = 3 elementów, czyli

10 = ⌊104⌋+ ⌊10

4⌋+ ⌈10

4⌉+ ⌈10

4⌉.

Ogólnie

n = ⌊ nm⌋+ ⌊ n

m⌋+ ...+ ⌊ n

m⌋

︸ ︷︷ ︸

n mod m

+ ⌈ nm⌉+ ⌈ n

m⌉+ ...+ ⌈ n

m⌉

︸ ︷︷ ︸

m−n mod m

,

czyli

n = ⌊ nm⌋+ ⌊n+ 1

m⌋+ ...+ ⌊n+m− 1

m⌋,

lubn = ⌈ n

m⌉+ ⌈n− 1

m⌉+ ...+ ⌈n−m+ 1

m⌉.

Niech teraz n = ⌈mx⌉. Wtedy z Wniosku 3.1.1

⌊mx⌋ = ⌊x+1

m⌋+ ⌊x+

2

m⌋+ ...+ ⌊x+

m− 1

m⌋. (3.4.2)

Analogicznie możemy otrzymać

⌈mx⌉ = ⌈x− 1

m⌉+ ⌈x− 2

m⌉+ ...+ ⌈x− m− 1

m⌉. (3.4.3)

Page 68: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

54 3. Funkcje całkowitoliczbowe

3.5. Generatory liczb pseudolosowych

Ważnym problemem, w zastosowaniach komputerowych, jest wygenero-wanie ciągu losowego. Komputer jest urządzeniem w 100% deterministycz-nym, a podłączenie jakiejś przystawki, gdzie byłby generowany proces lo-sowy, chociaż możliwe (oparte na szumie termicznym lub promieniowaniukosmicznym) jest bardzo drogie. Zastosowanie w komputerze losowych liczbjest ogromne: różne symulacje, obliczanie całek czy też rozwiązywanie rów-nań, których w inny sposób nie można obliczyć, gry, projektowanie itp. Przybraku rzeczywistej losowej przystawki jedyną metodą generowania ciąguliczb w komputerze jest ciąg postaci Xn = f(Xn−1, ...,Xn−k), n ≥ k + 1,przy pewnych warunkach początkowych. Niestety tak wygenerowany ciągjest zawsze (!) okresowy, a zgodnie z naszą intuicją, losowy ciąg powinienbyć nieokresowy. Podobnie, ze względu na skończoność pamięci komputeraciąg ”losowy” w komputerze składa się wył acznie z liczb wymiernych, aprawdopodobieństwo wylosowania liczby wymiernej z przedziału [0, 1] wy-nosi 0(liczby niewymiernej wynosi 1). Dlatego ciągi ”losowe” tworzone wkomputerze określamy jako psudolosowe a nie losowe (z wyjątkiem wspo-mnianych na początku losowych przystawek). O jakości ciągu pseudoloso-wego świadczy więc długość okresu, szybkość obliczeń i spełnianie pewnejgrupy testów statystycznych. Chyba jednym z częściej używanych takichciągów jest generator liniowy kongruencyjny lub generator liniowy Lehmera(LCG):

LCG(M,a, b, α) :

Xo = α,Xn = (aXn−1 + b) mod M, n > 1,

(3.5.4)

gdzie możliwie dobrym wyborem jestM = 2m, c = 2k+1, a = 4l+1, k, l,m ∈N , wtedy ciąg ten ma okres 2m, największy jaki może przyjmować. WANSI-C jako funkcja rand() stosowany jest LCG(231, 1103515245, 12345,12345) z, jak widać, dość prostymi wartościami b i α. Inny generator li-niowy kongruencyjny LCG(231 − 1, 6300360016, 0, 0) jest wykorzystywanyw FORTRANIE w funkcji RAN() a jeszcze inne wykorzystywno w CUPL,BCPL, Turbo C++, Turbo Pascalu i Mapple. Generatory LCG, używanew symulacjach i metodach Monte Carlo (np., numeryczne obliczanie całek),są jednak całkowicie nieprzydatne w kryptografii, kolejne wartości przyro-stów generatora układają się bowiem na liniach prostych (y = ax + b) otym samym współczynniku nachylenia. Po odgadnięciu pierwszej wartościgeneretora pozostałe wartości jest więc już zbyt łatwo złamać (wzór (3.5.4)

Page 69: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.5. Generatory liczb pseudolosowych 55

jest za prosty). Na rysunkach 3.4 i 3.5 przedstawiliśmy wykres generatoraLCG(32, 5, 17, 0) i przyrosty tego generatora.

Rysunek 3.4. Generator LCG(32, 5, 17, 0).Wykres zależności Xn od n.

6

-2

4

6

8

10

12

14

16

18

20

22

24

26

28

30

32

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Xn

n

q

qq

q qqq q

q

qq

q qqq q

q

qq

q q

q

q q

q

q

q

q qqq q

q

Rysunek 3.5. Generator LCG(32, 5, 17, 0).Wykres zależności Xn od Xn−1.

6

-2

4

6

8

10

12

14

16

18

20

22

24

26

28

30

32

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Xn

Xn−1

qq

qqq

qq

q

qq

qqq

qq

q

qq

q q

q

q q

q

q

q

q qq

qq

q

Inne, często używane generatory to generator multyplikatywny (we wzo-rze (3.5.4) kładziemy b = 0), generatory odwrotne, generatory oparte na re-jestrach przesuwnych czy też generatory Fibonacciego. Wszystkie one opartesą na operatorze x mod y.

Page 70: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

56 3. Funkcje całkowitoliczbowe

Przeanalizujmy jeszcze wzór (3.5.4). Czy można podać nierekurencyjnywzór na Xn? Podstawmy α′ = α/M, a′ = a, b′ = b/M, oraz Yn = Xn

M , n ≥ 0.Wtedy (z Twierdzenia 3.4.1. (iii)) (3.5.4) jest równoważne

LCG(1, a′, b′, α′) :

Yo = α′,Yn = (a′Yn−1 + b′) mod 1 = a′Yn−1 + b′, n > 1,

gdzie Xn = YnM,n ≥ 0. Ponieważ a′ jest liczbą całkowitą, więc

Yn = (a′(a′Yn−2 + b′ mod 1) + b′) mod 1

= (a′(a′Yn−2 + b′)− a′⌊a′Yn−2 + b′⌋+ b′) mod 1

= (a′2Yn−2 + a′b′ + b′) mod 1.

Rozumując analogicznie dalej, widzimy, że jeśli Zn jest rozwiązaniem reku-rencji

Zo = α′,Zn = a′Zn−1 + b′, n > 1,

(3.5.5)

toYn = Zn mod 1 = Zn, n ≥ 0.

Rekurencję (3.5.5) możemy rozwiązać metodą czynnika sumacyjnego, kła-dąc we wzorze (2.2.1) a0 = 1, c0 = α′, an = 1, bn = a′, n ≥ 1, cn = b′ mamysn = 1/a′,n ≥ 1, ponadto z (2.2.3) otrzymujemy

Zn =11a′n

(1

a′a′α′ +

n∑

k=1

1

a′kb′)

= α′a′n +a′n − 1

a′ − 1b′

=αan + an−1

a−1 b

M,

a zatem z Twierdzenia 3.4.1 (iii)

LCG(M,a, b, α) :

Xo = α,

Xn = (anα+ an−1a−1 b) mod M. n > 1.

3.6. Zapisy liczb naturalnych w różnych podstawach liczenia

Nasz układ liczenia ma podstawę 10 ale w komputerze informacja jestzapisywana w systemie o podstawie 2 (binarnie) lub o podstawie 16 (heksa-decymalnie). Sposób zapisu liczb wyznacza też w jaki sposób wykonujemy

Page 71: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.6. Zapisy liczb naturalnych w różnych podstawach liczenia 57

pisemnie obliczenia, inaczej bowiem wtedy wyglądają tabliczki mnożeniai dodawania. O binarnym układzie liczenia pisaliśmy w Uwadze 1.2.4, tu-taj omówimy problem zamiany zapisów liczb z układów liczenia o różnychpodstawach.Dawniej, w niektórych krajach, używano innych systemów liczenia niź

dziesiętny, na przykład Babilończycy używali systemu 60-tnego, stąd dodziś godzina ma 60 minut, minuta 60 sekund itp. Również pozostałościąinnych niż 10-tne sposoby liczenia są takie pojęcia jak ”kopa” czy ”tuzin”.Liczby w układzie o podstawie p = 2, 3, . . . wykorzystują p cyfr, stąd liczbęw układzie dwójkowym zapisujemy korzystając z cyfr 0, 1, siódemkowym0, 1, 2, 3, 4, 5, 6 a szesnastkowym 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,B,C,D,E, F,gdzie A = 10, B = 11, C = 12,D = 13, E = 14, F = 15.

Definicja 3.6.1. Mówimy, że liczba rzeczywista x ma zapis w układzie opodstawie p równy ±(cncn−1...c1c0, c−1c−2...c−k)p jeżeli

x = sign(x)(cncn−1...c1c0, c−1c−2...c−k)p = sign(x)n∑

i=−k

cipi. (3.6.6)

przy czym dopuszczamy k =∞.

Podobnie jak w dziesiętnym układzie liczenia w dowolnym układzie li-czenia liczby wymierne mają zawsze skończony okres a liczby niewymiernenie. Na przykład

2

3= (0.(6))10 = (0.(10))2 = (0, (31))5 = (0.(4))7 = (0.(52))8 = (0.(A))16

−3725, 125 = −(3725, 125)10 = −(111010001101, 001)2= −(104400, (03))5 = −(13601, (06))7 = −(7215, 1)8 = −(21A5, 16)16

203, 22 = (203, 22)10 = (11001011, 0(01110000101000111101))2 = (1303, 10(2))5

= (410, (1353))7 = (313, 1(60507534121727024365))8 = (CB, 3852)16

W jaki sposób zamieniać liczby zapisane w jednej podstawie na liczbyzapisane w innej podstawie. Zajmijmy się najpierw liczbami naturalnymi.Jeśli x =

∑nj=0 cjp

j , oraz 0 ≤ cj < p, j ≥ 0 to ⌊xp ⌋ =∑n

j=1 cjpj−1 oraz

x mod p = c0. Stąd, aby zapisać liczbę 203 w układzie dwójkowym obli-czamy część całkowitą ilorazu ⌊2032 ⌋ = 101 oraz 203 mod 2 = 1 = c0, dalejznowu ⌊1012 ⌋ = 50 i 101 mod 2 = 1 = c1. Możemy ten proces opisać wtabelce

203 101 50 25 12 6 3 11 1 0 1 0 0 1 1

a stąd 20310 = (11001011)2 , (zauważ, że cyfry piszemy w odwrotnejkolejności).

Page 72: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

58 3. Funkcje całkowitoliczbowe

Niech teraz y będzie ułamkiem o podstawie p, to znaczy y =∑−1

i=−k cipi

oraz 0 ≤ ci < p, i ≤ −1, wtedy ⌊yp⌋ = c−1 a yp − ⌊yp⌋ =∑−1

i=−k+1 cipi+1.

W przypadku y = 0, 22 mamy 2y = 0, 44 i c−1 = 0, dalej 2 · 0, 44 = 0, 88i c−2 = 0, 2 · 0, 88 = 1, 76 i c−3 = 1 teraz 2 · 0, 76 = 1, 52 i c−4 = 1 itd.Możemy ten proces przedstawić w formie tabelki

0,22 0,44 0,88 0,76 0,52 0,04 0,08 0,16 0,32 0,64 0,28 0,560 0 1 1 1 0 0 0 0 1 0 1

︸ ︷︷ ︸

0,12 0,24 0,48 0,96 0,92 0,84 0,68 0,36 0,72 0,44 . . .0 0 0 1 1 1 1 0 1 0 . . .

︸ ︷︷ ︸

a stąd 0, 2210 = (0, 0(01110000101000111101))2 . Znak liczby przepisujemybez zmian.Rozważania te prowadzą do następującego algorytmuAlgorytm konstrukcji rozwinięcia liczby n o podstawie bDane: Liczba x.Wynik: Napis ±(cn, cn−1, cn−2, ..., c0, c1c2c3...ck)p.Uwaga: Należy pamiętać, że gdy liczba x ma rozwinięcie okresowe lub

nieskończone części ułamkowej to obliczanie tej części nam się zapętli, do-brze by było dorzucić licznik ograniczający ilość tych cykli!Uwaga: W rzeczywistych obliczeniach pojawiają się nam dość szyb-

ko błędy zaokrągleń, (błędy wynikające z utraty cyfr znaczących ułamkówreprezentujących liczby zmiennopozycyjne, powodowane koniecznością ob-cięcia wyników obliczeń w związku ze skończoną reprezentacją komputerowąliczb), stąd dobrze by było wykonać obliczenia możliwie dużej precyzji!

Algorytm 3.4. Konstrukcja rozwinięcia liczby n o podstawie bi f x<0 then znakx="−" e l s e znakx="+";x1=Abs(x ) ; in tx=⌊x1⌋ ; decx=x1−i n tx ;

c="";Część całkowitawhi le in tx 6=0

q=in tx mod p ;i f q>9 then

c := Chr(q+22) & c Dodajemy literę A=10, B=11 ...

e l s ec := Str ( q ) & c ; Dodajemy cyfrę

in tx := ⌊ intxp ⌋ ;

Page 73: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

3.6. Zapisy liczb naturalnych w różnych podstawach liczenia 59

Część ułamkowac=c & " ," ;whi le decx 6=0

q=⌊p∗decx ⌋i f q>9 then

c := c & Chr(q+22) Dodajemy literę A=10, B=11... e l s e

c := c & Str ( q ) ; Dodajemy cyfrędecx := p∗decx−⌊p∗decx⌋ ;

Dodaj znak c := znakx & c ;Wynikiem jest łańcuch c

Przy obliczaniu liczby (w układzie dziesiętnym) na podstawie jej roz-winięcia korzystamy ze wzoru (3.6.6). Dobrze jest wtedy wykorzystać takzwany schemat Hornera, stosowany do obliczeń wartości wielomianu w ja-kimś punkcie. Zwróćmy, uwagę, że dla zadanej tablicy c[i], i = −k, . . . n,algorytm

s :=c [ 0 ] ; p1:=p ;f o r i :=1 to n

s := s+c [ i ]∗ p1 ;p1:=p1∗p ;

p1:=1/p ;f o r i :=1 to k

s := s+c[− i ]∗ p1 ;p1:=p1/p ;

wymaga 2 ∗ (n + k) + 1 operacji mnożenia/dzielenia i n + k dodawania,podczas gdy

s :=c [ n ] ;f o r i :=n−1 to 1 step −1

s := s ∗p+c [ i ] ;s1 :=c[−k ] ;f o r i :=−k+1 to −1

s1 := s1 /p+c [ i ] ;s := s ∗p+s1/p+c [ 0 ] ;

Page 74: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

60 3. Funkcje całkowitoliczbowe

tylko n+ k − 2 mnożeń/dzieleń i tyle samo dodawania. Tak więc przy obli-czaniu korzystamy ze wzoru

n∑

i=−k

cipi =

(

. . .(

(c−k/p + c−k+1)/p + c−k+2

)

/p+ . . . c−1

)

/p+ c0

+

(

. . .(

(cn ∗ p+ cn−1) ∗ p+ cn−2

)

∗ p+ . . .+ c1

)

∗ p.

Podsumowanie• Najczęściej używane funkcje całkowitoliczbowe to “podłoga” i “su-fit”. Mają one szereg interesujących własności i są tak ważne, że więk-szość języków programowania implementuje te funkcje.

• W oparciu o funkcję “podłoga” można skonstrować nieskończoną repre-zentację liczb rzeczywistych taką, że liczba αma reprezentację Spec(α) =⌊α⌋, ⌊2α⌋, ⌊3α⌋, ⌊4α⌋, ....Wwielu zastosowaniach reprezentacja ta mo-że być interesującą alternatywą innych reprezentacji.

• Funkcje “podłoga ” i “sufit” często występuje w rekurencjach dotyczą-cych analizy funkcjonowania algorytmów czy też w dokładniejszej ana-lizie problemu Flawiusza.

• Inna funkcja całkowitoliczbowa - operator dwuargumentowy mod może-my rozszerzyć do funkcji rzeczywistej. Operator ten jak i omawiane tutajfunkcje całkowitoliczbowe często występują w wielu algorytmach takichjak zamiana podstawy liczenia czy generowanie liczb pseudolosowych.

Page 75: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Rozdział 4

Teoria liczb

4.1. Podzielność, NWD i NWW . . . . . . . . . . . . . . . . 624.2. Liczby pierwsze . . . . . . . . . . . . . . . . . . . . . . 654.3. Reprezentacja liczb wymiernych - drzewo

Sterna - Brocota . . . . . . . . . . . . . . . . . . . . . 704.4. Kongruencje . . . . . . . . . . . . . . . . . . . . . . . . 734.5. Funkcja φ Eulera i algorytm RSA . . . . . . . . . . . . 76

Page 76: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

62 4. Teoria liczb

4.1. Podzielność, NWD i NWW

Niech m,n ∈ Z. Przez m|n oznaczamy fakt, że istnieje liczba całkowitak taka, że n = mk (np. −3|12). Podobniem 6 |n (3 6 |−7). Dodatnią całkowitąliczbę p nazywamy pierwszą, jeżeli ma dokładnie dwa różne dzielniki: 1 i p.Stąd 1 nie jest liczbą pierwszą (dzieli się tylko przez 1) ale liczbami pierw-szymi są m.in. 2, 3, 5, 7, 11, 13, 17, 19, .... Dla liczby pierwszej p i liczbynaturalnej r i całkowitej n mówimy, że pr jest dokładnym dzielnikiem n(pr||n) jeśli pr|n i pr+16 |n.

Twierdzenie 4.1.1. Dla dowolnych całkowitych a, b, c,m, n, oraz natural-nych d, e, p, r zachodzi:

(i) a|b =⇒ (a ≤ b) ∧ ( ba

∣∣∣b) ∧ (

k∈Z ak|bk) ∧ (∧

c∈N a|bc),(ii) a|b ∧ b|c =⇒ a|c,(iii) a|b ∧ a|c ⇐⇒ a|(bm+ cn) ∧ a|c,(iv) a|b ∧ b|a =⇒ a = ±b,(v) a|b =⇒ am|bm,(vi) pr||d ∧ ps||e =⇒ pr+s||de,(vii) pr||d ∧ ps||e =⇒ pminr,s||(d + e).

Definicja 4.1.1. Największym wspólnym dzielnikiem i najmniejszą wspólnąwielokrotnością liczb m i n nazywamy

NWD(m,n) = maxk : k|m ∧ k|n,NWW (m,n) = mink : m|k ∧ n|k.

Twierdzenie 4.1.2. Dla dowolnych całkowitych a, b, c, zachodzi:

(i) a|b ∧ a|c =⇒ a|NWD(b, c),(ii) a|c ∧ b|c =⇒ NWW (a, b)|c,(iii) NWD(d, e) = NWD(e mod d, d) ⇐⇒ d < e,

(iv) NWD(a, b) = c =⇒ NWD(ac ,bc) = 1,

(v) NWD(a+ bc, b) = NWD(a, b),(vi) a, b, c 6= 0 =⇒ NWD(ac, bc) = |c|NWD(a, b),(vii) NWD(a, c) = NWD(b, c) = 1 =⇒ NWD(ab, c) = 1.

Szczególnie interesująca jest własność (iii) będąca konsekwencją Twier-dzenia 4.1.1. (iii) i stanowiąca podstawę rekurencyjnęj definicji NWD:

Page 77: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.1. Podzielność, NWD i NWW 63

NWD(n, 0) = n,NWD(n,m) = NWD(m,n mod m),

która jest podstawą obliczania NWD(n,m) dla dowolnych liczb całko-witych n i m, następującym algorytmem

Algorytm 4.1. Algorytm Euklidesa

i n t e g e r funct ion NWD(n ,m: i n t e g e r ) ;k : i n t e g e r ;i f m=0 then

NWD:=ne l s e

NWD:=NWD(m, n mod m) ;

Przykład 4.1.1. Chcemy obliczyć NWD(28, 36) wtedy mamy

28 = 0 · 36 + 28,

36 = 1 · 28 + 8,

28 = 3 · 8 + 4,

8 = 2 · 4 + 0,

lub w skrócie NWD(28, 36) = NWD(36, 28) = NWD(28, 8) = NWD(8, 4) =NWD(4, 0) = 4.Analogicznie jeśli chcemy obliczyć NWD(−15, 25) to

−15 = −1 · 25 + 10,

25 = 2 · 10 + 5,

10 = 2 · 5 + 0,

czyli NWD(−15, 25) = NWD(25, 10) = NWD(10, 5) = NWD(5, 0) = 5.

NatomiastNWW (n,m) obliczamy z tożsamości NWW (n,m) = nmNWD(n,m) .

Uwaga 4.1.3. Dla dowolnych liczb całkowitych m,n istnieją liczby całko-wite m′, n′ takie, że

m′m+ n′n = NWD(n,m).

Page 78: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

64 4. Teoria liczb

Dowód. Jeżeli m = 0 to bierzemy m′ = 0, n′ = 1 w przeciwnym raziestosujemy tę metodę rekurencyjnie dla r = n mod m i m zamiast m i n. Zzałożenia rekurencyjnego istnieję liczby r′ i m′ takie, że

(m′ − ⌊ nm⌋r′)m+ r′n = r′(n − ⌊ n

m⌋m) +m′m = r′(n mod m) +m′m

= NWD(n mod m,m) = NWD(n,m).

Przykład 4.1.2. W przykładzie 4.1.1 mamy

8 = 1 · 36 + (−1) · 284 = 28− 3 · 8 = 28− 3 · (36− 28) = (−3) · 36 + 4 · 28.

Następujący algorytm wylicza liczby m′ i n′ spełniające Uwagę 4.1.3:

Algorytm 4.2. Rozszerzony algorytm Euklidesai n t e g e r funct ion NWD(n ,m, n ’ ,m’ : i n t e g e r ) ;

n0 , m0, r , s , new_r , new_s , r e sz ta , i l o r a z : i n t e g e r ; Dane są liczby n i m. Program zwraca NWD(n,m) i wyliczone n’ oraz m’. n0:=n ; m0:=m;n ’ :=1 ; m’ :=0 ;r :=0; s :=1; Utrzymujemy n ’∗n+m’∗m=n0 oraz r ∗n+s ∗m=m0 whi le (m0<>0)

r e s z t a :=n0 mod m0;i l o r a z :=⌊ n0/m0 ⌋ ;n0:=m0;m0:= r e s z t a ;new_r:=n’− i l o r a z ∗ r ;new_s:=m’− i l o r a z ∗ s ;n ’ := r ;m’ := s ;r :=new_r ;s :=new_s ;

Wtedy NWD(n ,m)=n0=n ’∗n+m’∗m NWD:=n0 ;

Uwaga 4.1.4. Zauważmy, że dla ustalonej liczby naturalnej n:∑

m∈N :m|nam =

m∈N :m|na n

m.

Page 79: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.2. Liczby pierwsze 65

4.2. Liczby pierwsze

Jak wspomniano wcześniej liczba naturalna p jest liczbą pierwszą, jeślima dokładnie dwa dzielniki 1 i p. Zestawimy liczby pierwsze mniejsze od1000 w następującej tabelce:

Tabela 4.1. Liczby pierwsze mniejsze od 1000.

2 3 5 7 11 13 17 19 23 2931 37 41 43 47 53 59 61 67 7173 79 83 89 97 101 103 107 109 113127 131 137 139 149 151 157 163 167 173179 181 191 193 197 199 211 223 227 229233 239 241 251 257 263 269 271 277 281283 293 307 311 313 317 331 337 347 349353 359 367 373 379 383 389 397 401 409419 421 431 433 439 443 449 457 461 463467 479 487 491 499 503 509 521 523 541547 557 563 569 571 577 587 593 599 601607 613 617 619 631 641 643 647 653 659661 673 677 683 691 701 709 719 727 733739 743 751 757 761 769 773 787 797 809811 821 823 827 829 839 853 857 859 863877 881 883 887 907 911 919 929 937 941947 953 967 971 977 983 991 997

4.2.1. Podstawowe twierdzenie arytmetyki

Twierdzenie 4.2.1. Podstawowe twierdzenie arytmetyki. Każda licz-ba naturalna n 6= 1 może być w sposób jednoznaczny przedstawiona jakoiloczyn liczb pierwszych

n = p1 · p2 · ... · pm =m∏

k=1

pk, ,

gdzie p1 ≤ p2 ≤ p3 ≤ ... ≤ pm jest niemalejącym ciągiem liczb pierwszych.Jeżeli przyjąć, że

∏0k=1 pk = 1 to do tej własności można włączyć n = 1.

Dowód. Indukcja względem n.Krok 1. Dla n = 1, p1 = 1 twierdzenie prawdziwe.Krok 2. Załóżmy, że twierdzenie jest prawdziwe dla wszystkich liczb

naturalnych mniejszych od n. Jeśli liczba n nie ma dzielników różnych od 1 in to jest ona liczbą pierwsz a. Jeśli ma dzielnik k, 1 < k < n, który jest liczbązłożoną, to z założenia indukcyjnego zarówno k jakl i n/k można przedstawić

Page 80: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

66 4. Teoria liczb

jako iloczyny liczb pierwszych a więc i n = k · nk można przedstawić jakoiloczyn liczb pierwszych.Załóżmy, że n nie ma jednoznacznego rozkładu (czyli ma dwa różne

rozkłady. Zatem n = p1p2...pm, p1 ≤ p2 ≤ ... ≤ pm oraz n = q1q2...qt, q1 ≤q2 ≤ ... ≤ qt. Można przyjąć, że pj = qj, j < i, i z symetrii pi < qi. Wtedy

n = p1 · p2 · ... · pi−1︸ ︷︷ ︸

c

a︷ ︸︸ ︷pi · ... · pm

n = q1 · q2 · ... · qi−1︸ ︷︷ ︸

c

b︷ ︸︸ ︷qi · ... · qt

Mamy a = b oraz NWD(a, b) = a = b a wobec tego jeśli pi|a to i pi|b a wten sposób dochodzimy do sprzeczności, bo pi 6= qi (pi < qi) a więc pi niemoże być żadnym z dzielników qi...qt.

Jeżeli zliczymy krotności występowania kolejnych liczb pierwszych (p1występuje d1-razy, itd..) to powyższy wynik możemy sformułować

Twierdzenie 4.2.2. Skrócona wersja podstawowego twierdzenia aryt-metyki. Każdą liczbę naturalną n można jednoznacznie przedstawić w po-staci

n =m∏

k=1

pdkk ,

gdzie p1 < p2 < ... < pm jest rosnącym ciągiem liczb pierwszych a di, 1 ≤i ≤ m ciągiem dodatnich liczb naturalnych.

Na przykład:

6 = 2× 3,

245 = 5× 72,

10! = 28 × 34 × 52 × 7,

68 718 821 377 = (217 − 1)× (219 − 1).

Największą obecnie znaną liczbą pierwszą jest 243 112 609−1.Ma ona 12 978 189i otrzymano ją w sierpniu 2008 roku.Problem znalezienia przedstawienia dowolnej liczby naturalnej n w po-

staci iloczynu liczb pierwszych nosi nazwę problemu faktoryzacji i problemten doczekał się wielu algorytmów. Jeżeli w faktoryzacji jedynym pierwszymskładnikiem jest n to w konkluzji otrzymujemy stwierdzenie, że n jest liczbąpierwszą, w pozostałych przypadkach n nie jest liczbą pierwszą. Algorytmy

Page 81: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.2. Liczby pierwsze 67

faktoryzacji służą więc też do testowania, czy dana liczba jest pierwsza, sąone jednak mało wydajne. Najprostszy taki algorytm prezentujemy poniżej

Algorytm 4.3. Test dzielników

Dane: Liczba naturalna n ≥ 2,

Wynik: j (najmniejszy pierwszy czynnik n) lub stwierdzenie, że n jest liczbąpierwszą

j := 2 ;whi le j≤ √

n

Jeśli j|n wtedy j jest najmniejszym pierwszym czynnikiem ni stop n nie jest liczbą pierwszą

j := j + 1 ;

Nie znaleziono pierwszych czynników n więc n jest liczbą pierwszą

Oczywiście koszt (ilość obrotów pętli) tego algorytmu wynosi w jagor-szym przypadku

√n. Można ten koszt trochę zmniejszyć rozważając dla

j ≥ 3 co drugą a nie kolejne liczby (j = 2, 3, j + 2). To ulepszenia ma zwią-zek z sitem Eratostenesa które omówimy w podrozdziale 4.2.3. Zwróćmy teżuwagę, że nie zatrzymując algorytmu po znalezieniu najmniejszego dzielni-ka n, możemy łatwo otrzymać wszystkie dzielniki danej liczby n. Formalnieodpowiada to zastąpieniu instrukcji ”stop” instrukcją ”wydaj j i n/j”.

4.2.2. Reprezentacja liczb naturalnych

Podajmy kilka kolejnych liczb pierwszych:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, ...

i ponumerujmy te liczby, tak że n(2) = 1, n(3) = 2, n(5) = 3, n(7) = 4, ....Z każdą liczbą naturalną n o przedstawieniu n =

∏mk=1 p

dkk , kojarzymy ciąg

< 0, .., 0, d1, 0, ..0, d2, ... > gdzie odpowiednie liczby di znajdują się na pozy-cji n(pi), 1 ≤ i ≤ m. Tak więc na przykład:

9 = 32 =< 0, 2, 0, ... >,

14 = 2 · 7 =< 1, 0, 0, 1, 0, ... >,

24 = 23 · 3 =< 3, 1, 0, ... > .

Kolejne elementy tej reprezentacji oznaczać będziemy przez n =< n1, n2, n3, ... > .Łatwo widać, że wszystkie wyrazy od pewnego miejsca są równe 0, oraz że

Page 82: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

68 4. Teoria liczb

(k = m · n) ⇐⇒ (∀p=1,2,...kp = mp + np),

(k = NWD(m,n)) ⇐⇒ (∀p=1,2,...kp = minmp, np),(k = NWW (m,n)) ⇐⇒ (∀p=1,2,...kp = maxmp, np).

Definicja 4.2.1. Liczby n,m ∈ Z nazywamy względnie pierwszymi m⊥njeśli NWD(n,m) = 1.

Uwaga 4.2.3.

(m⊥n) ⇐⇒ (∀p=1,2,...min(np,mp) = 0, )

(m⊥n) ⇐⇒ (∀p=1,2,...npmp = 0.)

4.2.3. Własności i wyznaczanie liczb pierwszych

Ile jest liczb pierwszych i jak je możemy wyznaczać? Na pierwszą częśćpytania daje następujący wynik sformułowany w formie hipotezy przez Car-la Friedricha Gaussa w 1792 roku

Twierdzenie 4.2.4. (Vallee Poussin, Jacques Hadamard). Niech pn będzien-tą liczbą pierwszą a π(x) ilością liczb pierwszych mniejszych bądź równychx. Wtedy

pn ∼ n ln(n), gdy n→∞,

π(x) ∼ x

ln(x), gdy x→∞.

Symbol f(n) ∼ g(n) oznacza, że limn→∞f(n)g(n) = 1, i dokładniej będzie

omawiany w podrozdziale 7.2. Jedną z metod wyznaczania kolejnych liczbpierwszych jest Algorytm 4.3 (zob. uwaga na końcu podrozdziału 4.2.1).Jest to jednak bardzo mało efektywny algorytm. Inną metodę zaproponowałEratostenes w III wieku pne. Zaproponował on następującą procedurę:

Algorytm 4.4. Sito Eratostenesa

(a) Ustaw liczby 2, 3, 4, 5, ..., N w rosnący ciąg i przejdź na początek tegociągu.

(b) Weź kolejną nieskreśloną liczbę k i skreślaj jej wielokrotności 2k, 3k, . . . ,mniejsze od N/2. Postępuj tak dopóki k ≤ N/2.

(c) Nieskreślone liczby w tym ciągu tworzą ciąg liczb pierwszych nie większychniż N

Przykład zastosowania tego algorytmu dla N = 20 podajemy w nastę-pującej tabelce

Page 83: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.2. Liczby pierwsze 69

Tabela 4.2. Sito Eratostenesa.

2 3 64 5 66 7 68 9 610 11 612 13 614 15 616 17 618 19 6202 3 64 5 66 7 68 69 610 11 612 13 614 615 616 17 618 19 6202 3 64 5 66 7 68 69 610 11 612 13 614 615 616 17 618 19 6202 3 64 5 66 7 68 69 610 11 612 13 614 615 616 17 618 19 620

W ten sposób otrzymujemy następujący ciąg liczb pierwszych mniejszychod 20: 2, 3, 5, 7, 11, 13, 17, 19.Jak widać opisana procedura jest zdecydowanie efektywniejsza od Algo-

rytmu 4.3 jednak kosztem dużej (rzędu N) pamięci.Na szczególną uwagę zasługuje zbiór liczb postaci M(p) = 2p − 1, gdzie

p jest liczbą pierwszą. Liczby te nazywamy liczbami Mersenne’a . Dla nie-których liczb pierwszych są to też liczby pierwsze. Podamy bez dowodu:

Twierdzenie 4.2.5. Jeżeli liczba pierwsza p spełnia test Lucasa-Lehmera,to znaczy

Sp−2 ≡ 0 (mod M(p)),

gdzie

Sk =

4, gdy k = 0,S2k−1 − 2, gdy k 6= 0,

to M(p) jest liczbą pierwszą.

co prowadzi do algorytmu:

Algorytm 4.5. Testowanie liczb pierwszych Mersenne’aDwie funkcje boolowskie i s \_prime i i s \_mersenne\_prime sprawdzają czy

liczby p i M(p) są pierwsze

boolean funct ion is_prime (p : long in t ) :i : long in t ;i f p=2 then

test Lucasa-Lehmera pracuje tylko dla nieparzystych liczb pierwszychre tu rn True

e l s e i f (p<=1) or (p mod 2=0) then

re tu rn Falsee l s e

f o r i :=3 to sq r t (p )+1 step 2 i f p mod i=0 then re tu rn False ;

r e tu rn True ;

Page 84: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

70 4. Teoria liczb

boolean funct ion is_mersenne_prime (p : long in t ) ;

s , m_p : long in t ;i f p=2 then

re tu rn Truee l s e

m_p:=2^p − 1 ;s :=4;f o r i :=3 to p+1

s :=( s^2−2) mod m_p;re tu rn s=0;

4.3. Reprezentacja liczb wymiernych - drzewo

Sterna - Brocota

Zaczynamy od dwóch “ułamków” 01 , 10. Kolejne liczby w drzewie Sterna-Brocota tworzone są według zasady, że pomiędzy m

n am′n′ wstawiamy m+m′

n+n′ .Każdą liczbę wymierną reprezentujemy opisując drogę jaką należy odbyćod korzenia 1

1 do tej liczby określając literę L jeśli idziemy w lewo i P jeśliidziemy w prawo (zob. Rys. 4.1).

Rysunek 4.1. Drzewo Sterna-Brocota01

10q q q q q q q q q q q q q q q q q q q q q q q q q

qqqqqqqqqqqqqqqqqqqqqqqqq11

12

21

13

23

32

31

14

25

35

34

43

53

52

41

@@@@@@@

@@@@

@@@@

@@

@@

@@

@@

Ciąg symboli L i P jednoznacznie określa pozycję węzła w drzewie. Naprzykład LP 2L = LPPL oznacza, że od 1

1 idziemy w lewo do12 , potem

w prawo do 23 , następnie w prawo do

34 i w końcu w lewo do

57 . A więc

Page 85: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.3. Reprezentacja liczb wymiernych - drzewo Sterna - Brocota 71

LP 2L = 34 . Problem pojawia się z reprezentacją liczby

11 . Możemy dla niej

zarezerwować inny symbol (np. I) lub traktować jako nieskończony ciągLP∞. Wszystkie ułamki występujące w drzewie Sterna-Brocota są nieskra-calne tzn. takie, żem⊥n. Powyżej opisanym drzewem Sterna-Brocota możnareprezentować wszystkie liczby dodatnie wymierne (wtedy reprezentacja jestskończona) oraz liczby niewymierne (wtedy reprezentacja jest nieskończo-na, ale może być okresowa!) z wyjątkiem liczby 1 (jak wyżej wspomniano 1może mieć reprezentację nieskończoną). Ponadto 0 możemy reprezentowaćnieskończonym rowinięciem L∞ a ∞ może być przedstawione jako P∞.

Problem 4.3.1. Jak zamieniać reprezentację ułamka mn na ciągową LP...

i vice versa?

Niech S oznacza dowolny ciąg L i P . Ciąg S będziemy utożsamiać z

macierzą

(

n n′

m m′

)

jeśli ciąg S reprezentuje ułamek m+m′n+n′ w drzewie

Sterna-Brocota (liczbę leżącą pomiędzy mn a

m′n′ ).

Zwróćmy jeszcze, że jeśli

(

n n′

m m′

)

to

SL =

(

n n+ n′

m m+m′

)

=

(

n n′

m m′

)(

1 10 1

)

= S

(

1 10 1

)

SP =

(

n+ n′ n′

m+m′ m′

)

=

(

n n′

m m′

)(

1 01 1

)

= S

(

1 01 1

)

Możemy więc litery L i P utożsamiać odpowiednio z L =

(

1 10 1

)

oraz

P =

(

1 01 1

)

. Uwzględniając tożsamości Lk =

(

1 k0 1

)

oraz P k =

(

1 0k 1

)

k = 1, 2, 3, .... Pozwala to efektywnie obliczać wartość liczbową

na podstawie reprezentacji Sterna-Brocota.Przykład 4.3.1.

LP 2L =

(

1 10 1

)(

1 02 1

)(

1 10 1

)

=

(

3 42 3

)

=2 + 3

3 + 4=

5

7.

Również analizując tę reprezentację możemy otrzymać następujący wy-nik

Twierdzenie 4.3.1.m

n= PS ⇐⇒ m− n

n= S, jeśli m > n,

Page 86: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

72 4. Teoria liczb

m

n= LS ⇐⇒ m

n−m= S, jeśli m < n.

Wynik ten prowadzi do następującego algorytmu zamiany liczby wy-miernej m

n (z niekoniecznie m⊥n) na ciąg Sterna-Brocota S

Algorytm 4.6. Zamiana liczby wymiernej na reprezentację Sterna-Brocota

S := ’ ’ ;whi le m6=n do

i f m<n thenS:=S & ’L ’ ; n:=n−m

e l s eS:=S & ’P ’ ; m:=m−n

Przykład 4.3.2. Zapisz 125 w reprezentacji Sterna-Brocota.

m = 12 7 2 2 2 1n = 5 5 5 3 1 1S = P P L L P

czyli 125 = P 2L2P.

Jak wspomniano, można rozszerzyć reprezentację Sterna-Brocota na licz-by niewymierne (taka reprezentacja będzie nieskończona). Na przykład

e = PL0PLP 2LPL4PLP 6LPL8PLP 10LPL12PL....

Algorytm zamiany dowolnej liczby niewymiernej α na ciąg Sterna-Brocota:

Algorytm 4.7. Zamiana liczby niewymiernej na reprezentacjęSterna-Brocota

S := ’ ’ ;whi le True do

i f α<1 thenS:=S & ’L ’ ; α:=α/(1−α)

e l s eS:=S & ’P ’ ; α:=α−1

Problem 4.3.2. Ile wynosi iloczyn liczby zapisanej w konwencji Sterna-Brocotaprzez liczbę w której L zostało zamienione na P i vice versa, tzn. dla k1, k2, ..., kn ∈N ,

Lk1P k2Lk3 ...P kn · P k1Lk2P k3 ...Lkn =?

Page 87: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.4. Kongruencje 73

a ile wynosi

Lk1P k2Lk3 ...P kn + LP k1−1Lk2P k3 ...Lkn =?

Problem 4.3.3. Jak będzie wyglądać drzewo Sterna-Brocota dla początko-wego ciągu −1

0 , 10 i jak przeliczać reprezentację tego drzewa na reprezen-tację opisaną w tym podrozdziale? (wyjątkowo 0

0 w pierwszym kroku zamie-niamy na 0

1)

4.4. Kongruencje

Wiadomo jaka są cechy podzielności liczb naturalnych przez 2, 3, 4, 9,niektórzy znają cechy podzielności przez 11. Czy jednak istnieje jednolitametoda wyprowadzania wszystkich cech podzielności liczb?

Definicja 4.4.1. Mówimy, że liczba całkowita a przystaje do liczby całko-witej b modulo m (a ≡ b (mod m)) jeżeli (a mod m) = (b mod m) lubrównoważnie m|(a− b), (m ∈ N ).

Relacja przystawania modulo m jest, jak łatwo sprawdzić, zwrotna, sy-metryczna i przechodnia. Historycznie stosuje się do przystawania i do resztyten sam zapis mod, utrzymamy tę konwencję zwracając uwagę na różneumieszczenie nawiasów w tych operacjach.

Twierdzenie 4.4.1. Własności kongruencji.(a) a ≡ b (mod m) ∧ c ≡ d (mod m) =⇒ a± c ≡ b± d (mod m)(b) a ≡ b (mod m) ∧ c ≡ d (mod m) =⇒ a · c ≡ b · d (mod m)(c) a ≡ b (mod m) =⇒ an ≡ bn (mod m), n ≥ 1,(d) ad ≡ bd (mod m) =⇒ a ≡ b (mod m

NWD(d,m))

(e) a ≡ b (mod md) =⇒ a ≡ b (mod m)(f) a ≡ b (mod m) ∧ a ≡ b (mod n) =⇒ a ≡ b (mod NWW (m,n))

Dowód.(a) a−b = mk∧c−d = ml =⇒ (a+c)−(b+d) = m(k+l)∧(a−c)−(b−d) =

m(k − l), k, l ∈ N .(b) a−b = mk∧c−d = ml =⇒ ca−bd = ac−bc+bc−bd = c(a−b)+b(c−d) =

mck +mbl, k, l ∈ N .(c) Indukcyjnie z (b).(d) (a− b)d = km =⇒ (a− b) = k m

NWD(d,m) , k ∈ N .

(e) a− b = mdk, k ∈ N .

(f) a− b = km = ln =⇒ kNWD(m,n)n = lNWD(m,n)

m = t, k, l ∈ N =⇒ a− b =NWW (n,m)t = km = ln.

Page 88: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

74 4. Teoria liczb

Twierdzenie 4.4.2. Niech W (x) będzie wielomianem o współczynnikachcałkowitych:

W (x) = cnxn + cn−1x

n−1 + cn−2xn−2 + ...+ co, ci ∈ Z, i = 1, 2, ..., n.

Wtedya ≡ b (mod m) =⇒W (a) ≡W (b) (mod m).

Dowód.Z kongruencji

a ≡ b (mod m)

wynika (Twierdzenie 4.4.1 (c))

ak ≡ bk (mod m), k = 0, 1, 2, ...n

a uwzględniając oczywistą kongruencję

ck ≡ ck (mod m), k = 0, 1, 2, ....n

z Twierdzenia 4.4.1 (b) otrzymujemy

ckak ≡ ckb

k (mod m), k = 0, 1, 2, ...n (4.4.1)

i sumując (zob. Twierdzenie 4.4.1 (a)) te kongruencje otrzymujemy tezę.

Zwróćmy uwagę, że dowolną liczbę naturalną o cyfrach k = (cncn−1...co)10można przedstawić jako k = Wk(10) = cn10

n + cn−110n−1 + ... + co, jest

to więc wielomian o współczynnikach całkowitych (zobacz podrozdział 3.5).Podobnie, dzieląc cyfry na pary można otrzymać przedstawienie: k = Vk(100) =(c1co)10 + (c3c2)10100

1 + (c5c4)101002 + .... Powiedzmy, że interesuje nas ce-

cha podzielności przez 11. Szukamy kongruencji, w której po jednej stroniewystępuje 10 lub jakaś potęga 10, po drugiej liczba całkowita możliwie małaco do modułu (np. 0,−1, 1,−2, 2) a kongruencja jest wzięta modulo 11. Naprzykład

10 ≡ −1 (mod 11).

Z Twierdzenia 4.4.2 otrzymujemy

Wk(10) ≡Wk(−1) (mod 11).

a z Definicji 4.4.1

(Wk(10) mod 11) = (Wk(−1) mod 11),

czyli k jest podzielne przez 11 wtedy i tylko wtedy, gdy co−c1+c2−c3+... jestpodzielne przez 11. Na przykład dla liczby k = 187926509 mamy Wk(−1) =

Page 89: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.4. Kongruencje 75

9 − 0 + 5 − 6 + 2 − 9 + 7 − 8 + 1 = 1 nie jest podzielne przez 11 ale dlak = 72948179128 jest Wk(−1) = 8−2+1−9+7−1+8−4+9−2+7 = 22jest podzielne przez 11 a zatem i 72948179128 jest podzielne przez 11.

Algorytm szybkiego potęgowania modulo. Załóżmy, że mamy po-liczyć ab mod n. Naiwne postępowanie polega na wymnażaniu b-krotnie ai za każdym razem braniu reszty z dzielenia przez n. Szybszy sposób po-lega na analizie binarnego sposobu zapisu liczby b = (bk−1, bk−2, ..., bo)2 iwykorzystaniu tożsamości:

ab modn =k−1∏

i=0

abi2i

modn.

Przykład 4.4.1. Oblicz 712 mod 10.• 12 = (1100)2,• wyznaczamy wybrane potęgi 7 modulo 10:

72 mod 10 = 49 mod 10 = 9,

74 mod 10 = 9 · 9 mod 10 = 81 mod 10 = 1

78 mod 10 = 1 · 1 mod 10 = 1,

• 712 mod 10 = 78 · 74 mod 10 = 1 · 1 mod 10 = 1.

Przykład 4.4.2. Oblicz 351 mod 13.• 51 = (110011)2 ,• wyznaczamy wybrane potęgi 3 modulo 13:

32 = 9,

34 mod 13 = 9 · 9 mod 13 = 81 mod 13 = 3,

38 mod 13 = 3 · 3 mod 13 = 9,

316 mod 13 = 9 · 9 mod 13 = 81 mod 13 = 3,

332 mod 13 = 3 · 3 mod 13 = 9.

• 351 mod 13 = 332 · 316 · 32 · 31 mod 10 = 9 · 3 · 9 · 3 mod 13 =729 mod 13 = 1.

Ćwiczenie 4.4.1.

(a) Korzystając z kongruencji 100 ≡ −1 (mod 101), opisz cechę podziel-ności przez 101.(b) Jeśli k = (cncn−1...co)8 to jakie warunki powinny spełniać cyfry wtej reprezentacji aby k było podzielne przez 7? (Wykorzystaj kongruencję8 ≡ 1 (mod 7).)

Page 90: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

76 4. Teoria liczb

(c) Korzystając z kongruencji 1000 ≡ −1 (mod 13), opisz cechę podziel-ności przez 13.

4.5. Funkcja φ Eulera i algorytm RSA

Definicja 4.5.1. Dla dowolnej liczby naturalnej n niech φ(n) oznacza ilośćspośród liczb 1, 2, ..., n − 1 tych liczb, które są względnie pierwsze z n.

Na przykład dla n = 6 spośród liczb 1, 2, 3, 4, 5 liczby względnie pierw-sze z 6 to 1 i 5 a więc φ(6) = 2.Podamy teraz sposób obliczania funkcji φ dla dowolnej liczby naturalnej

n:

Twierdzenie 4.5.1. Funkcja Eulera ma następujące własności:

φ(1) = 1,

φ(pk) = pk − pk−1, dla dowolnej liczby pierwszej p i k ∈ N ,φ(n ·m) = φ(n) · φ(m), jeśli n⊥m.

Ostatni warunek nazywany jest multyplikatywnością funkcji φ, jednakta funkcja jest multyplikatywna tylko dla względnie pierwszych czynnikówa nie dla dowolnych. Pokażemy na przykładzie jak obliczyć funkcję Euleraw oparciu o Twierdzenie 4.5.1.

Przykład 4.5.1. Oblicz φ(720). Rozkładamy 720 na czynniki pierwsze iotrzymujemy 720 = 24325 a ponieważ NWD(24, 32, 5) = 1, więc φ(720) =φ(24325) = φ(24)φ(32)φ(5) i teraz z drugiej własności φ(720) = (24 −23)(32 − 31)(51 − 50) = (16 − 8)(9− 3)(5 − 1) = 192.

Funkcja φ ma duże zastosowanie w kryptografii. Objaśnimy bliżej tezastosowania.

Twierdzenie 4.5.2. Twierdzenie Eulera. Dla dowolnej liczby natural-nej n > 0 oraz x ∈ N, 0 < x ≤ n− 1 mamy

xφ(n) ≡ 1 (mod n).

oraz jego konsekwencję (dla liczb n będących pierwszymi)

Twierdzenie 4.5.3. Małe Twierdzenie Fermata (1640) Jeśli p jestliczbą pierwszą a x ∈ N,x⊥p to

xp−1 ≡ 1 (mod p).

Z twierdzenia Eulera bezpośrednio otrzymujemu:

Page 91: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.5. Funkcja φ Eulera i algorytm RSA 77

Twierdzenie 4.5.4. Jeśli b ≡ 1(mod φ(n)) to ab ≡ a(mod n).

Dowód. Ponieważ dla pewnego k ∈ N, kφ(n) = b − 1 więc z faktu, że

aφ(n) ≡ 1(mod n) mamy aφ(n) b−1

φ(n) ≡ 1b−1φ(n) (mod n) a stąd (po wymnożeniu

kongruencji stronami przez a) teza.

Algorytm RSA (Rivest, Shamir, Adleman).

1. Generowanie kluczy(i) Znajdź dwie duże liczby pierwsze korzystając z sieci Eratostenesa dlawyszukiwania małych liczb pierwszych i testu Lukasa-Lehmera dlaweryfikacji czy odpowiadające im liczby pierwsze Mersenne’a są teżpierwsze (Algorytmy 4.4 i 4.5), Oznaczmy je jako p i q.

(ii) Oblicz n = p · q oraz φ(n) = (p − 1) · (q − 1).(iii) Znajdź liczbę e względnie pierwszą z φ(n) wykorzystując AlgorytmEuklidesa 4.1 (w pętli wypróbowujemy kolejne liczby nieparzyste zjakiegoś podprzedziału przedziału (1, n)). Liczba ta powinna być nie-parzysta i spełniać warunek 1 < e < n.

(iv) Wykorzystując rozszerzony algorytm Euklidesa (Algorytm 4.2) znajdźliczbę d taką, że

de ≡ 1 (mod φ(n)),

to znaczyde+ kφ(n) = 1 = NWD(e, φ(n)),

dla pewnej liczby całkowitej k. Jeśli w algorytmie otrzymamy liczbę dujemną to wykorzystując fakt, że również

(d+ lφ(n))e+ (k − le)φ(n) = 1,

dla dowolnej naturalnej liczby l możemy uzyskać liczbę(v) Parę liczb (n, e) nazywamy kluczem publicznym a parę (n, d) kluczemprywatnym. Klucz publiczny możemy jawnie przekazywać wszystkimzainteresowanym a klucz prywatny przechowywany jest pod ścisłymnadzorem (w sejfie). Wartości p i q ”niszczymy” aby nie wpadły wniepowołane ręce.

2. Szyfrowanie danych kluczem publicznym (n, e) RSA(i) Otrzymujemy od adresata klucz publiczny w postaci pary liczb (n, e).(ii) Wiadomość do zaszyfrowania zamieniamy na liczby naturalne t,które muszą spełniać nierówność 0 ≤ t < n. Można to wykonać wnastępujący sposób: Dzielimy komunikat (zakodowany kodami ASCIIlub innymi np. UNICODE) na porcje i korzystając z algorytmu za-miany podstawy (Algorytm 3.4) zapisujemy je w układzie liczenia opodstawie n.

Page 92: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

78 4. Teoria liczb

(iii) Na tak otrzymanych liczbach wykonujemy operację szyfrowania iotrzymujemy liczby

c = te mod n,

wykorzystując algorytm szybkiego potęgowania modulo opisany w pod-rozdziale 4.4.

(iv) Liczby c są zaszyfrowaną postacią liczb t (pisać będziemy c = K(t))i przekazuje się je adresatowi wiadomoći. Klucz (n, e) umożliwia ichzaszyfrowanie, lecz nie pozwala ich rozszyfrować.

3. Deszyfrowanie danych kluczem prywatnym (n, d) RSA(i) Otrzymaliśmy zaszyfrowaną wiadomość w postaci ciągu liczb. Po-siadamy klucz publiczny (n, e) oraz konieczny (a udostępniony nampoufnie przez szyfranta) klucz prywatny (n, d). Liczby w otrzymanymciągu muszą spełniać warunek 0 < c < n.

(ii) Liczbę c przekształcamy na jej pierwotną wersję t (zapisywać będzie-my t = D(c)) za pomocą kongruencji:

t = cd mod n,

wykorzystując algorytm szybkiego potęgowania modulo opisany w pod-rozdziale 4.4.

(iii) Z otrzymanej liczby t odtwarzamy wg ustalonego systemu znaki tek-stu. Teraz możemy odczytać przesłaną wiadomość.

Dowód poprawności algorytmu RSA. Ponieważ K(t) = temodn aD(c) = cd modn wi ec D(K(t)) = (temodn)d modn = tdemodn a ponie-waż de ≡ 1(mod φ(n)) wi ec z Twierdzenia 4.5.4 otrzymujemy D(K(t)) =(tdemod n) = t.

Przykład 4.5.2.

Klucz publiczny Niech p = 17, q = 19, część publiczna to n = pq = 323.Wybieramy e = 131 a jak łatwo sprawdzić NWD(e, n) = 1.

Klucz prywatny Poszukujemy liczby d takiej, że de ≡ 1 (mod φ(n)) tzn.131d ≡ 1 (mod 288). Zastosujemy rozszerzony algorytm Euklidesa (Al-gorytm 4.2) otrzymując w poszczególnych obrotach pętli wartości:

Page 93: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

4.5. Funkcja φ Eulera i algorytm RSA 79

n=131, m=288n0 m0 n’ m’ r s reszta iloraz new r new s131 288 1 0 0 1288 131 0 1 1 0 131 0 1 0131 26 1 0 -2 1 26 2 -2 126 1 -2 1 11 -5 1 5 11 -51 0 11 -5 -288 131 0 26 -288 131

a wi ec 11∗131−5∗288 = 1 a stąd d = 11. Zatem część prywatna kluczato (323, 11).

Kodowanie Załóżmy, że chcemy zakodować liczbę t = 7 (musi ona spełniać0 < t < n = 323). Szyfrujemy obliczając K(t) = te mod n dla t = 7.Wszystkie kongruencje, które rozważamy w tym i następnym punkcie sąmod 323 (będziemy ten element opuszczać). Wykorzystujemy tutaj (i wnastępnym podpunkcie) algorytm szybkiego potęgowania modulo opisanyna końcu podrozdziału 4.4.Korzystając z kongruencji 343 = 73 ≡ 20, i 400 = 202 ≡ 77 = 7 · 11,oraz uwzględniając, że NWD(7, 323) = 1, otrzymujemy 75 ≡ 11 a stąd7131 = 7·(75)26 ≡ 7·1126. Ponadto ponieważ 1331 = 113 ≡ 3·13 = 39 więc7131 ≡ 7·112 ·38 ·138. Teraz 1521 = 32 ·132 ≡ 229 więc 7131 ≡ 7·112 ·2294,a ponieważ 52441 = 2292 ≡ 115 wieć 7131 ≡ 7 · 112 · 1152. Ponadto1265 = 11 · 115 ≡ 296 wieć 7131 ≡ 7 · 2962 = 613312 = 1898 · 323 + 258,ostatecznie 7121 ≡ 258 (mod 323). Otrzymaliśmy więc K(7) = 258.

Dekodowanie Chcemy odszyfrować jakiś zaszyfrowany komunikat, powiedz-my K(t) = 258. Mamy D(258) ≡ 258d = 25811 a ponieważ 66564 =2582 ≡ 26 więc 25811 ≡ 258 · 265. Z kolei 676 = 262 ≡ 30 więc 25811 ≡258 · 26 · 302 = 258 · 26 · 900 ≡ 258 · 26 · 254 ≡ 7, stąd D(258) = 7.

Ćwiczenie 4.5.1. Zaszyfruj i odszyfruj komunikaty w schemacie RSA:(a) t = 2, p = 3, q = 5, n =?, e = 5, d =?,(b) t = 7, p = 3, q =?, n = 15, e = 5, d =?,(c) t = 23, p = 17, q = 19, n = 323, e =?, d = 13.

Podsumowanie.• Teoria liczb, najstarsza dyscyplina matematyki, zajmuje się między in-nymi problemami podzielności liczb, wyznaczania liczb pierwszych czyfaktoryzacji liczb. W informatyce spotykamy się często z algorytmamirozwiązującymi te problemy (algorytm Euklidesa, algorytmy faktoryza-cji czy sito Eratostenesa).

• Dzięki podstawowemu twierdzeniu arytmetyki możemy wprowadzić in-teresującą reprezentację liczb naturalnych, szczególnie dogodną dla ta-kich operacji jak mnożenie, dzielenie, NWD(,.,) czy NWW(.,.) natomiast

Page 94: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

80 4. Teoria liczb

niezbyt dobrą dla operacji dodawania i odejmowania. Reprezentacja tapozwala na wykonywanie działań na olbrzymich liczbach.

• Drzewo Sterna-Brocota jest interesującą, często efektywniejszą niż kla-syczna formą binarnej reprezentacji liczb w pamięci komputera.

• Kongruencje pozwalają wyprowadzać szereg nowych cech podzielnościliczb, a więc badać faktoryzację liczb.

• Zarówno kongruencje jak i funkcja Eulera φ(.) ma ogromne zastosowaniew kryptografii. Trudności (obliczeniowe) związane z faktoryzacją dużychliczb powodują, że znajomość dzielnika jakiejś bardzo dużej liczby możebyć podstawą budowy szyfru. W tym rozdziale omówiliśmy najbardziejznany sposób szyfrowania - algorytm RSA.

Page 95: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Rozdział 5

Kombinatoryka

5.1. Permutacje, kombinacje, wariacje . . . . . . . . . . . . 825.2. Podziały zbioru i liczby Stirlinga . . . . . . . . . . . . . 865.3. Współczynniki dwumianowe . . . . . . . . . . . . . . . 90

Page 96: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

82 5. Kombinatoryka

Kombinatoryka to teoria obliczania liczby elementów zbiorów skończo-nych. Historycznie powstanie kombinatoryki jest związane z analizą gierhazardowych, a swój rozwój zawdzięcza rachunkowi prawdopodobieństwa,teorii grafów i teorii informacji.

5.1. Permutacje, kombinacje, wariacje

Problem 5.1.1. Na ile sposobów można utworzyć parę chłopiec-dziewczynkaze zbioru 10-ciu chłopców i 15 dziewczynek? Rozwiązanie tego problemu wy-nika z prawdziwej dla każdych dwóch zbiorów X i Y tożsamości: X × Y =

X · Y , zwanej zasadą mnożenia. Ilość tych sposobów to 150 = 10 · 15gdyż, na miejscu chłopca możemy wstawić jeden z 10 elementów zbioru a namiejscu dziewczynki jeden z 15.

Podajmy jeszcze dwa podstawowe twierdzenia

Twierdzenie 5.1.1. Jeżeli X = k i Y = n, to liczba wszystkich funkcjif : X → Y jest rowna nk.

Dowód. Oznaczmy X = 1, 2, ..., k. Funkcje f : X → Y są ciąga-mi długości k o wyrazach ze zbioru Y . Każdy wyraz można wybrać na nsposobów, wszystkich więc ciągów jest nk.

Twierdzenie 5.1.2. Jeżeli X = k i Y = n, to liczba funkcji różnowarto-ściowych f : X → Y jest równa nk = n(n− 1)...(n − k + 1) (n0 = 1).

Dowód. NiechX = 1, 2, ..., k oraz k ≤ n. Pierwszy wyraz ciągu możnawybrać na n sposobów, drugi na n− 1, a ogólnie i-ty wyraz można wybraćna n − (i − 1) = n − i + 1 sposobów, co dowodzi tezy. Dla k > n nie mafunkcji f : X → Y różnowartościowych.

Twierdzenie 5.1.3. Istnieje dokładnie(nk

)funkcji rosnących f : 1, ..., k →

1, ..., n.Dowód. Każdy taki ciąg możemy utożsamiać ze ściśle rosnącym ciągiem

1 ≤ i1 < i2 < i3 < ... < ik ≤ n, a ilość funkcji różnowartościowych z Xdo Y wynosi nk . Spośród k! funkcji odwzorowujących różnowartościowozbiór 1, 2, .., k na zbiór i1, i2, i3, ..., ik jest dokładnie jedna funkcja ściślerosnąca, tzn. taka, że f(j) = ij , 1 ≤ j ≤ k. Stąd funkcji ściśle rosnących jestdokładnie nk

k! =(nk

).

Twierdzenie 5.1.4. Istnieje dokładnie(n+k−1

k

)funkcji niemalejących ta-

kich, że f : 1, ..., k → 1, ..., n.Dowód. Każdy taki ciąg 1 ≤ i1 ≤ i2 ≤ i3 ≤ ... ≤ ik ≤ n przenumero-

wujemy tak, że otrzymamy uporządkowany ciąg 1 ≤ i1 < i2+1 < i3+2 <

Page 97: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

5.1. Permutacje, kombinacje, wariacje 83

... < ik + k − 1 ≤ n+ k − 1 i teraz mamy ciąg ściśle rosnący a ilość takichciągów, z twierdzenia 5.1.3 wynosi

(n+k−1n−1

)=(n+k−1

k

).

5.1.1. Permutacje

Problem 5.1.2.

⋆ Na ile sposobów można rozmieścić 10 osób na bardzo szerokiej kanapie?⋆ Na ile sposobów można rozmieścić 8 osób wokół okrągłego stołu?⋆ Ile różnych liczb trzycyfrowych można utworzyć z cyfr 2,5,6?⋆ Trzech panów i cztery panie wybierają się na wycieczkę gęsiego. Ilomasposobami można to zrobić, jeśli panowie nie mają sąsiadować z panamia panie z paniami?

Przykład 5.1.1. Permutacje bez powtórzeń zbioru a, b, c. Mamynastępujące permutacje:

abc, acb, bac, bca, cab, cba.

Można je uzyskać rozważając następujące drzewo decyzyjne:

Rysunek 5.1. Permutacje zbioru a, b, c.

pierwsza?

druga? druga? druga?

abc acb bac bca cab cba

?

HHHHHHj

JJJJ

JJJJ

JJJJ

a b c

b c a c a b

Twierdzenie 5.1.5. Liczba permutacji zbioru n różnych obiektów wynosiPn = n!.

Dowód. Dowód wynika z zasady mnożenia. Ze zbioru n elementowegona pierwszym miejscu możemy wybrać jeden spośród n elementów, na dru-gim jeden spośród n−1 elementów (bo 1 element już został wybrany) itd. . . .Natychmiastowy dowód możemy również otrzymać z twierdzenia 5.1.2 kła-dąc X = Y i n = X oraz zauważając, że nn = n!.

Problem 5.1.3.⋆ Dziecko bawi się czterema literkami AAMM . Ile różnych napisów możeułożyć z tych liter?

Page 98: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

84 5. Kombinatoryka

⋆ W urnie są trzy kule oznaczone cufrą 1, cztery cyfrą 2 i dwie cyfrą 3.Wyciągamy losowo wszystkie kule notując ich numery. Ile jest możliwychwyników?

⋆ Na ile sposobów można rozmieścić na 10 miejscach identyczne monetyukładając je orłem do góry lub reszką?

Przykład 5.1.2. Permutacje z powtórzeniami zbioru a, a, b, b. Ma-my następujące permutacje:

aabb, abab, abba, baab, baba, bbaa.

Twierdzenie 5.1.6. Liczba permutacji zbioru k obiektów o krotnościachn1, n2, ..., nk wynosi Pn1,n2,...,nk

n = n!n1!n2!...nk!

, gdzie n = n1 + n2 + ...+ nk.

Dowód. Oznaczmy sobie następująco permutowane elementy: a(1)1 , a(1)2 ,

..., a(1)n1 , a

(2)1 , a

(2)2 , ..., a

(2)n2 , ..., a

(k)1 , a

(k)2 , ..., a

(k)nkgdzie elementy a

(i)j , 1 ≤ j ≤ ni

są nierozróżnialne. Ilość ustawień tak “sztucznie” rozróżnionego ciągu wy-nosi n! = (n1 +n2 + ...+nk)! a ponieważ elementy a

(i)j , 1 ≤ j ≤ ni mogą się

zmieniać na swoich pozycjach na ni! sposobów, więc ilość powtarzającychsię permutacji, z zasady mnożenia, wynosi n1!n2!...nk!.

5.1.2. Kombinacje

Problem 5.1.4.⋆ Na ile sposobów można wybrać 13 kart z talii zawierającej 52 karty?Kolejność wybierania kart nie jest ważna.

⋆ 41 szachistów rozgrywa pierwszą turę turnieju grając dokładnie raz każ-dy z każdym. Ile rozegrano partii ?

⋆ Ile różnych płaszczyzn można przeprowadzić przez 5 punktów w ℜ3 zktórych żadne 4 nie leżą w jednej płaszczyźnie?

Przykład 5.1.3. Kombinacje dwuelementowe bez powtórzeń zbio-ru a, b, c, d to

ab, ac, ad, bc, bd, cd.

Twierdzenie 5.1.7. Ilość kombinacji bez powtórzeń wyboru k elementówspośród n różnych elementów wynosi Ck

n =(nk

).

Dowód. Natychmiastowa konsekwencja Twierdzenia 5.1.3.

Problem 5.1.5.⋆ Mamy cztery rodzaje owoców: jabłka, gruszki, morele i pomarańcze.Tworzymy paczki po pięć owoców w każdej. Ile można otrzymać w tensposób różnych paczek?

Page 99: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

5.1. Permutacje, kombinacje, wariacje 85

⋆ W ciągu roku pewien klient ma wpłacić 8 rat miesięcznych. Iloma spo-sobami można to uczynić?

⋆ Na ile sposobów można utworzyć mieszaniny składające się z co najwy-żej 3 farb mając do dyspozycji 5 farb?

Przykład 5.1.4. Kombinacje dwuelementowe z powtórzeniami zbio-ru a, b, c, d to

aa, ab, ac, ad, bb, bc, bd, cc, cd, dd.

Twierdzenie 5.1.8. Ilość kombinacji z powtórzeniami k elementów spo-śród n różnych elementów wynosi Ck

n =(n+k−1

k

).

Dowód. Dowód wynika z Twierdzenia 5.1.4.

5.1.3. Wariacje

Problem 5.1.6.⋆ Ile można utworzyć 3 - kolorowych flag, gdzie kolory układane są wjednakowych poziomych pasach mając do wyboru 6 barw? Kolejność barwjest istotna (porównaj flagę Polski i Monako).

⋆ Ile można utworzyć liczb parzystych pięciocyfrowych o niepowtarzają-cych się cyfrach?

⋆ Iloma sposobami można przydzielić 4 robotnikom 7 prac zakładając, żekażdy z nich może wykonać tylko jedną pracę?

Przykład 5.1.5. Wariacje dwuelementowe bez powtórzeń zbiorua, b, c, d to

ab, ba, ac, ca, ad, da, bc, cb, bd, db, cd, dc.

Twierdzenie 5.1.9. Ilość wariacji bez powtórzeń k elementów spośród nróżnych elementów wynosi V k

n = n!(n−k)! .

Dowód. Z Twierdzenia 5.1.7 k elementów można wybrać ze zbiorun elementowego na

(nk

)

sposobów a każdy wybrany ciąg można ustawić zTwierdzenia 5.1.5 na k! sposobów, stąd V k

n =(nk

)k! = n!

(n−k)! .

Problem 5.1.7.⋆ Na ile sposobów cztery osoby mogą wysiąść z windy w 10 piętrowymbudynku?

⋆ Na ile sposobów można rozmieścić 5 kapeluszy w 7 szufladach?⋆ Ile można utworzyć róznych liczb 5 cyfrowych z cyfr 0, 2, 4, 6, 8?

Przykład 5.1.6. Wariacje dwuelementowe z powtórzeniami zbiorua, b, c, d to

aa, ab, ba, ac, cc, ca, ad, dd, da, bc, cb, bd, bb, db, cd, dc.

Page 100: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

86 5. Kombinatoryka

Twierdzenie 5.1.10. Ilość wariacji z powtórzeniami k elementów spośródn różnych elementów wynosi V k

n = nk.

Dowód. Dowód jest konsekwencją Twierdzenia 5.1.1.

5.2. Podziały zbioru i liczby Stirlinga

5.2.1. Liczby Stirlinga

Problem 5.2.1. Na ile sposobów można podzielić zbiór a, b, c, d, e tak,aby zawsze były dwa zbiory liczebności (mocy) 1 i jeden zbiór mocy 3. Takipodział nazywamy podziałem 1231.Rozwiązanie. Jest 10 takich podziałów:

a b c, d, e a c b, d, e a d b, c, ea e b, c, d b c a, d, e b d a, c, eb e a, c, d c d a, b, e c e a, b, dd e a, b, c

(5.2.1)

Twierdzenie 5.2.1. Liczba podziałów zbioru n elementowego takich, żejest λ1 klas o liczebności 1jest λ2 klas o liczebności 2

...jest λn klas o liczebności ngdzie n = 1 · λ1 + 2 · λ2 + ...+ n · λn wynosi

P λ1,λ2,...,λn =n!

λ1!λ2!...λn!(1!)λ1(2!)λ2 ...(n!)λn.

Dowód. Potraktujmy permutację typu (λ1, . . . , λn), jako permutacjęzbioru 1, 2, ..., n według następującego wzorca:

(•) . . . (•)︸ ︷︷ ︸

λ1 razy

(••) . . . (••)︸ ︷︷ ︸

λ2 razy

. . . . . . (• . . . •)︸ ︷︷ ︸

λn razy (αn≤1)

.

W miejsce k kropek możemy wstawić k-elementów na k! sposobów.Jednak w ten sposób otrzymamy wielokrotnie te same permutacje. Każdycykl i-elementowy możemy zadać na i sposobów (rozpoczynając od róż-nych elementów). Dodatkowo, zwróćmy uwagę, że w naszym wzorcu do-puszczamy różną kolejność cykli o tej samej długości. λi takich samych cyklii-elementowych może być wybranych na λi! sposobów.

Page 101: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

5.2. Podziały zbioru i liczby Stirlinga 87

Definicja 5.2.1. Przez S(n, k) oznaczamy ilość podziałów zbioru n-elementowegona k-klas i nazywamy ją liczbą Stirlinga II-go rodzaju.

Twierdzenie 5.2.2. Liczby Stirlinga drugiego rodzju spełniają następującerównanie rekurencyjne:

S(n+ 1, k) = S(n, k − 1) + kS(n, k), dla 1 ≤ k < n,S(n, 1) = S(n, n) = 1.

(5.2.2)

Ćwiczenie 5.2.1. Udowodnij tożsamość:

xn =n∑

k=0

S(n, k)xk.

Problem 5.2.2. Niech [ABC] oznacza cykl elementów ABC. Oczywiście[ABC] = [BCA] = [CAB] jednak [ABC] 6= [ACB]. Na ile sposobów możnapodzielić zbiór a, b, c, d na dwa cykle?Rozwiązanie. Jest 11 takich podziałów:[a,b,c][d] [a,b,d][c] [a,c,d][b][b,c,d][a] [a,c,b][d] [a,d,b][c][a,d,c][b] [b,d,c][a] [a,b][c,d][a,c][b,d] [a,d][b,c]

Definicja 5.2.2. Przez s(n, k) oznaczamy ilość podziału zbioru n-elementowegona k cykli i nazywamy ją liczbą Stirlinga I-go rodzaju.

Twierdzenie 5.2.3. Liczby Stirlinga pierwszego rodzaju spełniają następu-jące równanie rekurencyjne:

s(n+ 1, k) = s(n, k − 1) + ns(n, k), dla 1 ≤ k < ns(n, 1) = (n− 1)!,s(n, n) = 1.

(5.2.3)

Ćwiczenie 5.2.2. Udowodnij tożsamość:

xn =n∑

k=0

s(n, k)(−1)n−kxk.

Page 102: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

88 5. Kombinatoryka

5.2.2. Podziały liczby

Podział liczby n na k składników to przedstawienie n w postaci sumya0 + . . . + ak−1 = n, gdzie 1 ≤ a0 ≤ a1 ≤ . . . ≤ ak−1, ai ∈ N , 0 ≤ i < k.Liczbę podziałów n na k składników oznaczamy przez P (n, k).

Przykład 5.2.1. Podziały 8 na 4 składniki są następujące:

1+1+1+5, 1+1+2+4, 1+1+3+3 1+2+2+3 2+2+2+2,

a więc P (8, 4) = 5.

Nie potrafimy podać nawet rekurencyjnego wzoru na P (n, k), ale poda-my tutaj pewne własności tej funkcji.

Uwaga 5.2.4. Dla n, k ∈ N − 0

P (n, 1) = 1, P (n, 2) =

⌊n

2

, P (n, n) = 1, P (n, k) = 0, dla n < k,

1

k!

(

n− 1

k − 1

)

≤ P (n, k) ≤(

n− 1

k − 1

)

.

Uwaga 5.2.5. Dla n, k ∈ N

P (n, k) ≤ 1

k!

(

n+(k2

)− 1

k − 1

)

.

Dowód. Dla podziału n = a0 + . . . + ak−1 definiujemy bi = ai + (k −1 − i), dla 0 ≤ i ≤ k − 1. Zauważmy, że wszystkie liczby bi są różne orazb0+ . . .+ bk−1 = n+ k(k−1)

2 . A zatem podziałów liczby n na k jest tyle samoco podziałów liczby n+

(k2

)na k parami różnych składników. Każdy podział

n +(k2

)na k parami różnych składników generuje dokładnie k! rozwiązań

równania

x0 + . . .+ xk−1 = n+

(

k

2

)

,

gdzie xi > 0. Wiemy zaś, że to ostatnie równanie posiada co najwyżej(n+(k2)−1

k−1

)rozwiązań. A zatem ciągów bi, a tym samym podziałów n na k

składników, jest co najwyżej 1k!

(n+(k2)−1

k−1

)

.

Uwaga 5.2.6. Dla dowolnego k ∈ N

limn→∞

P (n, k)

nk−1=

1

k!(k − 1)!.

Page 103: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

5.2. Podziały zbioru i liczby Stirlinga 89

5.2.3. Klasyfikacja podziałów

Rozważając różne podziały obiektów na różne kategorie widać, że czasemkolejność kategorii odgrywa rolę, a czasem nie, czasem kolejność obiektówdanej kategorii odgrywa rolą, a czasem nie. Często poza całkowitą liczbąkonfiguracji istotna jest także liczba konfiguracji z wyłącznie niepustymikategoriami. Poniżej zestawiamy ilości wszystkich możliwych typów klasy-fikacji pewnego zbioru obiektów na różne typy kategorii:

Twierdzenie 5.2.7.

(i) Klasyfikacji rozróżnialnych obiektów na rozróżnialne kategorie jest Vkn

czyli kn. Takich klasyfikacji na dokładnie k kategorii jest k!S(n, k).(ii) Klasyfikacji rozróżnialnych obiektów na nierozróżnialne kategorie jest∑k

i=1 S(n, i). Oczywiście gdy wszystkie kategorie są niepuste, to zbiórobiektów jest podzielony na dokładnie k bloków. Liczba takich konfiguracjito S(n, k).(iii) Klasyfikacji nierozróżnialnych obiektów na rozróżnialne kategorie jesttyle ile podziałów liczby n na sumę n = x0+ . . .+xk−1 liczb naturalnychxi. Liczba rozwiązań takiego równania to

(n+k−1k−1

). A jeśli kategorii, czyli

składników w rozkładzie n = x0 + . . . + xk−1, ma być dokładnie k, tozliczamy jedynie rozwiązania spełniające dodatkowo x0, . . . , xk−1 ≥ 1, atych jest

(n−1k−1

)

.(iv) Klasyfikacji nierozróżnialnych obiektów na nierozróżnialne kategoriejest P (n, k) a jeśli dopuszczamy puste kategorie to liczba konfiguracji

wynosik∑

i=1

P (n, i).

Przykład 5.2.2. Rozważmy klasyfikacje n = 3 obiektów, które jak rozwa-żać będziemy jako rozróżnialne to oznaczać będziemy przez a, b, c a jaknierozróżnialne to a, a, a na k = 2 klasy (jak rozróżnialne to oznaczaćbędziemy przez 1, 2 lub K1,K2).(i) Z równania rekurencyjnego (5.2.2) mamy S(3, 2) = S(2, 1)+2S(2, 2) =1+2 = 3, a stąd klasyfikacji rozróżnialnych obiektów na rozróżnialne ka-tegorie jest 23 = 8 a na dokładnie 2 kategorie jest 2!S(3, 2) = 6. Są toklasyfikacje:

Na 2 kategorie Na dokładnie 2 kategoriea, b, c a, b, c, a, b, c a, b, c, 1, 1, 1 1, 1, 2 1, 1, 2 1, 2, 11, 2, 1 1, 2, 2 1, 2, 2 2, 1, 12, 1, 1 2, 1, 2 2, 1, 2 2, 2, 12, 2, 1 2, 2, 2

Page 104: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

90 5. Kombinatoryka

(ii) Jest S(3, 1)+S(3, 2) = 1+3 = 4 klasyfikacji rozróżnialnych 3 obiektówna nierozróżnialne 2 kategorie i S(3, 2) = 3 na dokładnie 2 kategorie. Sąto:

Na 2 kategorie Na dokładnie 2 kategoriea, b, c a, b, c, a, b, c a, c, b, a, b, c a, c, b a, b, c

(iii) Jest(3+2−1

2−1

)= 4 klasyfikacji nierozróznialnych obiektów na rozróż-

nialne kategorie oraz(3−12−1

)= 2 na dokładnie 2 kategorie, są to

Na 2 kategorie Na dokładnie 2 kategoriea, a, a ∈ K1 a, a ∈ K1, a ∈ K2 a ∈ K1, a, a ∈ K2

a ∈ K1, a, a ∈ K2 a, a, a ∈ K2 a, a ∈ K1, a, ∈ K2

(iv) Ponieważ P (3, 2) = 1 (rozkład 3 = 1 + 2) oraz P (3, 1) = 1 (rozkład3 = 3) więc są dwa rozkłady nierozróżnialnych 2 obiektów na nierozróż-nielne kategorie: a, a, a oraz a, a, a przy czym jeden (ten drugi) nadokładnie 2 kategorie.

5.3. Współczynniki dwumianowe

Jak można rozszerzyć definicję symbolu Newtona(nk

)= n!

k!(n−k)! =nk

k!na przypadek wszystkich całkowitych k i rzeczywistych n? Wykorzystujemyostatnią równość i fakt, że rk można zdefiniować dla liczb rzeczywistych r ikładziemy dla r ∈ ℜ, k ∈ Z:

(

r

k

)

=

r(r−1)(r−2)...(r−k+1)

k(k−1)(k−2)...2·1 , k ∈ Z+ ∪ 0,0, k ∈ Z−,

=

rk

k! , k ∈ Z+ ∪ 0,0, k ∈ Z−,

(r0 = 1.)Dla “zwykłego” symbolu Newtona

(nk

)zachodzi tożsamość

(

n

k − 1

)

+

(

n

k

)

=

(

n+ 1

k + 1

)

.

Czy ta równość jest prawdziwa również dla uogólnionego symbolu Newtona?Okazuje się, że tak (prosty dowód wynika bezpośrednio z definicji):

(

r

k − 1

)

+

(

r

k

)

=

(

r + 1

k + 1

)

.

Dzięki temu możemy skonstruować trójkąt Pascala zawierający kolejne war-tości symbolu Newtona.

Page 105: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

5.3. Współczynniki dwumianowe 91

Tabela 5.1. Trójkąt Pascala.

r

(r0

) (r1

) (r2

) (r3

) (r4

) (r5

) (r6

) (r7

) (r8

) (r9

) (r10

)

-10 1 -10 55 -220 715 -2002 5005 -11440 24310 -48620 92378

-9 1 -9 45 -165 495 -1287 3003 -6435 12870 -24310 43758

-8 1 -8 36 -120 330 -792 1716 -3432 6435 -11440 19448

-7 1 -7 28 -84 210 -462 924 -1716 3003 -5005 8008

-6 1 -6 21 -56 126 -252 462 -792 1287 -2002 3003

-5 1 -5 15 -35 70 -126 210 -330 495 -715 1001

-4 1 -4 10 -20 35 -56 84 -120 165 -220 286

-3 1 -3 6 -10 15 -21 28 -36 45 -55 66

-2 1 -2 3 -4 5 -6 7 -8 9 -10 11

-1 1 -1 1 -1 1 -1 1 -1 1 -1 1

0 1 0 0 0 0 0 0 0 0 0 0

1 1 1 0 0 0 0 0 0 0 0 0

2 1 2 1 0 0 0 0 0 0 0 0

3 1 3 3 1 0 0 0 0 0 0 0

4 1 4 6 4 1 0 0 0 0 0 0

5 1 5 10 10 5 1 0 0 0 0 0

6 1 6 15 20 15 6 1 0 0 0 0

7 1 7 21 35 35 21 7 1 0 0 0

8 1 8 28 56 70 56 28 8 1 0 0

9 1 9 36 84 126 126 84 36 9 1 0

10 1 10 45 120 210 252 210 120 45 10 1

XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Twierdzenie 5.3.1. Własności uogólnionego symbolu Newtona. Dlak ∈ Z:

(nk

)

=(

nn−k

)

, n ∈ N tylko!, symetria,k(rk

)

= r(r−1k−1

)

, r ∈ R, pochłanianie,

(r − k)(rk

)

= r(r−1k−1

)

, r ∈ R, inne pochłanianie,(rk

)

=(r−1k

)

+(r−1k−1

)

, r ∈ R, reguła dodawania,(rk

)

= (−1)k(k−r−1

k

)

, r ∈ R, negowanie górnego

indeksu.

Dowód. Ostatnia własność. Dla k ≥ 0 mamy rk = r(r − 1)(r −2)...(r− k+1) = (−1)k(−r)(1− r)(2− r)...(k− r− 1) = (−1)k(k− r− 1)k,dla k < 0 obie strony są równe zero.

Współczynniki dwumianowe spełniają szereg bardzo interesujących za-leżności. Na przykład, jeżeli w Twierdzeniu 2.7.4 podzielimy obie stronyprzez m!, to otrzymamy dla m ≥ 0

n−1∑

k=0

(

k

m

)

=

(

n

m+ 1

)

.

Z drugiej strony, z powyższej sumy, możemy uzyskać następujący wynik:

k≤n

(

m+ k

k

)

=∑

−m≤k≤n

(

m+ k

k

)

=∑

−m≤k≤n

(

m+ k

m

)

Page 106: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

92 5. Kombinatoryka

=∑

0≤k≤m+n

(

k

m

)

=

(

m+ n+ 1

m+ 1

)

=

(

m+ n+ 1

n

)

.

Bezpośrednio z definicji można stwierdzić, że(r

m

)(m

k

)

=

(r

k

)(r − k

m− k

)

, k,m ∈ Z, r ∈ R.

Innym źródłem pomagającym analizować sumy i rekurencje zawierającesymbol Newtona jest:

Twierdzenie 5.3.2. Dla k,m ∈ Z, r, x, y ∈ R, zachodzi∑

k≤m

(

r

k

)

(−1)k = (−1)m(

r − 1

m

)

,

k≤m

(

m+ r

k

)

xkym−k =∑

k≤m

(

−rk

)

(−x)k(x+ y)m−k.

Dowód. Pierwsza własność jest efektem negowania górnego indeksu adruga może być dowiedziona indukcyjnie względem m.

Zwłaszcza ta druga własność może być źródłem ciekawych wzorów, np.dla x = −1, y = 1 otrzymujemy:

k≤m

(

m+ r

k

)

(−1)k =

(

−rm

)

,

a dla x = y = 1, r = m+ 1,

k≤m

(

2m+ 1

k

)

=∑

k≤m

(

−m− 1

k

)

(−1)k2m−k

=∑

k≤m

(

m+ k

k

)

2m−k

a ponieważ z symetrii trójkąta Pascala

k≤m

(

2m+ 1

k

)

=1

2

0≤k≤2m+1

(

2m+ 1

k

)

1k12m−k =1

222m+1 = 22m

a stąd

k≤m

(

m+ k

k

)

2m−k = 2m.

Page 107: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

5.3. Współczynniki dwumianowe 93

Wykorzystaliśmy w powyższym rozważaniu wzór na dwumian Newtona:(a+ b)n =

∑nk=0

(nk

)akbn−k. Czy ten wzór ma swój odpowiednik dla uogól-

nionego symbolu Newtona?

Twierdzenie 5.3.3. Wzór na dwumian Newtona. Niech x, y będądwoma dowolnymi liczbami rzeczywistymi. Jeśli r ≤ 0 jest liczbą całkowitąlub |xy | < 1 to

(x+ y)r =∑

k∈Z

(r

k

)

xkyr−k.

Ćwiczenie 5.3.1. Oblicz

3√9∑

k∈Z

(1/3

k

)

(−1)k3−2k.

Rozwiązanie Zauważmy, że

3√9∑

k∈Z

(1/3

k

)

(−1)k3−2k =∑

k∈Z

(

1/3

k

)

(−1)k91/3−k = (−1+9)1/3 =3√8 = 2.

Omówmy teraz trzy ciekawe chwyty stosowane przy obliczaniu sum za-wierających symbol Newtona:Reguła podwajania. Poprzez uporządkowanie czynników możemy otrzy-mać następującą tożsamość

rk(r − 1

2)k =

(2r)2k

22k, k ∈ N .

Dzieląc stronami przez k!2 otrzymujemy(

r

k

)(

r − 1/2

k

)

=

(

2r

2k

)(

2k

k

)

/22k, k ∈ Z. (5.3.4)

Regułę podwajania stosuje się w przypadku, gdy mamy r szczególnejpostaci r = n − 1/2, n ∈ Z, wtedy możemy ze wzoru (5.3.4) przejść doinnych symboli Newtona.

Metody różnicowe. Wiemy z Uwagi 2.7.1 że

nf(x) =n∑

k=0

(

n

k

)

(−1)n−kf(x+ k), n ∈ N , x ∈ ℜ. (5.3.5)

Na przykład łatwo wykazać z Twierdzenia 2.7.2, że

n((x− 1)−1) = (−1)nn!(x− 1)−n,

Page 108: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

94 5. Kombinatoryka

zatem dla x 6∈ 0,−1,−2, ...,−n otrzymujemyn∑

k=0

(

n

k

)

(−1)kx+ k

= n!(x− 1)−n = x−1

(

x+ n

n

)−1

. (5.3.6)

Reguła odwracania.

g(n) =n∑

k=0

(

n

k

)

(−1)kf(k)⇐⇒ f(n) =n∑

k=0

(

n

k

)

(−1)kg(k). (5.3.7)

dla dowolnych funkcji f, g.

Dowód (5.3.7). Ponieważ z Twierdzenia 5.3.3 dla x = −1, y = 1, r = notrzymujemy

k

(

m

k

)

(−1)k =

1, n = 0,0, n ∈ N\0,

więc

k

(

n

k

)

(−1)kg(k) =∑

k

(

n

k

)

(−1)k∑

j

(

k

j

)

(−1)jf(j)

=∑

j

f(j)∑

k

(

n

k

)

(−1)k+j

(

k

j

)

=∑

j

f(j)∑

k

(

n

j

)

(−1)k+j

(

n− j

k − j

)

=∑

j

f(j)

(

n

j

)∑

k

(−1)k(

n− j

k

)

=∑

j

f(j)

(

n

j

)

[n− j = 0] = f(n).

Przykład 5.3.1. Rozwiązać rekurencję dla pewnej ustalonej liczby natural-nej m

n+(−1)n(mn

) + 3n +1

n+ 3=

n∑

k=0

(

n

k

)

(−1)kFk, n ≥ 0.

Rozwiązanie. Z reguły pochłaniania

n∑

k=0

(

n

k

)

(−1)kk = nn∑

k=0

(

n− 1

k − 1

)

(−1)k = −nn−1∑

k=1

(

n− 1

k

)

(−1)k

= −n(0− 1) = n, (5.3.8)

Page 109: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

5.3. Współczynniki dwumianowe 95

oraz

n∑

k=0

(

n

k

)

(−1)k (−1)k

(mk

) =n∑

k=0

(nk

)

(mk

) =n∑

k=0

(m−kn−k

)

(mn

) =

(

m

n

)−1 n∑

k=0

(

m− n+ k

k

)

=

(m+1n

)

(mn

) =m+ 1

m+ 1− n. (5.3.9)

Z Twierdzenia 5.3.3 mamy

n∑

k=0

(

n

k

)

(−1)k3k = (3− 1)n = 2n, (5.3.10)

a z (5.3.6) otrzymujemy

n∑

k=0

(

n

k

)

(−1)k 1

k + 3= 3−1

(

n+ 3

3

)−1

. (5.3.11)

Uwzględniając (5.3.8)-(5.3.11) otrzymujemy

Fn = n+m+ 1

m+ 1− n+ 2n +

1

3(n+3

3

) , n ≥ 0.

Ćwiczenie 5.3.2. Udowodnij:

k∈Z

(r

m+ k

)(s

n− k

)

=

(r + s

m+ n

)

, m, n ∈ Z, r, s ∈ R,

k∈Z

(t

m+ k

)(s

n+ k

)

=

(t+ s

t−m+ n

)

, m, n ∈ Z, s ∈ R, t ∈ Z+ ∪ 0,

k∈Z

(t

m+ k

)(s+ k

n

)

(−1)k = (−1)t+n(s−m

n− t

)

, m, n, t ∈ Z, t > 0,

k≤l

(l − k

m

)(s

k − n

)

(−1)k = (−1)l+m(s−m− 1

l −m− n

)

, m, n, l ∈ Z, l,m, n ≤ 0,

0≤k≤l

(l − k

m

)(q + k

n

)

=

(l + q + 1

m+ n+ 1

)

, l,m ≥ 0, n ≤ q ≤ 0, l,m, n, q ∈ Z,

k∈Z

(r

k

)(s

n− k

)

=

(r + s

n

)

, n ∈ Z, r, s ∈ R.

Page 110: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

96 5. Kombinatoryka

Podsumowanie.• Kombinatoryka zajmuje się problemami podziału zbiorów a zwłaszczawyznaczania ilości tych podziałów. Duże znaczenie kombinatoryki wy-nika z faktu, że jest ona podstawą rachunku prawdopodobieństwa. Walgorytmach często mamy do czynienia z losowym ustawieniem danychi analiza kombinacji możliwych ustawień jest niezbędna do prawidłowejanalizy działania algorytmu.

• Różne ustawienia ciągów nazywamy permutacjami, wybór elementów zezbioru, bez uwzględniania kolejności kombinacjami, a z uwzględnianiemkolejności wariacjami. Podziały to analiza rozkładu liczby na sumę liczbnaturalnych lub zbioru na klasy o określonych liczebnościach.

• Kluczowe pojęcie w kombinatoryce odgrywa symbol Newtona. Możnago uogólnić na pary liczb rzeczywistych i całkowitych. Symbol Newtonaczęsto występuje w różnych rekurencjach, sumach i innych zależnościach.

Page 111: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Rozdział 6

Funkcje tworzące

6.1. Splot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986.2. Rozwiązywanie rekurencji za pomocą funkcji tworzących 1006.3. Algebra wielomianów rzeczywistych . . . . . . . . . . . 106

Page 112: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

98 6. Funkcje tworzące

Rozważmy szereg (zob. dwumian Newtona):

(1+z)r =∑

k≥0

(

r

k

)

zk =

(

r

0

)

z0+

(

r

1

)

z1+

(

r

2

)

z2+...+

(

r

⌊r⌋

)

z⌊r⌋+..., r ∈ ℜ.

(6.0.1)Z Twierdzenia 5.3.3 szereg ten jest zbieżny w kole jednostkowym |r| < 1.

Ogólnie szeregi potęgowe są zbieżne w 0 i pewnym otoczeniu zera. W tymrozdziale nie będziemy rozważać obszaru zbieżności szeregów, trzeba zdawaćsobie sprawę, że wymieniane tutaj szeregi są sumowalne tylko dla pewnegoprzedziału argumentów.Funkcję A(z) = (1+z)r nazywamy funkcją tworzącą ciągu [

(r0

),(r1

),(r2

), . . .].

Definicja 6.0.1. Dla nieskończonego ciągu [ao, a1, a2, ...] funkcją tworzącątego ciągu nazywamy funkcję

A(z) = ao + a1z + a2z2 + ... =

k≥0

akzk.

Jeżeli A(z) jest funkcją tworzącą to przez [zk]A(z) oznaczać będziemy współ-czynnik przy zk w rozwinięciu funkcji A(z) w szereg potęgowy.

6.1. Splot

Definicja 6.1.1. Dla dwóch ciągów [ao, a1, a2, ...] oraz [bo, b1, b2, ....] odpo-wiadających funkcjom tworzącym A(z) i B(z) splot jest to ciąg odpowiada-jący funkcji tworzącej C(z) = A(z) ·B(z).

Uwaga 6.1.1. Wzór na splot

[zn]C(z) = cn = aobn + a1bn−1 + a2bn−2 + ...+ anbo =n∑

k=0

akbn−k, n ≥ 0.

Przykład 6.1.1. Rozważmy funkcje tworzące:

A(z) = (1 + z)r =∑

k≥0

(r

k

)

zk,

B(z) = (1 + z)s =∑

k≥0

(s

k

)

zk,

wtedy z jednej strony

C(z) = (1 + z)r+s =∑

k≥0

(

r + s

k

)

zk,

Page 113: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.1. Splot 99

a z drugiej, ponieważ C(z) = A(z)B(z), więc ze wzoru na splot:

[zn]C(z) =n∑

k=0

(

r

k

)(

s

n− k

)

.

Otrzymujemy stąd tożsamość Cauchy’ego:

(

r + s

k

)

=n∑

k=0

(

r

k

)(

s

n− k

)

.

Ćwiczenie 6.1.1. Wyznacz splot ciągów (1−z)r = [(−1)k(rk), k = 0, 1, 2, ...]

oraz (1 + z)r = [(rk

), k = 0, 1, 2, ...].

Uwaga 6.1.2.

(1− z)r = [(−1)k(r

k

)

, k = 0, 1, 2, ...],

1

(1− z)n+1= [

(k + n

n

)

, k = 0, 1, 2, ...],

zn

(1− z)n+1= [

(k

n

)

, k = 0, 1, 2, ...].

Dowód. Jeżeli w (6.0.4) zamiast z wstawimy −z otrzymamy pierwszątożsamość. Druga tożsamość wynika z pierwszej przy podstawieniu r =−n− 1. Rzeczywiście

1

(1− z)n+1= [(−1)k

(−n− 1

k

)

, k = 0, 1, 2, ...]

= [(−1)k(−1)k(k − (−n− 1)− 1

k

)

, k = 0, 1, 2, ...]

= [

(k + n

k

)

, k = 0, 1, 2, ...]

= [

(k + n

n

)

, k = 0, 1, 2, ...],

a trzeci otrzymujemy z drugiego poprzez przemnożenie drugiego przezzn. Rzeczywiście, jeśli C(z) = 1

(1−z)n+1 ,D(z) = zn

(1−z)n+1 to

D(z) = znC(z),

[zk]C(z) = [zk−n]D(z) =

(k

n

)

.

Page 114: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

100 6. Funkcje tworzące

6.2. Rozwiązywanie rekurencji za pomocą funkcji

tworzących

Z Uwagi 6.1.2 w szczególności otrzymujemy 11−z = [1, 1, 1, 1, 1, ...] a stąd

i z definicji splotu, jeśli A(z) = [ao, a1, a2, ...] toA(z)1−z = [ao, ao+a1, ao+a1+

a2, ...] (ciąg sum częściowych).Zwróćmy też uwagę, że z rozwinięcia funkcji ez mamy ez = [ 1k! , k =

0, 1, 2, ...].Podajmy w tabelce niektóre częściej używane funkcje tworzące:

Tabela 6.1. Funkcje tworzące

Ciąg Suma Zwarty wzór

[1, 0, 0, 0, . . .]∑

n≥0[n = 0]zn 1

[ 0, . . . , 0, 1︸ ︷︷ ︸

m

, 0, 0, . . .]∑

n≥0[n = m]zn zm

[1, 1, 1, 1, . . .]∑

n≥0 zn 1

1−z

[ 1, . . . , 1︸ ︷︷ ︸

m

, 0, 0, . . .]∑

n≥0 zn[n ≤ m] 1−zn

1−z

[1,−1, 1,−1, . . .] ∑

n≥0(−1)nzn 11+z

[1, 0, 1, 0, . . .]∑

n≥0[2|n]zn 11−z2

[1, 0, . . . , 0, 1︸ ︷︷ ︸

m

, 0, . . . , 0, 1︸ ︷︷ ︸

m

, . . .]∑

n≥0[m|n]zn 11−zm

[1, 2, 3, 4, . . .]∑

n≥0(n+ 1)zn 1(1−z)2

[1, 2, 4, 8, . . .]∑

n≥0 2nzn 1

1−2z

[12, 22, 32, 43, 52, . . .]∑

n=0(n+ 1)2zn 1+z(1−z)3

[1, c,(c2

),(c3

), . . .]

n≥0

(cn

)zn (1 + z)c

[1, c,(c+1

2

),(c+2

3

), . . .]

n≥0

(c+n−1n

)zn 1

(1−z)c

[1, c, c2, c3, . . .]∑

n≥0 cnzn 1

1−cz

[0, c, 2c2, 3c3, 4c4, . . .]∑

n≥0 ncnzn cz

(1−cz)2

[0, 1, 12 ,13 ,

14 , . . .]

n>01nz

n ln( 11−z )

[0, 1,−12 ,

13 ,−1

4 , . . .]∑

n>0(−1)n 1nz

n ln(1 + z)

[ 10! ,11! ,

12! ,

13! , . . .]

n≥01n!z

n ez

[F0, F1, F2, F3, F4, . . .]∑

n≥0 Fnzn z

1−z−z2

[H0,H1,H2,H3,H4, . . .]∑

n≥0Hnzn 1

1−z ln(1

1−z )

gdzie Fn, n ≥ 0 są to liczby Fibonacciego (szerzej o nich w dalszejczęści rozdziału) a Hn, n ≥ 1 to ciąg liczb harmonicznych.

Page 115: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.2. Rozwiązywanie rekurencji za pomocą funkcji tworzących 101

Zupełnie elementarnymi metodami można otrzymać następujące zależ-ności, znacznie poszerzające możliwości obliczania współczynników funkcjitworzących i rozwijania funkcji tworzących w szereg.

Twierdzenie 6.2.1. Jeśli A(z) = [ao, a1, a2, ...], B(z) = [bo, b1, b2, ...], to

Tabela 6.2. Własności funkcji tworzących.

Funkcja generująca Ciąg

αA(z) + βB(z) [αa0 + βb0, αa1 + βb1, αa2 + βb2, αa3 + βb3, . . .]

zmA(z) [0, 0, . . . , 0︸ ︷︷ ︸

m

, ao, a1, a2, a3, . . .]

A(z)−(ao+a1z+...+am−1zm−1)zm [am, am+1, am+2, am+3, . . .]

A(αz) [a0, αa1, α2a2, α

3a3, . . .]

A(z2) [a0, 0, a1, 0, a2, 0, . . .]

A′(z) = dA(z)dz [a1, 2a2, 3a3, 4a4, . . .]

∫ z0 A(t)dt [0, 11a0,

12a1,

13a2,

14a3, . . .]

Przykład 6.2.1. Rozważmy następującą rekurencję Fibonacciego:

F0 = 0,F1 = 1,Fn = Fn−1 + Fn−2 dla n ≥ 2,

Rozwiązanie rekurencji metodą funkcji tworzących składa się z kilku etapówEtap 1. Dookreślając, jeśli trzeba, ciąg rekurencyjny zapisz całą reku-

rencję zwartym wzorem. Tutaj dookreślamy Fn dla n ∈ Z−, przyjmującFn = 0, n ≤ 0. Ponieważ

Fn = Fn−1 + Fn−2, n ≥ 2

F1 = 1 = F0 + F−1 + 1 = F0 + F−1 + [n = 1],

F0 = 0 = F−1 + F−2,

Fn = 0 = Fn−1 + Fn−2, n < 0,

więcFn = Fn−1 + Fn−2 + [n = 1], n ∈ Z.

Jest to poszukiwany zwarty wzór.

Page 116: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

102 6. Funkcje tworzące

Etap 2. Pomnóż stronami otrzymaną zwartą rekurencję przez zn, przy-łóż znak sumy po n i przekształć obie strony tak, aby otrzymać funkcję two-rzącą nieznanego ciągu rekurencyjnego F (z) = F0 +F1z+F2z

2 + .... Mamywięc

Fnzn = Fn−1z

n + Fn−2zn + [n = 1]zn, n ∈ Z,

a stąd∑

n∈ZFnz

n =∑

n∈ZFn−1z

n +∑

n∈ZFn−2z

n +∑

n∈Z[n = 1]zn.

czyli∑

n∈ZFnz

n = z∑

n∈ZFn−1z

n−1 + z2∑

n∈ZFn−2z

n−2 +∑

n∈Z[n = 1]zn.

a stądF (z) = zF (z) + z2F (z) + z.

Etap 3. Obliczmy wartość funkcji tworzącej F (z) poszukiwanego ciągu.Z ostatniego równania wyliczamy

F (z) =z

1− z − z2.

Jest to przedostatni wzór z Tabeli 6.1.Etap 4. Znając wzory na różne ciągi funkcji tworzących spróbuj ze zwar-

tej postaci F (z) wyliczyć Fn = [zn]F (z), n ≥ 0. Będzie to poszukiwany przeznas ciąg.Jak rozwinąć F (z) = z

1−z−z2w szereg potęgowy. Jest to funkcja wymierna

a z analizy wiadomo, że każda funkcja wymierna daje się przedstawić wpostaci ułamków prostych. Konkretnie szukamy tutaj przedstawienia

z

1− z − z2=

A

1− αz+

B

1− βz.

Zwróćmy uwagę, że rozwinięcia funkcji 11−cz w szereg potęgowy z Tabeli 6.1 są

znane. Sprowadzając prawą stronę do wspólnego mianownika otrzymujemy:

A(1− βz) +B(1− αz)

(1− αz)(1 − βz)=

(A+B)− (Aα+Bβ)z

1− (α+ β)z + αβz2=

z

1− z − z2,

co implikuje

A+B = 0,Aα+Bβ = −1,

a stąd

A = −B = − 1

β − α.

Page 117: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.2. Rozwiązywanie rekurencji za pomocą funkcji tworzących 103

Ponieważ α−1 i β−1 są pierwiastkami równania 1− z − z2, czyli

α−1 = 1+√5

2 ,

β−1 = 1−√5

2 ,

α =√5−12 ,

β = −√5+12 ,

A = 1√5,

B = − 1√5,

a więc

F (z) =A

1− αz+

B

1− βz=∑

n≥0

1√5(αn − βn)zn,

czyli

Fn = [zn]F (z) = 1√5

((1+

√5

2

)n−(1−

√5

2

)n)

.

Opisany powyżej sposób rozwi azywania nie jest może najszybszym spo-sobem rozwiązania rekurencji Fibonacciego, zależało nam jednak na pre-cyzyjnym opisaniu metodologii rozwiązywania równań rekurencyjnych zapomocą funkcji tworzących.Liczby Fibonacciego (Leonardo Fibonacci (1175-1250) - włoski mate-

matyk znany również jako: Filius Bonacci (syn Bonacciego) czy LeonardoPisano (z Pizy)) bardzo często występują w wielu sytuacjach w przyrodzie.

Przykład 6.2.2. Przykłady pojawiania się liczb Fibonacciego.(i) Jak wybrać dwie liczby naturalne n i m dla których Algorytm Euklidesa(Algorytm 4.1) ma najwięcej obrotów pętli. Okazuje się, że tymi najbar-dziej ”złośliwymi” liczbami s a kolejne liczby Fibonacciego (Fn, Fn−1), n ≥1.(ii) Rozważmy następujący sposób rozmnażania się organizmów:- osobnik M przekształca sie w następnym pokoleniu w K.- osobnik K dzieli się w następnym pokoleniu na M i K.Wtedy zaczynając od osobnika K w n-tym pokoleniu jest Fn+2 osobników.(iii) (problem Fibonacciego) Pojedyncza para królików jest wprowadzonado środowiska. Po dwóch miesiącach para królików może ”wyproduko-wać” inną parę i później rozmnażanie już trwa co miesiąc. Ile jest parkrólików po n-miesiącach (oczywiście Fn).(iv) Niech Sn oznacza ilość tych podzbiorów zbioru 1, 2, 3, ..., n które niezawierają kolejnych elementów, Są to kolejno: ∅, 1, 2, 3, 1, 3, ...Wtedy Sn = Fn+2.(v) Ułamki łańcuchowe 1 + 1

1 = 21 , 1 + 1

1+ 11

= 32 , 1 + 1

1+ 1

1+ 11

= 53 , ... to

ilorazy kolejnych liczb Fibonacciego.

Page 118: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

104 6. Funkcje tworzące

Przykład 6.2.3. Rozwiązać rekurencję:

g0 = 0,g1 = 4,g2 = 24,gn = 6gn−1 − 12gn−2 + 8gn−3, dla n ≥ 4,

Zgodnie z opisanymi w Przykładzie 6.2.1 etapami postępujemy następu-jąco:• Dookreślamy gn = 0, n < 0, a ponieważ

g2 = 24 = 6g1 − 12g0 + 8g−1,

g1 = 4 = 6g0 − 12g−1 + 8g−2 + 4[n = 1],

g0 = 0 = 6g−1 − 12g−2 + 8g−3,

stąd otrzymujemy

gn = 6gn−1 − 12gn−2 + 8gn−3 + 4[n = 1], n ∈ Z.

• Mnożąc stronami przez zn mamy∑

n∈Zgnz

n = 6∑

n∈Zgn−1z

n−12∑

n∈Zgn−2z

n+8∑

n∈Zgn−3z

n+4∑

n∈Zzn[n = 1].

ZatemG(z) = 6zG(z) − 12z2G(z) + 8z3G(z) + 4z.

• W końcu otrzymujemy:

G(z) =4z

(1− 2z)3.

• ⋆Zwróćmy teraz uwagę, że G(z) = z(

1(1−2z)2

)′= zA′(z). Stąd gn =

nan, n ∈ Z. Zauważmy, że A(z) =(

11−2z

)2a ponieważ 1

1−2z = [1, 2, 22, 23, ...],

zatem ze wzoru na splot

[zn]A(z) =n∑

k=0

2k · 2n−k = (n+ 1)2n, n ≥ 0,

a więc[zn]G(z) = n(n+ 1)2n, n ≥ 0.

⋆ Inny sposób. Mamy

[zn]1

(1− z)3= [1, 3,

(

4

2

)

,

(

5

3

)

, ...] = [(n + 1)(n+ 2)

2, n ≥ 0].

Page 119: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.2. Rozwiązywanie rekurencji za pomocą funkcji tworzących 105

Ponadto

[zn]1

(1− 2z)3= [

(n+ 1)(n + 2)

22n, n ≥ 0] = [(n + 1)(n + 2)2n−1, n ≥ 0],

a stąd

[zn]4z

(1− 2z)3= [n(n+ 1)2n, n ≥ 0].

Jednak początkowe dwa kroki można wykonać trochę inaczej. Przedstawimytutaj ten sposób postępowania.

⋄ Mnożymy bezpośrenio równania określające rekurencję (pierwsze przezz0, drugie przez z1, trzecie przez z2 a czwarte przez zn)

g0 = 0, / · z0g1 = 4, / · z1g2 = 24, / · z2gn = 6gn−1 − 12gn−2 + 8gn−3, / · zn

dla n ≥ 4,

otrzymując

g0z0 = 0,

g1z1 = 4z1,

g2z2 = 24z2,

g3z3 = 6g2z

3 − 12g1z3 + 8g0z

3,g4z

4 = 6g3z4 − 12g2z

4 + 8g1z4,

g5z5 = 6g4z

5 − 12g3z5 + 8g2z

5,g6z

6 = 6g5z6 − 12g4z

6 + 8g3z6,

......

gnzn = 6gn−1z

n − 12gn−2zn + 8gn−3z

n,...

...

Sumujemy stronami

g0z0 + g1z1 + . . . = 6z(g2z2 + g3z

3 + . . .)− 12z2(g1z1 + g2z

2 + . . .)

+8z3(goz0 + g1z

1 + . . .) + 4z + 24z2,

G(z) = 6z(G(z) − g1z1 − g0z

0)− 12z2(G(z) − g0z0)

+8z3G(z) + 4z + 24z2,

G(z) = G(z)(6z − 12z2 + 8z3)− 24z2 + 4z + 24z2,

G(z)(1 − 6z + 12z2 − 8z3) = 4z,

G(z) =4z

(1− 2z)3.

Otrzymaliśmy więc identyczne równanie jak w pierwszym sposobie. Wpozostałych punktach postępujemy jak powyżej.

Page 120: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

106 6. Funkcje tworzące

6.3. Algebra wielomianów rzeczywistych

Przypomnijmy najpierw kilka podstawowych faktów dotyczących ope-racji na wielomianach. Niech P (x) będzie wielomianem o współczynnikachcałkowitych. Stopniem wielomianu P (x) = p0+p1x+ . . .+pnx

n, nazywamyliczbę degP (x) = n, równą najwyższej potędze x w tym wielomianie awspółczynnik przy najwyższej potędze n (tutaj pn) nazywać będziemy naj-wyższym współczynnikiem. Stopień wielomianu jest to najmniejsza liczbanaturalna n taka, że nP (x) ≡ 0.

6.3.1. Podzielność wielomianów

Wiele operacji na wielomianach ma swoje analogie w operacjach na licz-bach całkowitych. Na przykład odpowiednikiem wzoru (3.4.1), leżącego upodstaw algorytmu Euklidesa, jest następujący wynik:

Twierdzenie 6.3.1. Niech A(x) oraz B(x) będą wielomianami 0 < degB(x).Wtedy istnieje dokładnie jeden układ wielomianów Q(x) oraz R(x) takich,że

A(x) = Q(x)B(x) +R(x),

gdzie degR(x) < degB(x). Wielomian Q(x) nazywamy ilorazem a R(x)resztą.Dowód. Jeśli degA(x) < degB(x) to wystarczy przyjąćQ(x) = 0, R(x) =

A(x). Załóżmy, że twierdzenie jest prawdziwe dla wielomianów A(x) stop-nia < n i niech degA(x) = n ≥ degB(x) = q. Przez a oznaczmy najwyższywspółczynnik wielomianu A(x) (współczynnik przy najwyższej potędze x)a przez b najwyższy współczynnik wielomianu B(x). Ponieważ stopień wie-lomianu axn−qB(x)/b jest równy n a najwyższy współczynnik jest równy awięc A1(x) = A(x) − a

bxn−qB(x) jest wielomianem stopnia degA1(x) < n,

z założenia indukcyjnego istnieją więc wielomiany Q1(x) i R(x) takie, żeA1(x) = Q1(x)B(x) +R(x) a stąd

A(x) = (a

bxn−q +Q1(x))B(x) +R(x),

jest szukanym rozkładem.Wykażemy teraz jednoznaczność rozkładu. Jeśli A(x) = Q(x)B(x) +

R(x) i A(x) = Q1(x)B(x)+R1(x), to (Q1(x)−Q(x))B(x) = R(x)−R1(x),a ponieważ deg(R(x)−R1(x)) < degB(x) więc Q1 ≡ Q a stąd R1 ≡ R.

Konstrukcyjny dowód tego twierdzenia umożliwia opracowanie algoryt-mu do obliczania Q i R. Algorytm ten jest znanym procesem dzielenia wie-lomianów:

Page 121: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.3. Algebra wielomianów rzeczywistych 107

Przykład 6.3.1. Znaleźć wielomiany Q(x) i R(x) w rozwinięciu z Twier-dzenia 6.3.1, dla

A(x) = 3x5 + 5x4 + 2x3 + x2 + 2 oraz B(x) = x3 + 2x2 − 1.

Wykonujemy dzielenie wielomianów

3x2−x +4(

3x5+5x4+2x3 +x2 +2)

:(

x3+2x2−1)

−3x5+6x4 −3x2

−x4+2x3+4x2− −x4−2x3 +x4x3+4x2−x +2−4x3+8x2 −4−4x2−x +6

i otrzymujemy

Q(x) = 3x2 − x+ 4, oraz R(x) = −4x2 − x+ 6.

Ponadto degA(x) = 5 = 2 + 3 = degQ(x) + degB(x).

Definicja 6.3.1. Mówimy, że wielomian B(x) jest dzielnikiem wielomia-nu A(x) i zapisujemy ten fakt B|A jeśli w rozkładzie z Twierdzenia 6.3.1zachodzi R(x) ≡ 0.

Definicja 6.3.2. Wielomian C(x) nazywamy największym wspólnym dziel-nikiem wielomianów A(x) i B(x) (zapisujemy NWD(A,B)) jeśli:(i) Najwyższym współczynnikiem wielomianu C jest 1.(ii) C|A oraz C|B.(iii) Jeśli D|A i D|B to D|C.

Największy wspólny dzielnik dwóch wielomianów może być wyznaczonyalgorytmem analogicznym do Algorytmu 4.1 (Algorytm Euklidesa) gdzieoperację dzielenia i obliczania reszty określone są w Twierdzeniu 6.3.1 iPrzykładzie 6.3.1.

Przykład 6.3.2. Znajdź NWD(P,Q) gdzie

P (x) = x7 − 14 · x6 + 7 · x5 + 35 · x4 − 17 · x3 + 43 · x2 − 23 · x− 6

Q(x) = x5 − 14 · x4 + 8 · x3 + 20 · x2 + 7 · x+ 34

Page 122: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

108 6. Funkcje tworzące

Mamy

P (x) = Q(x)(x2 − 1) + (x4 − 16x3 + 29x2 − 16x+ 28),

Q(x) = (x4 − 16x3 + 29x2 − 16x+ 28)(x + 2) + (11x3 − 22x2 + 11x− 22),

R(x) = (11x3 − 22x2 + 11x− 22)(x

11− 14

11) + 0,

gdzie R(x) = x4 − 16x3 + 29x2 − 16x+ 28,

a więc NWD(P,Q)(x) = x3 − 2x2 + x− 2 = (x2 + 1)(x − 2).

Definicja 6.3.3. Wielomiany A(x) i B(x) nazywamy względnie pierwszymijeżeli NWD(A,B) = 1.

Analogicznie do Uwagi 4.1.4 możemy podać

Twierdzenie 6.3.2. Dla każdych dwóch wielomianów A(x) i B(x) istniejąwielomiany P (x) i Q(x) takie, że

A(x)P (x) +B(x)Q(x) = NWD(A,B)(x).

Dowód przebiega tak jak dowód Uwagi 4.1.4, natomiast wyznaczeniewielomianów P (x) i Q(x) jest analogiczne do rozszerzonego algorytmu Eu-klidesa (zob. Algorytm 4.2).

Przykład 6.3.3. Przenalizujmy Przykład 6.3.2. Niech wielomiany P (x) iQ(x) będą takie, jak w przykładzie 6.3.2. Oznaczmy:

A(x) = x2−1, B(x) = x−14, C(x) = x+2, D(x) = 11x3−22x2+11x−22,

wtedy

P (x) = Q(x)A(x) +B(x),

Q(x) = B(x)C(x) +D(x),

B(x) = D(x)E(x),

a stąd

D(x) = Q(x)−B(x)C(x)

= Q(x)− (P (x)−A(x)Q(x))C(x)

= P (x)(−C(x)) +Q(x)(1 +A(x)C(x))

= P (x)(−x− 2) +Q(x)(x3 + 2x2 − x− 1)

Page 123: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.3. Algebra wielomianów rzeczywistych 109

zatem

NWD(P,Q)(x) =D(x)

11= P (x)(− 1

11x− 2

11)+Q(x)(

1

11x3+

2

11x2− 1

11x− 1

11).

Bezpośrednio z Twierdzenia 6.3.2 otrzymujemy:

Twierdzenie 6.3.3. Na to aby wielomiany A(x) i B(x) były względniepierwsze potrzeba i wystarcza aby istniały wielomiany P (x) i Q(x) takie,że

A(x)P (x) +B(x)Q(x) ≡ 1.

6.3.2. Zasadnicze twierdzenie algebry

Analogicznie do liczb pierwszych w zbiorze liczb naturalnych (zob. pod-rozdz. 4.2) wprowadzamy wielomiany pierwsze:

Definicja 6.3.4. Mówimy, że wielomian P (x) stopnia degP (x) > 0 jestpierwszy jeśli jest wielomianem unormowanym (monicznym) , to znaczyjego najwyźszy współczynnik wynosi 1 oraz nie istnieją wielomiany stopnidodatnich A(x) i B(x) takie, że P (x) = A(x)B(x).

Postać wielomianów pierwszych zależy istotnie od tego z jakiej klasy bra-ne są współczynniki wielomianów. Na przykład dla wielomianów o współ-czynnikach zespolonych wielomian x2 + 1 jest złożony, bo

x2 + 1 = (x+√−1)(x−

√−1),

natomiast dla wielomianów o współczynnikach rzeczywistych ten wielomianjest pierwszy. Gdyby nie był to istniałby rozkład dla liczb rzeczywistycha, b, c taki, że

x2 + 1 = a(x− b)(x− c),

co jak wiemy jest niemożliwe, bo wyróżnik trójmianu x2 + 1 jest ujemny.Nas w tym rozdziale interesować będą wielomiany o współczynnikach rze-czywistych. Wtedy wielomiany pierwsze mają ściśle określoną postać:

Twierdzenie 6.3.4. Wśród wielomianów o współczynnikach rzeczywistychjedynymi pierwszymi wielomianami są wielomiany stopnia pierwszego (tzn.postaci x−a, a ∈ ℜ) oraz wielomiany postaci x2+ px+ q, gdzie p2− 4q < 0.

Analogicznie do Twierdzenia 4.2.1 (Podstawowego Twierdzenia Arytme-tyki) i Twierdzenia 4.2.2 mamy

Page 124: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

110 6. Funkcje tworzące

Twierdzenie 6.3.5. Podstawowe twierdzenie algebry wielomianówrzeczywistych Każdy wielomian rzeczywisty A(x) można przedstawić w po-staci iloczynu stałej (jest to najwyźszy współczynnik wielomianu) i wielomia-nów pierwszych. Jeśli mamy dwa takie przedstawienia A(x) = an

∏mi=1 Pi(x) =

an∏m

i=1 Qi(x) to różnią się one tylko porządkiem, to znaczy ciąg wielomia-nów Pi, 1 ≤ i ≤ m jest permutacją Qi, 1 ≤ i ≤ m. )

Stąd i z Twierdzenia 6.3.4 otrzymujemy

Twierdzenie 6.3.6. Dla każdego wielomianu o współczynnikach rzeczywi-stych A(x) istnieją liczby rzeczywiste ao, pi, qi, 1 ≤ i ≤ l, xil+1 ≤ i ≤ k oraznaturalne si, 1 ≤ i ≤ k, takie, że p2i − 4qi < 0, 1 ≤ i ≤ l, oraz

A(x) = a0(x2 + p1x+ q1)

s1 . . . (x2 + plx+ ql)sl(x− xl+1)

sl+1 . . . (x− xk)sk ,

(6.3.2)gdzie degA(x) = 2

∑li=1 si +

∑ki=l+1 si.

Znajdowanie rozkładu (6.3.2) dla dowolnego wielomianu (porównaj Al-gorytm faktoryzacji 4.3) może być czasem bardzo trudne. Pomocne w takiejsytuacji jest następujące twierdzenie

Twierdzenie 6.3.7. (Bezout E.) Resztą z dzielenia wielomianu P (x) przezdwumian (x− a) jest P (a).

Twierdzenie 6.3.8. Jeżeli liczba wymierna pq (p ⊥ q) jest miejscem ze-

rowym wielomianu A(x) = anxn + an−1x

n−1 + . . . + a0 o współczynnikachcałkowitych (ai ∈ Z, 0 ≤ i ≤ n) to p|a0 oraz q|an.Dowód. Ponieważ A(pq ) = 0 więc

anpn + an−1p

n−1q + an−2pn−2q2 + . . .+ a1pq

n−1 + a0qn = 0,

i uwzględniając fakt, że p ⊥ q z podzielności tych czynników otrzymujemytezę.

Twierdzenie 6.3.8 wskazuje, że aby znaleźć miejsca zerowe wielomianu owspółczynnikach całkowitych należy przebadać dzielniki wyrazu wolnego.

Przykład 6.3.4. Rozłóż wielomian A(x) = 2x4 + x3 − 8x2 + x − 10 naczynniki pierwsze. Ponieważ 10 = 1 · 2 · 5 więc ”podejrzane” liczby to p =

Page 125: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.3. Algebra wielomianów rzeczywistych 111

1, 2, 5, 10,−1,−2,−5,−10, a q = 1, 2

p q pq A(pq )

1 1 1 −142 1 2 05 1 5 1170

10 1 10 40400−1 1 −1 −18−2 1 −2 −20−5 1 −5 1210−10 1 −10 18180

p q pq A(pq )

1 2 12 −111

42 2 1 −145 2 21

2 3614

10 2 5 1170−1 2 −1

2 −614

−2 2 −1 −18−5 2 −21

2 0−10 2 −5 1210

a więc A(x) dzieli się przez (x−2) oraz (x+212 ). Dzieląc, jak w przykładzie

6.3.1, A(x) przez (x−2) otrzymujemy B(x) = 2x3+5x2+2x, a dalej dzielącB(x) przez (x+ 21

2 ) otrzymujemy C(x) = 2x2 + 2 = 2(x2 + 1), a ponieważ = 0 − 4 = −4 jest ujemna, więc wielomian x2 + 1 jest nierozkładalny.Stąd

A(x) = 2(x2 + 1)(x + 21

2)(x− 2),

i jest to poszukiwany rozkład na czynniki pierwsze.

6.3.3. Funkcje wymierne

Definicja 6.3.5. Funkcja wymierna R(x) jest to funkcja postaci P (x)Q(x) , gdzie

P (x) oraz Q(x) 6= 0 są wielomianami skończonego stopnia takie, żeNWD(P,Q) ≡ 1. Przedstawienie funkcji wymiernej jest jednoznaczne zdokładnością do stałej.

Definicja 6.3.6. Funkcję wymierną R(x) nazywamy ułamkiem prostym je-śli ma ona postać

R(x) =Q(x)

(P (x))n,

gdzie P jest wielomianem pierwszym i degQ(x) < degP (x).

Mimo licznych analogii wielomianów do liczb naturalnych, wielomianysą funkcjami ciągłymi i pewne wyniki są związane z zachowaniem funkcji.Następujące twierdzenie jest interesującym uogólnieniem wzoru Taylora:

Twierdzenie 6.3.9. Jeżeli A(x) i B(x) są dowolnymi wielomianami idegB(x) > 0 to istnieją wielomiany Ci(x), 0 ≤ i ≤ q = ⌊degA(x)

degB(x)⌋, takieże degCi(x) < degB(x), 0 ≤ i ≤ q, oraz

A(x) = C0(x)Bq(x) + C1(x)B

q−1(x) + . . . Cq−1(x)B(x) + Cq(x).

Page 126: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

112 6. Funkcje tworzące

Dowód. Załóżmy, że twierdzenie jest prawdziwe dla wielomianów A(x)stopnia < l i niech degA(x) = l. Z twierdzenia 6.3.1 istnieją wielomianyC0(x) i A1(x) takie, że

A(x) = C0(x)Bq(x) +A1(x),

i degA1(x) < degBq(x) ≤ degA(x). Ponadto musimy mieć degC0(x) <degB(x) w przeciwnym razie liczba q byłaby źle zdefiniowana. Teraz stosu-jąc założenie indukcyjne do wielomianów A1(x) i B(x) otrzymujemy tezę.

Przyjmując B(x) = x− a można trochę więcej w tym przypadku powie-dzieć o wielomianach Ci(x). Wtedy Ci(x) = di

(dx)iA(a) = A(i)(a), a rozwi-

nięcie staje się rozwinięciem Taylora.

Twierdzenie 6.3.10. Każda funkcja wymierna jest sumą wielomianu i ułam-ków prostych.Dowód. Niech R(x) = A(x)

B(x) , gdzie B(x) =∏n

i=1 Plii (x) jest rozkładem

wielomianu B(x) na czynniki pierwsze (stał a przy rozwinięciu przyjmyjemy1). Dowodzimy indukcyjnym względem n. Jeśli n = 1 to R(x) = A(x)

Pl11 (x)i sto-

sując teraz Twierdzenia 6.3.9 z B(x) zastąpionym przez P1(x) otrzymujemytezę.

Jeśli twierdzenie jest prawdziwe dla n−1 to ponieważNWD(n−1∏

i=1P lii , P

lnn )(x)

= 1, więc z Twierdzenia 6.3.3 istnieją wielomiany K1(x) i K2(x) takie, że

K1(x)n−1∏

i=1

P lii (x) +K2(x)P

lnn (x) = 1,

a stąd

R(x) =A(x)

∏ni=1 P

lii (x)

=A(x)K1(x)

P lnn (x)

+A(x)K2(x)∏n−1

i=1 P lii (x)

.

Z Twierdzenia 6.3.9 pierwszy składnik jest sumą wielomianu i ułamkówprostych a drugi jest taką sumą z założenia indukcyjnego.

Przykład 6.3.5. Opisaną wyżej metodę ogólną zilustrujemy na przykładziefunkcji

R(x) =x4 − x2 + 1

x3 − x2 − x+ 1.

Dzieląc, tak jak w przykładzie 6.3.1, x4 − x2 + 1 przez x3 − x2 − x + 1otrzymujemy rozkład:

R(x) = (x+ 1) +x2

x3 − x2 − x+ 1.

Page 127: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.3. Algebra wielomianów rzeczywistych 113

Spróbujmy teraz rozłożyć Q(x) = x3 − x2 − x + 1 na czynniki pierwsze.Korzystając z Twierdzeń 6.3.7 i 6.3.8 widzimy, że ”podejrzanymi” punktamisą −1, 1 i rzeczywiście Q(−1) = Q(1) = 0. Dzieląc teraz wielomian Q(x)

przez (x + 1) otrzymujemy Q(x)x+1 = x2 − 2x + 1 i ze wzorów skróconego

mnożenia lub po podzieleniu przez (x− 1) widzimy, że

x3 − x2 − x+ 1 = (x− 1)2(x+ 1),

a stąd i z Twierdzenia 6.3.10 (z dowodu) otrzymujemy rozkład

x2

x3 − x2 − x+ 1=

x2

(1− x)2 · (1 + x)=

α

1− x+

β

(1− x)2+

γ

1 + x.

Mnożąc obie strony przez (1− x)2 · (1 + x) otrzymujemy:

x2 = α(

1− x2)

+ β (1 + x) + γ(

1− 2x+ x2)

.

Dwa wielomiany są równe, gdy współczynniki przy odpowiadających potęgachsą sobie równe. Wartości α, β, γ można więc wyliczyć z układu równań

α + β + γ = 0β − 2γ = 0

− α + γ = 1.

Rozwiązaniem powyższego układu są wartości α = −34 , β = 1

2 , γ = 14 . W

konsekwencji ze wzorów z Tabeli 6.1 otrzymujemy szereg

R(x) = (x+ 1) +∞∑

n=0

(

−3

4+

1

2(n+ 1) +

1

4(−1)n

)

xn

= 1 + x+ x2 + x3 + 2x4 + 2x5 + 3x6 + 3x7 + 4x8 + . . . .

Przykład 6.3.6. Rozwiń funkcję tworzącą R(z) = 5z4−2z3+4z2+z−23z5−z4+6z3−2z2+3z−1 , w

szereg. W tym celu rozkładamy mianownik na czynniki pierwsze. Z Twier-dzeń 6.3.7 i 6.3.8 ”podejrzanymi” punktami są −1

3 , 13 , 1,−1 a wartości mia-nownika w tych punktach to odpowiednio 238

81 , 0, 16,−8 a więc dwumian(z − 1

3 ) jest dzielnikiem mianownika. Stąd

3z5 − z4 + 6z3 − 2z2 + 3z − 1 = 3(z − 1

3)(1 + 2z2 + z4).

Dalej, ze wzorów skróconego mnożenia, 1+2z2+z4 = (1+z2)2 więc rozkładna czynniki pierwsze mianownika jest następujący:

3z5 − z4 + 6z3 − 2z2 + 3z − 1 = 3(z − 1

3)(1 + z2)2.

Page 128: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

114 6. Funkcje tworzące

Stąd

R(z) =az + b

1 + z2+

cz + d

(1 + z2)2+

e

3z − 1.

Zatem

5z4 − 2z3 + 4z2 + z − 2

= (az + b)(1 + z2)(3z − 1) + (cz + d)(3z − 1) + e(1 + z2)2,

= (3a+ e)z4 + (3b− a)z3

+(3a+ 3c+ 2e− b)z2 + (3b− a+ 3d− c)z + (e− b− d),

czyli współczynniki a, b, c, d, e spełniają układ równań

3a +e = 5,−a +3b = −2,3a −b +3c +2e = 4,−a +3b −c +3d = 1,

−b −d +e = −2.

Stąd a = 2, b = c = 0, d = 1, e = −1 a więc

R(z) =1

(1 + z2)2+

2z

1 + z2− 1

1− 3z.

Teraz wykorzystujemy tabele 6.1 i 6.2. Ponieważ 11+z = [(−1)n, n ≥ 0]

więc 11+z2 = [(−1)[n mod 4 = 2] + 1[n mod 4 = 0], n ≥ 0] i ze wzoru

na splot (Uwaga 6.1.1) 1(1+z2)2 = [

∑nk=0((−1)[k mod 4 = 2] + [k mod 4 =

0])((−1)[n−k mod 4 = 2]+[n−k mod 4 = 0]), n ≥ 0] oraz z1+z2

= [(−1)[n−1 mod 4 = 2] + [n− 1 mod 4 = 0], n ≥ 0] a stąd i z −1

1−3z = [−3n, n ≥ 0]

[zn]R(z) =n∑

k=0

([k mod 4 = 2, n mod 4 = 0] + [k mod 4 = 0, n mod 4 = 0])

+(−1)([k mod 4 = n mod 4 = 2] + [k mod 4 = 0, n mod 4 = 2]))

+(−2)[n− 1 mod 4 = 2] + 2[n− 1 mod 4 = 0]− 3n,

=

n2 − 3n, jeżeli n mod 4 = 0,2− 3n, jeżeli n mod 4 = 1,−n

2 − 3n, jeżeli n mod 4 = 2,−2− 3n, jeżeli n mod 4 = 3.

Jeżeli mianownik Q(x) funkcji wymiernej R(x) = P (x)Q(x) posiada jedy-

nie pierwiastki jednokrotne, to następne twierdzenie znacznie przyspieszarozkład R(x) w szereg potęgowy.

Page 129: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.3. Algebra wielomianów rzeczywistych 115

Twierdzenie 6.3.11. Jeśli R(x) = P (x)/Q(x), gdzie Q(x) = q0 ·(1− ρ1x)·. . . · (1− ρlx) i liczby ρ1, . . . , ρl są parami różne, to w przypadku gdy P (x)jest wielomianem stopnia mniejszego niż l, zachodzi

[xn]R(x) = a1ρn1+. . .+alρ

nl , dla ak =

−ρk · P (1/ρk)

Q′(1/ρk)=

P (1/ρk)

ρ0∏

j 6=k(1− ρj/ρk).

Przykład 6.3.7. Mianownik Q(x) funkcji wymiernej

R(x) =P (x)

Q(x)=

2x

1− 5x− 2x2 + 24x3.

ma trzy różne pierwiastki i można R(x) przedstawić jako

R(x) =2x

(1 + 2x) (1− 3x) (1− 4x).

W Twierdzenia 6.3.11 otrzymujemy więc

k ρk P (1/ρk)∏

j 6=k(1− ρj/ρk) ak0 1

1 −2 −1 152 − 2

15

2 3 23 −5

9 −65

3 4 12

38

43

tak, że

[xn]R(x) = − 2

15(−2)n − 6

53n +

4

34n.

Przykład 6.3.8. Z Twierdzenia 6.3.11 rekurencję Fibonacciego możemyrozwiązać prawie natychmiast. Teraz P (z) = z,Q(z) = (1 − 1+

√5

2 z)(1 −1−

√5

2 z), a stąd F1 =2

1+√5

(1−1)!(1− 1−√

5

1+√5)= 1√

5i F2 =

2

1−√

5

(1−1)!(1− 1+√

5

1−√

5)= − 1√

5a

więc

Fn = [zn]F (z) =1√5

((

1 +√5

2

)n

−(

1−√5

2

)n)

.

Przykład 6.3.9. Niech an = (1 +√2)n + (1−

√2)n, n ≥ 0. Znajdź proste

równanie rekurencyjne, które spełniają te współczynniki.

Page 130: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

116 6. Funkcje tworzące

Rozwiązanie:Z Twierdzenia 6.3.11 możemy wywnioskować, że funkcja tworząca tego

ciągu ma postać

A(z) =1

1− (1 +√2)z

+1

1− (1−√2)z

=2− 2z

1− 2z − z2

a stądA(z)− 2A(z)z − z2A(z) = 2− 2z,

czyliA(z) = 2zA(z) + z2A(z) + 2− 2z,

więc

ao = 2, a1 = 2,an = 2an−1 + an−2, n ≥ 2.

Twierdzenie 6.3.11 możemy stosować dla jednokrotnych pierwiastkówmianownika Q(x), następujący wynik wyjaśnia co się dzieje gdy mamy wie-lokrotne pierwiastki rzeczywiste:

Twierdzenie 6.3.12. O rozwijaniu wymiernych funkcji tworzących.Jeśli R(z) = P (z)/Q(z), gdzie Q(z) = (1 − ρ1z)

d1 ...(1 − ρlz)dl i liczby

ρ1, ρ2, ..., ρl są parami różne, to w przypadku gdy P (z) jest wielomianemstopnia mniejszego niż d1 + d2 + ...+ dl , zachodzi

[zn]R(z) = f1(n)ρn1 + . . .+ fl(n)ρ

nl ,

dla wszystkich n ≥ 0 gdzie wielomian fk(n) jest wielomianem stopniadk − 1 z najbardziej znaczącym współczynnikiem

ak =P (1/ρk)

(dk − 1)!∏

j 6=k(1− ρj/ρk)dj, 1 ≤ k ≤ l.

Przykład 6.3.10. Rozwiązać rekurencję

r0 = r1 = r2 = r3 = 1, r4 = 2,rn = rn−1 + rn−2 − rn−3, n ≥ 5.

Postępując jak w Przykładzie 6.2.1 określamy rekurencję zwartym wzorem:

rn = rn−1 + rn−2 − rn−3 + [n = 4]− [n = 2] + [n = 0], n ∈ Z,

Page 131: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

6.3. Algebra wielomianów rzeczywistych 117

której funkcja tworząca spełnia równanie

R(z) =z4 − z2 + 1

1− z − z2 + z3= (z + 1) +

z2

(1− z)2(1 + z).

Stosujemy Twierdzenie 6.3.12 z P (x) = x2 oraz Q(x) = (1 − x)2(1 + x) awięc

k ρk dk P (1/ρk) (dk − 1)!∏

j 6=k(1− ρj/ρk)dj ak

0 1

1 1 2 1 2 12

2 −1 1 1 4 14

stąd

R(z) = 1 + z +∞∑

n=0

(1

2n+ α+

1

4(−1)n)zn,

a ponieważ

1 = r1 = 1 +1

2+ α− 1

4,

(jest to współczynnik przy z) stąd α = −14 . Zwróćmy uwagę, że rozważana

tutaj funkcja tworząca jest identyczna jak ta w Przykładzie 6.3.5.

Ćwiczenie 6.3.1. Rozwiąż rekurencję

g0 = g1 = 1,gn = gn−1 + 2gn−2 + (−1)n dla n ≥ 2.

Definicja 6.3.7. Równanie postaci

rn + prn−1 + qrn−2 = 0, n ≥ n0,

przy dowolnych warunkach brzegowych postaci rno−1 = α, rno−2 = β, nazy-wamy rekurencją liniową jednorodną rzędu drugiego.

W tym podrozdziale omawialiśmy tylko sytuację wielomianów o współ-czynnikach rzeczywistych unikając rozszerzeń na liczby zespolone. Rozdziałten zakończymy jednak wynikiem pokazującym jakie rozwiązania równańrekurencyjnych pojawiają się gdy mianownik ma pierwiastki zespolone (zpodobną sytuacją mieliśmy do czynienia w Przykładzie 6.3.6).

Uwaga 6.3.13. Równanie rekurencyjne liniowe jednorodne rzędu pierwsze-go ma rozwiązania w zależności od zachowania trójmianu kwadratowego

x2 + px+ q = 0. (6.3.3)

Jeśli

Page 132: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

118 6. Funkcje tworzące

• to równanie ma dwa różne pierwiastki rzeczywiste ∆ = p2−4q > 0, α1 =(−p −

√∆)/2, α2 = (−p +

√∆)/2, to rozwiązanie tego równania jest

postaci:rn = A1α

n1 +A2α

n2 , n ≥ n0, (6.3.4)

dla pewnych stałych A1, A2,• to równanie ma jeden pierwiastek rzeczywisty = p2 − 4q = 0, torozwiązanie tego równania jest postaci:

rn = (A1n+A2)(−p2

)n, (6.3.5)

dla pewnych stałych A1, A2,• to równanie ma dwa różne pierwiastki zespolone (jest wielomianempierwszym) α1 = r(cos(φ) + i sin(φ)), α2 = r(cos(φ) − i sin(φ)), to roz-wiązanie tego równania jest postaci:

rn = rn(A1 cos(nφ) +A2 sin(nφ)), n ≥ n0,

dla pewnych stałych A1, A2.

Stałe A1 i A2 wyliczamy z warunków brzegowych, stosując odpowiednize wzorów (6.3.3)-(6.3.5) do rno−1 = α oraz rno−2 = β, i rozwiązując układdwóch równań z dwoma niewiadomymi.

Podsumowanie.• W rozdziale tym poznaliśmy najsilniejszą metodę rozwiązywania reku-rencji rn = fn(rn−1, rn−2, ...) takich, że funkcje fn(x1, x2, ...) są liniowewzględem swoich argumentów - metodę funkcji tworzących.

• Stosunko łatwo, w tej metodzie, wyliczyć funkcję tworzącą R(x), głównątrudnością jest rozwinięcie tej funkcji w szereg potęgowy. Dlatego roz-winęliśmy w tym rozdziale teorię wielomianów oraz funkcji wymiernych(funkcje tworzące są takiej postaci) pokazując jak rozbić je na ułamkiproste i jak te ułamki proste rozwinąć w szereg potęgowy.

Page 133: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Rozdział 7

Wstęp do analizy algorytmów

7.1. Prawdopodobieństwo dyskretne . . . . . . . . . . . . . 1207.2. Asymptotyka . . . . . . . . . . . . . . . . . . . . . . . . 1257.3. Algorytmy sortowania . . . . . . . . . . . . . . . . . . . 1297.4. Problem rozmieszczenia rekordów w pamięci . . . . . . 137

Page 134: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

120 7. Wstęp do analizy algorytmów

7.1. Prawdopodobieństwo dyskretne

Doświadczeniem losowym nazywamy dowolne fizyczne lub myślowe do-świadczenie które może przyjmować mierzalne wyniki. Przestrzenią zdarzeńelementarnych Ω = ω1, ω2, ..., ωn jest to zbiór wszystkich możliwych wyni-ków tego doświadczenia a n jest to ilość możliwych wyników. Liczba n możebyć skończona lub nieskończona ale w tym rozdziale zakładać będziemy, żezbiór elementów Ω zawsze da się ustawić w ciąg, to znaczy Ω jest zbioremprzeliczalnym. Przestrzeń tą nazywamy wtedy dyskretną (stąd prawdopo-dobieństwo dyskretne).Zdarzenie losowe, poza przestrzenią losową, charakteryzuje również praw-

dopodobieństwo. Dla Ω = ωn, n ∈ N jest to zbiór nieujemnych liczbP = pn, n ∈ N skojarzonych z Ω i takich, że

∑∞n=1 pn = 1. O zbiorze P

mówimy, że jest to rozkład prawdopodobieństwa, pn jest traktowane jakoprawdopodobieństwo zdarzenia ωn.

Przykład 7.1.1. Niech doświadczenie losowe polega na rzucie kostką dogry. Wówczas mamy możliwych 6 wyników doświadczenia: Ω = ω1, ω2, ω3,ω4, ω5, ω6 gdzie ωi oznacza, że na kostce wypadło i oczek (1 ≤ i ≤ 6). Wzależności od tego, czy kostka jest symetryczna, czy taka, że na przykład, 6wypada dwa razy częściej niż inny wynik, możemy określić różne rozkładyprawdopodobieństwa. W pierwszej sytuacji kładziemy P (ωi) =

16 , 1 ≤ i ≤ 6,

a w drugim P ′(ωi) =17 , 1 ≤ i ≤ 5, P ′(ω6) =

27 . Trudno jest na pierwszy rzut

oka rozstrzygnąć, o jaki rozkład prawdopodobieństwa w naszym konkretnymprzypadku chodzi. Możemy wybrać prawidłowy rozkład albo analizując bardzodokładnie kształt i budowę kostki, albo wykonać pewną liczbę doświadczeń(rzutów kostką) i przeanalizować częstości z jakimi będą się pojawiały po-szczególne wartości. Jeżeli kostka jest prawie idealnie symetryczna, to cho-ciaż trudno oczekiwać, że rozkład wszystkich prawdopodobieństw będzie takijak P powyżej, to błąd jaki popełnimy wybierając P będzie przypuszczalnieniewielki.Rozważmy teraz zdarzenie losowe A, polegające na tym, że wypadła pa-

rzysta liczba oczek, tzn. A = ω2, ω4, ω6. Wtedy dla kostki o rozkładzieprawdopodobieństwa P mamy P (A) = P (ω2) + P (ω4) + P (ω6) = 3

6 = 12 ,

podczas gdy dla rozkładu P ′ mamy P ′(A) = P ′(ω2) + P ′(ω4) + P ′(ω6) =47 .

Przykład 7.1.2. Jeżeli rzucamy po kolei dwoma kostkami, obie idealniesymetryczne (o rozkładzie P z Przykładu 7.1.1) i interesuje nas zdarzenielosowe (A) polegające na tym, że w sumie na obu kostkach wypadło sześćoczek, to analizę można przedstawić następująco:

Ω = ω(i,j), 1 ≤ i, j ≤ 6 przy czym np. ω(3,5) oznacza, że na pierwszejkostce wypadły 3 oczka a na drugiej 5 (odróżniamy to zdarzenie od ω(5,3)).

Page 135: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.1. Prawdopodobieństwo dyskretne 121

Wtedy A = ω(1,5), ω(2,4), ω(3,3), ω(4,2), ω(5,1) i P (A) = 536 . Rozważmy teraz

zdarzenia Ω′ = ω′1, ..., ω

′6 - wynik rzutu pierwszą kostką i Ω′′ = ω′′

1 , ..., ω′′6

- wynik rzutu drugą kostką, wtedy Ω = Ω′ × Ω′′ (iloczyn kartezjański) tak,że ω(i,j) = (ω′

i, ω′′j ), 1 ≤ i, j ≤ 6. Niech teraz X1 : Ω′ → 1, 2, 3, 4, 5, 6

tak, że X1(ω′i) = i, 1 ≤ i ≤ 6, oraz X2 : Ω′′ → 1, 2, 3, 4, 5, 6 tak, że

X2(ω′′i ) = i, 1 ≤ i ≤ 6. Wtedy pytamy się o sumę tych funkcji S = X1 +X2.

Zauważmy, że z Tablicy 7.1

Tabela 7.1. Rozkład sumy zmiennych losowych

S 2 3 4 5 6 7 8 9 10 11 12

(1,1) (1,2)(2,1)

(1,3)(2,2)(3,1)

(1,4)(2,3)(3,2)(4,1)

(1,5)(2,4)(3,3)(4,2)(5,1)

(1,6)(2,5)(3,4)(4,3)(5,2)(6,1)

(2,6)(3,5)(4,4)(5,3)(6,2)

(3,6)(4,5)(5,4)(6,3)

(4,6)(5,5)(6,4)

(5,6)(6,5)

(6,6)

P × P 136

236

336

436

536

636

536

436

336

236

136

P × P ′ 142

242

342

442

542

742

642

542

442

342

242

P ′ × P 142

242

342

442

542

742

642

542

442

342

242

P ′ × P ′ 149

249

349

449

549

849

749

642

542

449

449

możemy odczytać P [S = 6] = 536 .

Na przestrzeni zdarzeń elementarnych Ωmożemy zdefiniować różne funk-cje X,Y,Z będące naszym subiektywnym (w odróżnieniu od rozkładu praw-dopodobieństwa) wartościowaniem zdarzeń elementarnych, dla jednej osobywartość zdarzenia ω1 może wynosić x1 a dla drugiej y1. Funkcje te nazy-wamy zmiennymi losowymi. Funkcje X1,X2, S z Przykładu 7.1.2, są to teżzmienne losowe.Funkcja X przyjmująca tylko wartości 0 i 1 nazywana jest indykatorem

zdarzenia A gdzie A = ∪ω∈Ω:X(ω)=1ω i oznaczana jest przez I[A].Gdy chcemy ocenić zachowanie się jakiejś zmiennej często pytamy o

jej wartość przeciętną. Nie jest to jednak wielkość jednoznaczna, możemyobliczaćmedianę zmiennej losowej X - jest to każda liczba x taka, że

P [X ≤ x] ≥ 1

2, oraz P [X ≥ x] ≥ 1

2;

dominantę zmiennej losowej X - jest to każda liczba rzeczywista x taka,że

∀y∈ℜP [X = x] ≥ P [X = y];

Page 136: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

122 7. Wstęp do analizy algorytmów

wartość oczekiwaną zmiennej losowej X - jest to suma

EX =∑

k∈NX(ωk)pk,

o ile oczywiście ta suma istnieje.średnią geometryczną lub harmoniczną zmiennej X to

G =∏

k∈NX(ωk)

1/pk

iH =

1∑

k∈N 1/pkX(ωk),

odpowiednio. Średnich tych bardzo żadko się używa, jednak są sytuacje,na przykład gdy X jest jakimś ilorazem, indeksem np. BMI, wtedy śred-nia geometryczna jest najsensowniejszym opisem zmiennej losowej X.

Największe znaczenie spośród wymienionych współczynników ma war-tość oczekiwana, chociaż najciekawsze są własności matematyczne mediany.Wartość oczekiwana mierzy przeciętny poziom funkcjii X. Jeżeli zmiennąlosową X traktować jak grę z jakimś realnym lub abstrakcyjnym przeciwni-kiem, a jej wartości to ”nasza” wygrana, to wartość oczekiwana jest prze-ciętną wygraną w jednej grze. Mówi nam ona, czy gra jest dla nas opłacalna(wartość oczekiwana dodatnia), czy sprawiedliwa (wartość oczekiwana 0),czy też nieopłacalna (wartość oczekiwana ujemna). Jednak poza globalnąoceną gry chcielibyśmy mieć ocenę ryzyka przystąpienia do pojedynczej gry.Również tutaj mamy bardzo dużo różnych współczynników (np. odchyleniećwiartkowe, odchylenie od średniej) my jednak skoncentrujemy się tutajtylko na jednaj - wariancji i jej znormalizowanej postaci - odchyleniu stan-dardowym.Wariancją zmiennej losowej X nazywamy wartość

V ar(X) =∑

k∈N(X(ωk)−EX)2pk =

k∈NX(ωk)

2pk−(EX)2 = E(X2)−(EX)2,

o ile również istnieje. Odchylenie standardowe to δ(X) =√

V ar(X).Jeśli Ω = ω1, ..., ωn oraz pi = 1

n , 1 ≤ i ≤ n, a zmienna losowa X(ωi) =i, 1 ≤ i ≤ n, to mówimy że zmienną losową X ma rozkład jednostajny na1, 2, ..., n (piszemy U(1, n)) a jeśli X(ωi) = i − 1, 1 ≤ i ≤ n, to X marozkład jednostajny na 0, 1, 2, ..., n − 1(U(0, n− 1)). Jak łatwo sprawdzić

EU(1, n) =n∑

i=1

i1

n=

n+ 1

2,

EU(0, n − 1) =n−1∑

i=0

i1

n=

n− 1

2.

Page 137: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.1. Prawdopodobieństwo dyskretne 123

Przykład 7.1.3. W jednym z N pączków ukryta jest złota obrączka. Ilepowinniśmy zjeść pączków aby tę obrączkę znaleźć? Inaczej mówiąc na któ-rej pozycji może się znaleźć pączek ze złotą obrączką? Różnych ustawieńzbioru N elementowego jest N ! a jeśli pączek jest na i-tej pozycji to różnychustawień jest (N−1)! (permutacje wszystkich z wyjątkiem tego z obrączką) awięc jeśli zmienna losowa określa numer na której pozycji jest poszukiwanypączek to P [X = i] = (N−1)!

N ! = 1N , 1 ≤ i ≤ N, a więc

EX =N∑

i=1

i1

N=

N(N + 1)

2N=

N + 1

2.

Łatwo widać w tym przykładzie, że X ma rozkład jednostajny na 1, 2, 3, ..., N.

Mówimy, że dwie rodziny zmiennych losowych Xi, 1 ≤ i ≤ n orazYi, 1 ≤ i ≤ n są niezależne , jeżeli dla dowolnych rodzin podzbiorówAi, 1 ≤ i ≤ n oraz Bi, 1 ≤ i ≤ n zbioru Ω mamy

P [∩ni=1Xi ∈ Ai ∩ Yi ∈ Bi] = P [∩ni=1Xi ∈ Ai]P [∩ni=1Yi ∈ Bi].

Twierdzenie 7.1.1. Dla dowolnych dwóch zmiennych losowych:

E(X + Y ) = EX +EY,

V ar(X + Y ) = V ar(X) + V ar(Y ) + 2(E(XY )− (EX)(EY )),

a jeśli X i Y są niezależne, to

E(XY ) = EX ·EY,

V ar(X + Y ) = V ar(X) + V ar(Y ),

V ar(XY ) = (EX2)V ar(Y ) + (EY )2V ar(X).

Ponadto

EI[A] = P (A),

V ar(I[A]) = P (A)(1 − P (A)).

Wniosek 7.1.1. Jeżeli Xi, i ≥ 1 jest ciągiem zmiennych losowych a V =∑n

i=1 Xi to EV =∑n

i=1 EXi.

Pozostaje pytanie, jak analizować sytuację EXY , gdy zmienne losoweX i Y są zależne? Jak zmieni się rozkład prawdopodobieństwa zmiennejlosowej X gdy o niej coś więcej wiemy?

Przykład 7.1.4. Kolega rzucił dwoma symetrycznymi kostkami i oświad-czył, że suma oczek wyniosła 5. My tego nie widzieliśmy, ale nie mamy

Page 138: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

124 7. Wstęp do analizy algorytmów

podstaw koledze nie wierzyć, jakie jest prawdopodobieństwo, że na pierwszejkostce wypadnie i - oczek (X1), czy dalej P [X1 = i] = 1

6 , 1 ≤ i ≤ 6? ZTabeli 7.1 widzimy, że teraz nasza przestrzeń zmieniła się, jeżeli S = 5 tomożliwymi wynikami są ΩS=5 = ω(1,4), ω(2,3), ω(3,2), ω(4,1) i widzimy, że

P [X1 = i|S = 5] =

14 , dla i = 1, 2, 3, 4,0, dla i = 5, 6.

Ogólnie, jeśli znane jest że zaszło jakieś zdarzenie B (z P (B) > 0) wtedyprzestrzeń probabilistyczna zmienia nam się tak, że

P (A|B) = PB(A) =P [A ∩B]

P (B),

wartość tę nazywamy prawdopodobieństwem warunkowym zajścia zdarzenieA pod warunkiem, że wiemy, że zaszło zdarzenie B.

Twierdzenie 7.1.2. Wzór na prawdopodobieństwo całkowite JeżeliHi, 1 ≤ i ≤ n jest takim układem zdarzeń losowych, że

n⋃

i=1

Hi = Ω, Hi ∩Hj = ∅, dla 1 ≤ i 6= j ≤ n,

wtedy dla dowolnego zdarzenia A zachodzi

P (A) =n∑

i=1

P [A|Hi]P [Hi].

Dowód. Ponieważ A = ∪ni=1(A ∩Hi), więc

P (A) =n∑

i=1

P [A ∩Hi]

=n∑

i=1

P [A|Hi]P [Hi].

Przykład 7.1.5. W k szufladach znajduje się odpowiednio m1,m2, ...,mk

kapeluszy tak, że w kadej szufladzie są kapelusze określonego koloru. Chcemyznaleźć jakiś jeden z tych N = m1 + m2 + ... + mk kapeluszy. Po kolorzewiemy w jakiej jest szufladzie a z szuflady wybieramy kapelusze po koleilosowo, bez zwracania, dopóty dopóki nie znajdziemy szukanego. Ile kapeluszyprzejrzymy? Niech Hi, 1 ≤ i ≤ k, oznacza zdarzenie, że szukany kapelusz jestw i-tej szufladzie. Oczywiście Hi ∩ Hj = ∅, i 6= j, i Ω = ∪ni=1Hi. PonadtoP [Hi] =

mi

N , 1 ≤ i ≤ k. Z kolei zdarzenie P [X = j|Hi] =1mi

, 1 ≤ j ≤

Page 139: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.2. Asymptotyka 125

mi, gdzie X oznacza za którym razem z odpowiedniej szuflady wyciągniętoszukany kapelusz. Stąd

P [X = j] =∑

i:mi≥j

1

N,

i

EX =

maxmi,1≤i≤k∑

j=1

jmi : mi ≥ j, 1 ≤ i ≤ kN

=k∑

i=1

mi∑

j=1

j

N=

k∑

i=1

mi(mi + 1)

2N=

k∑

i=1

E(X|Hi)P [Hi].

W Przykładzie 7.1.4 otrzymaliśmy wzór

EX =k∑

i=1

E(X|Hi)P [Hi],

gdzie E(X|A) =∑nk=1 xkP [X = xk|A].

Twierdzenie 7.1.3. Jeśli zmienna losowa N może przyjmować wartości zezbioru 1, 2, 3, ..., n a Xi, 1 ≤ i ≤ n są zmiennymi losowymi niezależnymio tym samym rozkładzie i niezależnymi od N, to

EN∑

i=1

Xi =n∑

k=1

Ek∑

i=1

XiI[N = k] =n∑

k=1

k∑

i=1

EX1P [N = k] = ENEX1.

7.2. Asymptotyka

Rozważając różne nieskończone ciągi możemy wprowadzić pewien po-rządek między ciągami, uwzględniający tylko graniczne zachowanie ciągów:

f(n) ≺ g(n)⇐⇒ limn→∞

f(n)

g(n)= 0.

Relacja ≺ jest przeciwzwrotna, przeciwsymetryczna i przechodnia. Definicjatej relacji jest poprawna, gdy g(n) jest odgraniczone od 0 dla dostateczniedużych n. Można ustawić wiele ciągów w szereg wg. tej relacji:

1 ≺ log log(n) ≺ log(n) ≺ nǫ ≺ nc ≺ nlog(n) ≺ cn ≺ nn ≺ ccn

Page 140: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

126 7. Wstęp do analizy algorytmów

gdzie 0 < ǫ < 1 < c. Dla ciągów zbieżnych do 0 też możemy ustalić pewnąhierarchię asymptotycznego zachowania:

f(n) ≺ g(n)⇐⇒ 1

g(n)≺ 1

f(n).

Co prowadzi do podobnej hierarchii ciągów

1

ccn≺ 1

nn≺ 1

cn≺ 1

nlog(n)≺ 1

nc≺ 1

nǫ≺ 1

log(n)≺ 1

log log(n)≺ 1.

Oczywiście zawsze gdy f(n) → 0 a g(n) 6→ 0 to f(n) ≺ g(n). Mówimy,że f(n) i g(n) mają ten sam współczynnik przyrostu f(n) ≍ g(n), jeżeliistnieje taka stała C, że |f(n)| ≤ C|g(n)| oraz |g(n)| ≤ C|f(n)|. Silniejszyod tego samego współczynnika przyrostu związek - mówimy, że f(n) jestasymptotyczna do g(n) (f(n) ∼ g(n)) jeśli limn→∞

f(n)g(n) = 1. Symbolu tego

użyliśmy w Twierdzeniu 4.2.5 dla opisania asymptotycznego zachowaniagęstości i wartości liczb pierwszych w zbiorze liczb naturalnych. Z Przykładu6.2.1 dla liczb Fibonacciego Fn mamy Fn ≍ (1+

√5

2 )n. Z kolei, z podrozdziału2.4 mamy Hn ≺ ln(n).W roku 1894 niemiecki matematyk Paul Bachmann wprowadził konwen-

cję notacyjną zwaną ”duże O”.

f(n) = O(g(n))⇐⇒ ∃C∀n∈N |f(n)| ≤ C|g(n)|.

Na przykładw Przykładzie 1.2.2 suma ciągu arytmetycznego spełnia sn = O(n2).w Przykładzie 1.2.4 ilość ruchów w problemie wieży z Hanoi hn = O(2n).w Przykładzie 1.2.5 ilość obszarów w problemie pizzy ln = O(n2).w Przykładzie 1.2.6 pozycja w problemie Flawiusza Js(n) = O(n), aleten wynik akurat jest kompletnie bezwartościowy.

w Przykładzie 1.2.3 w problemie cyfr an = O(10n).w Przykładzie 2.2.1 ciągu τn spełnia τn = O(n ln(n)).w Rozdziale 2.4 dla ciągu Hn mamy

Hn = O(ln(n)),

Hn − ln(n) = O(1),

Hn − ln(n)− γ = O(1

n),

Hn − ln(n)− γ − 1

2n= O(

1

n2)

i tak dalej.w Przykładzie 3.1.1 jest

0≤k<n⌊k2⌋ = O(n2).

Page 141: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.2. Asymptotyka 127

Pojawiają się pewne wątpliwości w chwili gdy używamy symbolu O poobu stronach równości, na przykład, co oznacza zapis

f(n) +O(g(n)) = O(h(n)).?

Formalnie biorąc symbol O(g(n)) oznacza zbiór takich wszystkich takichciągów, które podzielone przez g(n) są w granicy ograniczone, a równośćf(n) = O(g(n)) nie oznacza, że zbiór O(g(n)) jest jednoelementowy i za-wiera tylko f(n), lecz że f(n) ∈ O(g(n)). Wtedy zapis f(n) + O(g(n)) =O(h(n)) możemy interpretować tak, że jeśli O(g(n)) = gx(n) : x ∈ J tof(n) + gx(n) : x ∈ J ⊂ O(h(n)). Przy tym zastrzeżeniu możemy używaćsymbolu O po obu stronach równości.

Twierdzenie 7.2.1. Dla dowolnych ciągów f(n), g(n), zachodzi

O(f(n)) +O(g(n)) = O(f(n) + g(n)),

f(n) = O(f(n)),

cO(f(n) = O(f(n)),

O(O(f(n))) = O(f(n)),

O(f(n))O(g(n)) = O(f(n)g(n)),

O(f(n)g(n)) = f(n)O(g(n)),

ln(1 +O(f(n))) = O(f(n)),

eO(f(n)) = 1 +O(f(n)).

Edmund Landau zaproponował następującą notację ”małego o”:

f(n) = o(g(n)) ⇐⇒ ∀ǫ>0∃no∈N∀n≥no|f(n)| ≤ ǫ|g(n)|⇐⇒ f(n) ≺ g(n).

Symbol o(f(n)) jest również bardzo popularny, my jednak do końca tegorozdziału skupimy się na symbolu O(f(n)).Jak w praktyce szacować asymptotyczne zachowanie ciągu? Bardzo czę-

sto rozważany ciąg jest ciągiem sum częściowych, tzn. f(n) =∑n

k=1 ak, jakwtedy postępować? Pomóc nam mogą następujące wyniki:

Twierdzenie 7.2.2. Cauchy’ego - Maclaurina. Jeżeli rzeczywista nie-ujemna funkcja f(x) jest malejąca (rosnąca) w przedziale [a, b] dla a, b ∈ Zto

b∑

k=a+1

f(k) ≤∫ b

af(x) ≤

b−1∑

k=a

f(k),

(∑b−1

k=a f(k) ≤∫ ba f(x) ≤∑b

k=a+1 f(k).)

Page 142: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

128 7. Wstęp do analizy algorytmów

Twierdzenie to wynika z faktu, że interpretacją geometryczną całki jestpole powierzchni poniżej wykresu tej funkcji. Z Rysunku 7.1 łatwo spraw-dzić, że pole

∫ k+1k f(x) dx ograniczają pola dwóch prostokątów f(k) · 1 od

góry i f(k + 1) · 1 od dołu.Rysunek 7.1. Twierdzenie Cauchy’ego - Maclaurina.

6

-1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

y

x

qqqqqqqqqqqqqqqqqqqq

qqqqqqqqqqqqqqqqqqqq

qqqqqqqqqqqqqqqqqqqq

k

f(k+1)

f(k)

Wniosek 7.2.1. Ponieważ∫

xa dx =

1

a+1xa+1, dla a 6= −1,

ln(x), dla a = −1,∫

ln(x) dx = (x− 1) ln(x),∫

1

x(ln(x))mdx =

−1(m− 1)(ln(x))m−1

,

więc

n∑

k=1

ka =

O(na+1), dla a > −1,O(ln(n)), dla a = −1,O(1), dla a < −1,

n∑

k=1

ln(k) = O(n ln(n)),

n∑

k=1

1

k(ln(k))m= O(

1

(ln(n))m−1).

Przykład 7.2.1. Rozważmy sumę z Przykładu 3.3.1. Ponieważ

O(n ln(n)) =1

ln(2)

n∑

k=1

ln(k) <n∑

k=1

⌊log2(k)⌋ <1

ln(2)

n∑

k=1

ln(k)+n = O(n ln(n))+n,

Page 143: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.3. Algorytmy sortowania 129

a więcn∑

k=1

⌊log2(k)⌋ = O(n ln(n)).

W przypadku sum zawierających symbol silni można skorzystać z nas-tępującego opisu asymptotycznego zachowania silni:

Twierdzenie 7.2.3. Wzór Stirlinga Zachodzą

n! ∼ (n

e)n√2πn,

oraz

ek(k−1)

2n ≤ nk

nk≤ e

k(k−1)2(n−k+1) .

7.3. Algorytmy sortowania

Przedstawimy tutaj przykład analizy algorytmów porządkowania ciągu.

7.3.1. Sortowanie przez wstawianie (insertion sort)

Sama idea algorytmu sortowania przez wstawianie polega na przeniesie-niu i -tego elementu i wstawienie w odpowiednie miejsce ciągu a1, a2, ..., ai−1.

Tabela 7.2. Działanie algorytmu proste wstawianie.

Początkowyciąg 32 45 15 27 77 21 11 73

↓i = 2 32 45 15 27 77 21 11 73

|←−−−−−−|i = 3 15 32 45 27 77 21 11 73

|←−−−−−−|i = 4 15 27 32 45 77 21 11 73

↓i = 5 15 27 32 45 77 21 11 73

|←−−−−−−−−−−−−−|i = 6 15 21 27 32 45 77 11 73

|←−−−−−−−−−−−−−−−−−−−−|i = 7 11 15 21 27 32 45 77 73

|←−−|i = 8 11 15 21 27 32 45 73 77

Metoda ta jest powszechnie stosowana przez grających w karty (do szyb-kiego układania kart). Algorytm można opisać następująco:Dla i = 2, 3, 4, ...n

Page 144: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

130 7. Wstęp do analizy algorytmów

Weź element ai i wstaw go w odpowiedniemiejsce do ciągu a1, a2, ..., ai−1

a szczegółowo:

Algorytm 7.1. Algorytm Proste wstawianieprocedure p ros t ewstawian i e ( ) ;

i , j : indeks ;x : ob i ek t ;f o r i :=2 to n do

x:=a [ i ] ; a [ 0 ] := x ; j := i −1;whi le x . k lucz<a [ j ] . k lu cz do

a [ j +1]:=a [ j ] ; j := j −1; a [ j +1]:=x ;

Analiza algorytmu 7.1. Załóżmy dla uproszczenia że ciąg aj , 1 ≤j ≤ n jest ciągiem o parami różnych wyrazach. Spośród każdego wybo-ru i elemementów takiego ciągu (jest tych wyborów Cn

i =(ni

)), oznaczmy

jeden konkretny wybór przez x1 < x2 < ... < xi. Spośród ustawień tychelementów w ciąg jest dokładnie jedno ustawienie takie, że elementy od 1do i − 1 są rosnące a i ty element jest większy od k − 1 i mniejszy od k-tego (1 ≤ k ≤ i). Jest to ustawienie x1, x2, ..., xk−1, xk+1, xk+2, ..., xi, xk.Stąd prawdopodobieństwo, że i ty element będzie wstawiony między k − 1a k-tym wynosi 1i . Wtedy wykonujemy w pętli

while x.klucz<a[j].klucz do

i − k porównań, a więc najmniejsza liczba porównań w i-tym obrociepętli zewnętrznej Pomin wynosi 1, średnia Posr jest równa

∑i−1k=1(i− k)1i =

(i−1)i2i = i−1

2 natomiast w najgorszym przypadku Pomax = i− 1. Sumjąc poi otrzymujemy

Pomin =∑n

i=2 1 = n− 1 = O(n),

Posr =∑n

i=2i−12 = (n−1)n

4 = O(n2),

Pomax =∑n

i=2(i− 1) = (n−1)n2 = O(n2),

a uwzględniając, że liczba przestawień Pw = Po+ 2 otrzymujemy

Pomin = n− 1 = O(n), Pwmin = n+ 1 = O(n),

Posr = n2−n4 = O(n2), Pwsr = n2−n+8

4 = O(n2),

Pomax = n2−n2 = O(n2), Pwmax = nn−n+4

2 = O(n2).

Algorytm 7.1 można poprawić, zauważając, że w chwili wstawiania i-tegoelementu do ciągu wynikowego a1 ≤ a2 ≤ ... ≤ ai−1 elementy te są już

Page 145: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.3. Algorytmy sortowania 131

uporządkowane, a wtedy najszybszą metodą ustalenie miejsca wstawiane-go elementu uzyskuje się przez porównanie z elementem środkowym ciągua1, ..., ai−1. W zależności od wyniku porównania porównujemy dalej z ele-mentem środkowym ciągu a1, ..., a⌊ i−1

2⌋ lub a⌈ i−1

2⌉, ..., ai−1 kontunuując

ten proces dalej.

Algorytm 7.2. AlgorytmWstawianie połówkowe

procedure wstawianiepo łówkowe ( ) ;i , j , l , p ,m: indeks ;x : ob i ek t ;f o r i :=2 to n do

x:=a [ i ] ; l :=1; p:= i −1;whi le l<=p do

m:=( l+p) div 2 ;i f x . k lucz<a [m] . k lucz then p:=m−1 e l s e l :=m+1;

f o r j := i−1 downto l do a [ j +1]:=a [ j ;a [ l ] := x ;

Analiza algorytmu 7.2. Jak łatwo widać połowienie przedziału złożo-nego z i-kluczy wykonuje się ⌈log2(i)⌉ razy, a więc liczba porównań w tymalgorytmie wynosi

Posr =n∑

k=1

⌈log2(k)⌉.

Suma ta pojawiła się już w naszych rozważaniach w Przykładzie 3.3.1.Aproksymując tę sumę całką

∫ n1 log(x) dx = x(log(x − c)|n1 = O(n log(n)).

Niestety inne parametry pozostają bez zmian.

Pomin = n− 1 = O(n), Pwmin = n+ 1 = O(n),

Posr =∑n

k=1⌈log2(k)⌉ = O(n ln(n)), Pwsr = n2−n+84 = O(n2),

Pomax = n2−n2 = O(n2), Pwmax = nn−n+4

2 = O(n2).

7.3.2. Algorytmy sortowania przez wybieranie (selection sort)

Algorytm ten polega na znajdywaniu najmniejszego klucza i wstawieniugo w odpowiednie miejsce. Algorytm można opisać następująco:

Dla i = 1, 3, 4, ...nZnajdź najmniejszy element ciągu ai, ai+1, ..., an

Page 146: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

132 7. Wstęp do analizy algorytmów

i wymień go z elementem ai

na przykładzie

Tabela 7.3. Działanie algorytmu - proste wybierania

Początkowy 32 45 15 27 77 21 11 73ciąg | |

11 45 15 27 77 21 32 73| |

11 15 45 27 77 21 32 73| |

11 15 21 27 77 45 32 73

11 15 21 27 77 45 32 73| |

11 15 21 27 32 45 77 73| |

11 15 21 27 32 45 73 77

a sam algorytm można opisać:

Algorytm 7.3. Algorytm proste wybieranie

procedure p ros t ewyb ie ran i e ( ) ;i , j , k : indeks ;x : ob i ek t ;f o r i :=1 to n−1 do

k:= i ; x:=a [ i ] ;f o r j := i+1 to n do

i f a [ i ] . k lucz<x . k lucz then k:= j ; x:=a [ j ] ;

a [ k ] := a [ i ] ; a [ i ] := x ;

Analiza algorytmu 7.3. Jak łatwo widać liczba porównań wogóle niezależy od początkowego ustawienia ciągu i jest równa Po = 1

2(n2 − n),

natomiast najmniejsza liczba wymian (podstawień) wynosi 3(n−1), gdy anirazu nie nie będzie spełniony warunek a[i].klucz<x.klucz a największa⌊n2

4 ⌋+ 3(n− 1) gdy ten warunek będzie spełniony zawsze. Wartość średniailości wymian jest trudna do ocenienia. Niech Xj oznacza ilość ustawieńciągu n elementów 1, 2, 3, ..., n takich, że kj jest mniejszy od wszystkichpoprzedzających je liczb k1, ..., kj−1. Knuth [11] wykazał, że EXj = Hj − 1.Wtedy Pwsr =

∑ni=1(Hi − 1), a z wyników podrozdziału 2.4 (Uwaga 2.4.4)

Page 147: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.3. Algorytmy sortowania 133

uzyskujemy Pwsr ≈

∑ni=1(ln(i) + γ + 1) = O(n ln(n)). W końcu

Pomin = n2−n2 = O(n2), Pwmin = 3n− 3 = O(n),

Posr = n2−n2 = O(n2), Pwsr =

∑ni=1(Hi − 1) = O(n ln(n)),

Pomax = n2−n2 = O(n2), Pwmax = ⌊n2

4 ⌋+ 3n− 3 = O(n2).

7.3.3. Sortowanie przez zamianę (exchange sort)

Najbardzie znaną metodą w tej grupie metod jest tak zwane sortowaniebąbelkowe. Polega ona na ciągłym porównywaniu i zamianie (jeśli pierwszywyraz jest większy od drugiego) dwóch kolejnych wyrazów ciągu. Opiszemyjego działanie na przykładzie:

Tablica 7.4: Sortowanie bąbelkowe.

i = 1 32−45 15 27 77 21 11 7332 45↔15 27 77 21 11 7332 15 45↔27 77 21 11 7332 15 27 45−77 21 11 7332 15 27 45 77↔21 11 7332 15 27 45 21 77↔11 7332 15 27 45 21 11 77↔73

i = 2 32↔15 27 45 21 11 73 7715 32↔27 45 21 11 73 7715 27 32−45 21 11 73 7715 27 32 45↔21 11 73 7715 27 32 21 45↔11 73 7715 27 32 21 11 45−73 7715 27 32 21 11 45 73−77

i = 3 15−27 32 21 11 45 73 7715 27−32 21 11 45 73 7715 27 32↔21 11 45 73 7715 27 21 32↔11 45 73 7715 27 21 11 32−45 73 7715 27 21 11 32 45−73 7715 27 21 11 32 45 73−77

i = 4 15−27 21 11 32 45 73 7715 27↔21 11 32 45 73 7715 21 27↔11 32 45 73 7715 21 11 27−32 45 73 7715 21 11 27 32−45 73 7715 21 11 27 32 45−73 7715 21 11 27 32 45 73−77

i = 5 15−21 11 27 32 45 73 7715 21↔11 27 32 45 73 7715 11 21↔17 32 45 73 7715 11 21 27−32 45 73 7715 11 21 27 32−45 73 7715 11 21 27 32 45−73 7715 11 21 27 32 45 73−77

i = 6 15↔11 21 27 32 45 73 7711 15−21 27 32 45 73 7711 15 21−17 32 45 73 7711 15 21 27−32 45 73 7711 15 21 27 32−45 73 7711 15 21 27 32 45−73 7711 15 21 27 32 45 73−77

i = 7 11−15 21 27 32 45 73 7711 15−21 27 32 45 73 7711 15 21−17 32 45 73 7711 15 21 27−32 45 73 7711 15 21 27 32−45 73 7711 15 21 27 32 45−73 7711 15 21 27 32 45 73−77

i = 8 11−15 21 27 32 45 73 7711 15−21 27 32 45 73 7711 15 21−17 32 45 73 7711 15 21 27−32 45 73 7711 15 21 27 32−45 73 7711 15 21 27 32 45−73 7711 15 21 27 32 45 73−77

Page 148: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

134 7. Wstęp do analizy algorytmów

Algorytm 7.4. Algorytm Sortowanie bąbelkoweprocedure sortowaniebabe lkowe ( ) ;

i , j : indeks ;x : ob i ek t ;f o r i :=2 to n do

f o r j :=n downto i do

i f a [ j −1] . k lucz>a [ j ] . k lu cz then x:=a [ j −1] ; a [ j −1]:=a [ j ] ; a [ j ] := x ;

Analiza algorytmu sortowania bąbelkowego Liczba porównań wtym algorytmie zawsze wynosi Po = n2−n

2 natomiast najmniejsze liczbaprzesunięć obiektów wynosi 0 gdy ciąg jest już posortowany,

∑ni=2

∑nj=i 3 =

∑ni=2 3(n − i + 1) = 3n(n − 1) −∑n−1

i=1 i = 34(n

2 − n). Ponieważ każde dwaelementy mają jednakowe prawdopodobieństwo że je wymienimy jak i żepozostawimy bez zmian więc Pwsr =

12Pwmax = 3

2 (n2 − n).

Pomin = n2−n2 = O(n2), Pwmin = 0 = o(1),

Posr = n2−n2 = O(n2), Pwsr = 3

2(n2 − n) = O(n2),

Pomax = n2−n2 = O(n2), Pwmax = 3

4(n2 − n) = O(n2).

Łatwo widać niedociągnięcia tego algorytmu. Ostatnie dwa obroty ze-wnętrznej pętli nie powodowały żadnej zmiany ciągu (ciąg był już posorto-wany), jeżeli najmniejsze wyrazy są na końcu ciągu sortowanie trwa bardzodługo, może więc raz przechodzić w jedną a raz w drugą stronę, po i-tymobrocie pętli zewnętrznej, już i elementów początkowych i końcowych ciągujest posortowanych. Uwzględniając te uwagi możemy podać inny algorytm:

Algorytm 7.5. Algorytm Sortowanie mieszaneprocedure sortowaniemieszane ( ) ;

j , k , l , p : indeks ;x : ob i ek t ;l :=2; p:=n ; k:=n ;r epeat

f o r j :=p downto l do

i f a [ j −1] . k lucz>a [ j ] . k lu cz then x:=a [ j −1] ; a [ j −1]:=a [ j ] ; a [ j ] := x ; k:= j ;

l :=k+1f o r j := l to p do

i f a [ j −1] . k lucz>a [ j ] . k lu cz then x:=a [ j −1] ; a [ j −1]:=a [ j ] ; a [ j ] := x ; k:= j ;

p:=k−1; u n t i l l>p ;

Page 149: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.3. Algorytmy sortowania 135

Jednak analiza tego algorytmu jest zbyt skomplikowana i wykracza pozaramy tej książki. Wspomnimy, że poprawia się tylko średnia liczba wymianPwsr = O(n), a wg. Wirtha ([21]) algorytm bąbelkowy nie wyróżnia sięniczym poza nazwą.

7.3.4. Sortowanie szybkie (quicksort)

Algorytm ten można opisać następująco:

Krok 1 Porządkowanie elementów a od 1 do n-tego.Wybierz element środkowy x = a⌊n+1

2⌋ ciągu ai, 1 ≤ i ≤ n.

Przeglądaj tablicę od elementu numer 1 do pozycji elementu xwłącznie w prawo, aż napotkasz element taki, że ai ≥ x.Przeglądaj tablicę od elementu numer n do pozycji elementux włącznie w lewo, aż napotkasz element taki, że aj ≤ x.Wtedy wymień elementy ai oraz aj i kontunuuj przeglądanie dalej.W efekcie tej wymiany może się zmieniać pozycja elmentu xw ciągu. Powiedzmy, że w końcu element x jest na pozycji l

Krok 2 Sortowanie podciągów.Zastosuj całą procedurę sortowania dla elementów od 1 dol − 1 o ile l > 2.Zastosuj całą procedurę sortowania dla elementów od l+1 don o ile n > l + 2.

a oto przykład jego zastosowania:

Tabela 7.5. Działanie algorytmu - szybkie sortowanie

Początkowyciąg 32 45 15 |27| 77 21 11 73

| |32 21 15 27 77 45 11 73| |

(11 |21| 15) 27 (77 |45| 32 73)| | | |(|15| 11) 21 27 32 45 (|77| 73)

| | | |11 15 21 27 32 45 73 77

Sam algorytm można opisać:

Page 150: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

136 7. Wstęp do analizy algorytmów

Algorytm 7.6. Algorytm QuicksortWywolanie: s o r t u j (1 , n)

procedure s o r t ( l , p : index ) ;i , j ; indeks ;x ,w: ob jek t ;i := l ; j :=p ;x=a [ ( l+p) div 2 ] ;r epeat

whi le a [ i ] . k lucz<x . k lucz do i := i +1;whi le x . k lucz<a [ j ] . k lu cz do j := j −1;i f i<=j then

w:=a [ i ] ; a [ i ] := a [ j ] ; a [ j ] :=w;i := i +1; j := j −1;

u n t i l i>j ;

i f l<j then s o r t u j ( l , j ) ;i f i<p then s o r t u j ( i , p ) ;

Analiza algorytmu quicksort Przeanalizujmy teraz λn średnią ilośćzamian w tablicy a[] w pierwszym kroku (przy pierwszym przejrzeniu tabli-cy). Zależy ona istotnie od początkowego układu ciągu ai, 1 ≤ i ≤ n. Za-łóżmy, że zbiór danych do podziału składa się z ciągu liczb 1, 2, 3, ..., n lo-sowo ustawionych oraz, że wybraną początkową liczbą jest x ∈ 1, 2, 3, ..., n.Wtedy ilość porównań wynosi: ilość elementów ciągu mniejszych od x, czylix− 1 razy prawdopodobieństwo zamiany elementu to znaczy prawdopodo-bieństwo, że element ten jest nie mniejszy niż x, czyli n−x+1

n . Zatem ponie-waż każda liczba x ma jednakowe prawdopodobieństwo wyboru 1

n , więc

λn =1

n

n∑

x=1

(x− 1)n − x+ 1

n=

1

n

n∑

x=1

(x− 1)− 1

n2

n∑

x=1

x(x− 1) +1

n2

n∑

x=1

(x− 1)

=1

n

0≤x<n

x1 − 1

n2

0≤x<n+1

x2 +1

n2

0≤x<n

x1

=n2

2n− (n+ 1)3

3n2+

n2

2n2=

n(n− 1)

2n− (n− 1)(n + 1)

3n+

n− 1

2n

=3n2 − 3n− 2n2 + 2

6n+

n− 1

2n=

n

6− 1

6n

Stąd, jeśli kn jest przeciętną ilością pętli repeat w powyższym algorytmie,to Posr = (n− 1)kn, Pwsr = (n6 − 1

6n)kn. Niestety, nie potrafimy dokładnieoszacować kn. Jeżeli będziemy mieć szczęście i za każdym razem wybieraćbędziemy za x medianę (wartość środkową ciągu) to wtedy liczba obrotówpętli repeat wynosić będzie log2(n), wtedy Pomin ≈ n log2(n), Pwmin ≈

Page 151: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.4. Problem rozmieszczenia rekordów w pamięci 137

n log2(n). W najgorszym przypadku ilość podziałów jakie się wykonuje wy-nosi nie log2(n) ale n (segment długości k dzieli się na k − 1 elementów zjednej strony i 1 element z drugiej strony) stąd Pomax = Pwmax = O(n2).

Pomin = O(n ln(n)), Pwmin = 0(n ln(n)),

Posr = (n− 1)kn, Pwsr = nkn6 ,

Pomax = O(n2), Pwmax = O(n2).

Uwaga 7.3.1. Jeżeli zmienimy algorytm quicksort tak, że element x niejest środkowym elementem ciągu ale jest wybrany losowo z ciągu to możnaograniczyć średnią liczbę porównań tak, aby Posr < 2 ln(2)Pomin, Pwsr <2 ln(2)Pwmin. Wystarczy w tym celu zmienić w algorytmie 7.6 wiersz 5 z

x=a[(l+p) div 2];

na

x=a[l+rand(l+p-1)];

gdzie funkcja rand(n) losuje liczby 0, 1, 2, 3, 4, ..., n − 1 z jednakowymprawdopodobieństwem 1

n . Dla takiego algorytmu

Pomin = O(n ln(n)), Pwmin = O(n ln(n)),Posr = O(n ln(n)), Pwsr = O(n ln(n)),Pomax = O(n2), Pwmax = O(n2).

7.4. Problem rozmieszczenia rekordów w pamięci

Problem 7.4.1. W jaki sposób zorganizować w pamięci komputera składo-wanie i wyszukiwanie informacji? Interesuje nas informacja zorganizowanaw postaci dwóch tabel: KLUCZ będący identyfikatorem porcji danych i sameDANE. Zakładać będziemy, że wszelkie operacje wykonywalne na rekordach(czyli wyszukiwanie, usuwanie, wstawianie rekordów i modyfikacja rekordu)wykonywane są za pośrednictwem KLUCZA a DANE[KLUCZA] mogą byćbardzo nieregularne, ponadto dopuszczamy, że rekordy mogą być zmiennejdługości. Dobrym przykładem jest jakiś słownik języka polskiego. Wszystkichmożliwych wyrazów (czyli KLUCZY), przyjmując, że w języku polskim niema wyrazów dłuższych niż 26 - literowe jest teoretycznie 3626, czyli liczbaznacznie przewyższająca możliwości pamięciowe nawet największych kom-puterów, a DANE jest to opis wyrazu, a więc jak się odmienia, w jakichzwrotach występuje itp.

Istnieje kilka rozwiązań tego problemu:

(i) Zbiory sekwencyjne,

Page 152: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

138 7. Wstęp do analizy algorytmów

(ii) Zbiory indeksowo-sekwencyjne,(iii) Zbiory indeksowe,(iv) Listy,(v) Zbiory uporządkowane wyszukiwane blokowo,(vi) Zbiory uporządkowane wyszukiwane binarnie,(vii) Przekształcenia typu KLUCZ → ADRES, na przykład tablice mie-szające ”hash table”.

W każdym zbiorze rekordów chcemy wykonywać cztery podstawowe ope-racje (poza operacjami zmieniającymi samą strukturę rekordów):

– wyszukiwanie rekordów,– dodawanie rekordów,– usuwanie rekordów,– modyfikacja (zmiana) danych zapisanych w rekordach

Jednak najważniejszą z tych operacji jest operacja wyszukiwania gdyżnajczęściej aby dodać, usunąć lub zmodyfikować rekord najpierw trzebarekord znaleźć! Analiza sposobów rozmieszczenia rekordów polega na oce-nie liczby przeszukanych rekordów (najmniejszej, przeciętnej czyli wartościoczekiwanej i największej) w przypadku wyszukiwań zakończonych sukce-sem (Wmin,Wsr,Wmax), liczba przeszukanych rekordów w przypadku brakupowodzenia wyszukiwania (NWmin, NWsr, NWmax), liczba rekordów któretrzeba przesunąć w nowe miejsce w przypadku dodawania (Amin, Asr, Amax)oraz usuwania (Umin, Usr, Umax). Wszystkie te parametry mogą też dotyczyćzbioru indeksów, wtedy odpowiednie nazwy podawać będziemy z indeksemgórnym i. Jeśli wartości minimalne, przeciętne i maksymalne będą równe,piszemy krótko bez indeksu dolnego (np. U = 1

N ). Ilość rekordów zawszeoznaczać będziemy przez N .

7.4.1. Zbiory sekwencyjne i listy

Nieuporządkowane zbiory sekwencyjne.Rekordy są pamiętane po kolei w postaci pary KLUCZ+DANE[KLUCZA].

Rekord kończy specjalny znak a całą strukturę specjalny końcowy rekord.Zapamiętujemy tylko gdzie się w pamięci cała struktura zaczyna.

Rysunek 7.2. Zbiory sekwencyjne

q q q q q q q q q ..... qqK1 K2 K3 K4 K5 K6 K7 K8 KNIndeks

Page 153: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.4. Problem rozmieszczenia rekordów w pamięci 139

Ponieważ rekordem wyszukiwanym może być pierwszy rekord w ciągu(sytuacja najlepsza), ostatni (sytuacja najgorsza) a każdy rekord jest wy-szukiwany z prawdopodobieństwem 1

N , stąd

Wmin = 1, Wsr =N∑

i=1

i1

N=

N + 1

2, Wmax = N,

a w przypadku niezakończonych powodzeniem wyszukiwań zawsze trzebaprzejrzeć wszystkie rekordy, więc NW = N . Operacja dodawania nie wy-maga zmiany pozycji rekordów, a więc A = 0, natomiast znalezienie końcastruktury, gdzie powinien być dopisany nowy rekord, wymaga aż przegląda-nia N rekordów. Operacja usuwania wymaga odpowiednio

Umin = 1, Usr =N + 1

2, Umax = N,

przesunięć rekordów. Wszystkie operacje na indeksach to pobranie pojedyn-czego indeksu.

Nieuporządkowane zbiory sekwencyjne z 2 indeksami.Aby zmniejszyć ilość wyszukiwań potrzebnych do operacji dodawania,

czasem dobrze jest dorzucić wskaźnik do końca struktury, tak jak przedsta-wiamy to na następującym rysunku:

Rysunek 7.3. Zbiory sekwencyjne z 2 indeksami

qq q q q q q q q q ..... q qqK1 K2 K3 K4 K5 K6 K7 K8 KNIndeks

Parametry tej organizacji, poza sposobem wyszukiwania przy dodawa-niu, nie zmieniają się, ewentualnie można tylko zmniejszyć ilość przesu-wanych rekordów przy usuwaniu przesuwając je do przodu lub do tyłu,w zależności od tego czy usuwamy rekord bliższy początku struktury czykońca. Wtedy

Usr =

∑N/2i=1 2i 1

N , jeśli 2|N,∑⌊N/2⌋

i=1 2i 1N + (⌊N/2⌋ + 1) 1

N , jeśli 2 6 |N.

a więc

Usr =

⌊N/2⌋+12 , jeśli 2|N,

(⌊N/2⌋+1)2

N , jeśli 2 6 |N.

i Umax = ⌈N/2⌉.

Lista.

Aby jeszcze zmniejszyć ilość operacji przesuwania rekordów przy usuwa-niu można rozważyć strukturę nieuporządkowanej listy z jednym lub dwo-

Page 154: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

140 7. Wstęp do analizy algorytmów

ma indeksami. Teraz rekordy rozrzucone są w dowolnych miejscach pamię-ci, a każdy rekord kończy się dowiązaniem do następnego rekordu (ostatniwskazuje koniec całej struktury). Indeks wskazuje na ulokowanie w pamięcipierwszego rekordu a jeśli używamy dwóch indeksów to i ostatniego.

Rysunek 7.4. Lista z 2 indeksami

qq qK1

qK2

qK3

qK4 q

K5

..... qKNq

qq q

q q qIndeks

Teraz przy operacji usunięcia, podobnie jak i dodawania nie trzeba prze-suwać w pamięci żadnego rekordu, wystarczy tylko zmienić dowiązania. Za-tem A = U = 0.

7.4.2. Zbiory indeksowo-sekwencyjne i indeksowe

Zbiory indeksowo-sekwencyjneStruktury te charakteryzują się rozbudowanym indeksem (tablica indek-

sowa), jednak indeks ten jest mniejszy niż N , dlatego czasem nazywa się tęstrukturę indeksem rzadkim. Indeks (tablica) wskazuje sekwencję ułożonychw bloku rekordów Metoda ta jest dość szybka, jeśli chodzi o wyszukiwanierekordów, jednak dochodzą, czasem bardzo duże koszty utrzymania i prze-szukiwania indeksu.

Page 155: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.4. Problem rozmieszczenia rekordów w pamięci 141

Rysunek 7.5. Zbiory indeksowo - sekwencyjne

qqqq

q...

q q q qq q q qq q q qq q q q

K1,1 K1,2 K1,3 K1,4

K2,1 K2,2 K2,3 K2,4

K3,1 K3,2 K3,3 K3,4

K4,1 K4,2 K4,3 K4,4...

Kk,1 Kk,2 Kk,3 Kk,4

q q q q.....

.....

.....

.....

.....

qqqq

K1,m1

K2,m2

K3,m3

K4,m4

Kk,mk

q

qqqqqIndeks

Oczywiście, przy przeszukiwaniu blokuWmin = 1,Wmax = max1≤i≤k mi.Analiza przeciętnego wyszukiwania jest dużo bardziej skomplikowana. Prze-analizujmy najpierw prawdopodobieństwo możliwych rozmieszczeń w k blo-kach. Ponieważ rozmieszczeń N elementów w k ciągów długości (m1,m2, ...mk),N = m1+m2+ ...+mk, jest N !

m1!m2!...mk!, (zob. Twierdzenie 5.1.6) a wszyst-

kich możliwych rozmieszczeń jest kN (zob. Twierdzenie 5.1.10), więc praw-dopodobieństwo układu wynosi

pm1,...,mk=

N !

m1!m2!...mk!

1

kN.

Jeżeli mamy układ w poszczególnych blokach (m1,m2, ...mk), N = m1 +m2+...+mk, to prawdopodobieństwo, że wyszukujemy w i-tym bloku wynosimi

N a przeciętna ilośc przeszukanych rekordów w tym bloku, tomi∑

j=1

j

mi=

mi + 1

2,

(por. z Przykładem 7.1) a stąd

Wsr =1

kN1

N

k∑

i=1

(m1,m2,...mk)∈0,1,..,NkN=m1+m2+...+mk

N !

m1!m2!...mk!

mi(mi + 1)

2.

Upraszczając mi otrzymujemy

Wsr =1

kN1

N

k∑

i=1

(m1,m2,...mk)∈0,1,..,NkN=m1+m2+...+mk

N !

m1!m2!...(mi − 2)!mk!

( mi + 1

2(mi − 1)[mi > 1] + [mi = 1]

)

,

Page 156: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

142 7. Wstęp do analizy algorytmów

a ponieważ 12 ≤ l+1

2(l−1) [l > 1] + [l = 1] ≤ 32 , dla wszystkich naturalnych l, i

ponieważ

(m1,m2,...mk)∈0,1,..,NkN=m1+m2+...+mk,mi≥2

N !

m1!m2!...(mi − 2)!...mk!

= N(N − 1)∑

(m1,m2,...mk)∈0,1,..,N−2kN−2=m1+m2+...+mk

(N − 2)!

m1!m2!...(mi − 2)!...mk !

= N(N − 1)kN−2,

więc1

2

N − 1

k≤Wsr ≤

3

2

N − 1

k.

Łatwo widać, że w tym przypadku U = W , A = 0 (nie trzeba nic przesuwaćaby dodać rekord), ale dodawanie rekordu wiąże się ze znalezieniem końcabloku, więc ilość przeglądanych rekordów waha się pomiędzy min1≤i≤k mi

a max1≤i≤k mi, identycznie jak wartości NWmin = min1≤i≤k mi, NWmax =max1≤i≤k mi. Ilość przeszukiwań przy dodawaniu można zmniejszyć do 1jeśli będziemy utrzymywać drugą tablicę indeksową wskazującą na końcebloków. Oszacujmy teraz NWsr. Podobnie jak powyżej zachodzi

NWsr =1

kN1

N

k∑

i=1

(m1,m2,...mk)∈0,1,..,NkN=m1+m2+...+mk

N !

m1!m2!...(mi − 2)!mk!m2

i ,

więcN − 1

k≤ NWsr ≤

2(N − 1)

k.

W przypadku zbiorów indeksowo-sekwencyjnych dochodzi problem prze-szukiwania indeksów. Teraz mamy W i

min = 1,W imax = k,W i

sr =∑k

j=1 jmj

N ,a więc

(min1≤j≤k mj)k(k + 1)

2N≤W i

sr ≤(max1≤j≤k mj)k(k + 1)

2N.

Zbiory indeksowe

Zbiór nazywamy indeksowym, jeżeli w powyższej konstrukcji k = N ami = 1, 1 ≤ i ≤ N . Tak więc w zbiorze indeksowym każdy rekord maswój indeks. Analiza tej struktury jest bardzo podobna do analizy zbiorusekwencyjnego, tylko że koszt dotyczący w zbiorze sekwencyjnym rekordów

Page 157: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.4. Problem rozmieszczenia rekordów w pamięci 143

w zbiorze indeksowym dotyczy tylko i wyłącznie indeksu, rekordy mają tutajkoszt albo 1 (W ) albo 0 (U,A). A więc

U imin = W i

min = 1, U isr = W i

sr =N + 1

2, U i

max = W imax = N.

Te dobre wyniki uzyskane są kosztem utrzymywania stosunkowo dużegozbioru indeksów. Zbiory indeksowe czasem się nazywa też indeksowymi gę-stymi.

Rysunek 7.6. Zbiory indeksowe

qqqq

q ...K1K2K3K4

KN

qq

qq

q

qq

qq

qIndeks

7.4.3. Uporządkowane zbiory sekwencyjne przeszukiwaneblokowo lub binarnie

Zakładamy teraz, że właściwy zbiór rekordów uporządkowany jest we-dług rosnącej wartości klucza KLUCZ, według którego poszukujemy rekor-dy. Najpopularniejsze są wtedy dwie metody wyszukiwania rekordów, któreteraz omówimy:

Uporządkowane rekordy przeszukiwane blokowo

Rysunek 7.7. Zbiory uporządkowane sekwencyjne przeszukiwane blokowo

q q q q q q q q q q ..... qq qqqK1 K2 K3 K4 K5 K6 K7 K8 K9 ...≤ KNIndeks ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤

Wyszukiwanie rekordu zawierającego klucz K dla rekordów uporządko-wanych blokami długości m polega na kolejnym wyszukiwaniu takiego i,że K ≤ Kim, a po znalezieniu takiego i przesuwamy się wstecz po klu-czach Kim−1,Kim−2, · · · ,K(i−1)m+1 aż do znalezienia klucza K. Jeżeli nie

Page 158: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

144 7. Wstęp do analizy algorytmów

znajdziemy klucza w tym bloku, to kluczaK nie ma w przeszukiwanej struk-turze. Załóżmy, że m jest dzielnikiem N tak, że km = N . Wtedy Wmin = 1(K = Km) oraz Wmax = k +m − 1 (K = K(k−1)m+1) oraz uwzględniając,że prawdopodobieństwo, iż poszukiwany rekord znajduje się w i-tym bloku(1 ≤ i ≤ k) wynosi 1k a prawdopodobieństwo, że szukamy w tym bloku i-tyrekord (1 ≤ i ≤ m) wynosi 1

m a więc

Wsr =k∑

i=1

i

k+

m−1∑

i=0

i

m=

k + 1

2+

m− 1

2

natomiast NW = k+12 +m− 1.

W najlepszym więc przypadku, gdy m = ⌊√N⌋ ≈ k otrzymujemy

Wsr = NW = O(√N). Jest to wynik porównywalny z wyszukiwaniem w

organizacji indeksowo-sekwencyjnej z k = ⌊√N⌋, a konieczność utrzymania

porządku oznacza duże koszty w przypadku dodawania i usuwania rekordów.Jak łatwo widać

Amin = Umin = 1, Asr = Usr =N − 1

2, Amax = Umax = N.

Zdecydowanie lepsze jest następujące rozwiązanie:

Uporządkowane rekordy przeszukiwane binarnie

Rysunek 7.8. Zbiory uporządkowane sekwencyjne przeszukiwane binarnie

q q ...... q ...... q ...... q ...... qK1 ≤ ... ≤ K⌊N

4 ⌋ ≤ ... ≤ K⌊N2 ⌋ ≤ ... ≤ K⌊ 3N

4 ⌋ ≤ ... ≤ KN

qq qIndeks

Wyszukiwanie wśród binarne uporządkowanych rekordów rekordu zawie-rającego klucz K polega na podzieleniu szukanego zbioru na dwie (mniejwięcej) równe połowy i porównanie klucza K z kluczem rekordu znajdujące-go się w miejscu podziału (K⌊N/2⌋). Jeśli K = K⌊N/2⌋ to poszukiwania koń-czymy, jeśliK < K⌊N/2⌋ to przeszukujemy dalej segmentK1,K2, ...,K⌊N/2⌋−1

dzieląc go znowu na połowę, a jeśli K > K⌊N/2⌋ to dalej przeszukujemysegment K⌊N/2⌋+1,K⌊N/2⌋+2, ...,KN też dzieląc go na połowę. OczywiścieWmin = 1. Żeby znaleźć inne wartości wyszukiwań załóżmy, że

1 + 2 + 22 + ...+ 2l−1 ≤ N < 1 + 2 + 22 + ...+ 2l,

czyli 2l ≤ N +1 < 2l+1 a więc l = ⌊log2(N +1)⌋. Wtedy, biorąc pod uwagą,że jest 1 = 20 elementów do których docieramy od razy (K⌊N/2⌋), jest 2 = 21

Page 159: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.4. Problem rozmieszczenia rekordów w pamięci 145

elementów do których docieramy za 2 razem, ... , 2i elementów do którychdocieramy za i + 1 wyszukiwaniem (1 ≤ i ≤ l − 1) ..., oraz (N + 1 − 2l)elementów do których docieramy za (l + 1) razem, więc

Wsr =∑

0≤i<l

(i+ 1)2i

N+

N + 1− 2l

N(l + 1)

=1

N

0≤i<l

i2i +2l − 1

N+

(N + 1− 2l)(l + 1)

N

=l2l

N−∑

0≤i<l

(i1)2i+1 +2l − 1 + (N + 1− 2l)(l + 1)

N

=l2l +N(l + 1) + (1− 2l)l

N− 1

N

0≤i<l

2i+1

=N(l + 1) + l

N− 2l+1 − 2

N

=N(l + 1) + l − 2l+1 + 2

N,

a stąd ⌊log2(N+1)⌋−1 ≤Wsr ≤ ⌊log2(N+1)⌋+1 a więcWsr = O(log2(N))a NW = l = ⌊log2(N + 1)⌋ = O(log2(N)). Wartości A i U są takie, jak wprzypadku rekordów uporządkowanych przeszukiwanych blokowo.

Oba opisane powyżej sposoby organizacji pamięci dobrze się nadają dozbioru danych, w których stosunkowo bardzo często wyszukujemy rekordy,a stosunkowo bardzo rzadko dodajemy lub usuwamy rekordy. Wyszukiwaniebinarne jest wyszukiwaniem, które minimalizuje ilość przejrzanych rekordóww najgorszym możliwym przypadku (Wmax), w stosunku do wszystkich in-nych znanych algorytmów przeszukiwania uporządkowanych według kluczyrekordów (z wyjątkiem być może zbiorów z dodatkowym indeksem, ale wte-dy wyszukiwanie jest przeniesione na indeks).

7.4.4. Odwzorowania KLUCZ → ADRES

Problem 7.4.2. Czy możliwe jest stworzenie takiej struktury, która mia-łaby zalety struktury indeksowo-sekwencyjnej lub nawet indeksowej a niemiałaby jej wad, to znaczy nie utrzymywalibyśmy kosztownej struktury in-deksowej?

Sformułowanie to wydaje się dziwne, jak korzystać z indeksu nie mającindeksu. Jeśli jednak indeks można dla każdego rekordu obliczyć, to nie mapotrzeby utrzymywać skomplikowanych struktur indeksowych w pamięci,obliczenia w komputerze są błyskawiczne. Zwróćmy uwagę, że jedyną moż-liwą daną, w oparciu o którą możemy wyliczyć ADRES jest KLUCZ, bo

Page 160: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

146 7. Wstęp do analizy algorytmów

jest to jedyna dana w oparciu o którą chcemy wyszukiwać. Stąd powin-niśmy rozważyć możliwe funkcje h : KLUCZ → ADRES. Oczywiście, wpraktycznych zastosowaniach przestrzeń możliwych kluczy jest ogromna aobszarem pamięci dysponujemy niewielkim, nie może to więc być funkcjaróżnowartościowa. Funkcję h nazywamy funkcją haszującą a całą organiza-cję tej struktury tablicą haszującą (”hash table”) lub polską nazwą tablicąmieszającą.Można na haszowanie spojrzeć też inaczej. Pewien obszar pamięci kom-

putera traktuje się jak pokratkowaną kartkę gdzie niektóre kratki mogą byćpuste a na niektórych mogą być przyczepione pewne rekordy (każdy jedenw jednej kratce) zawierające KLUCZ+DANE. Przy tej organizacji pojawiasię kilka problemów.Po pierwsze co zrobić jeśli trafiły nam się dwa rekordy o tej samej warto-

ści funkcji h to znaczy chcielibyśmy wpisać w tę samą kratkę dwie informacjea na to nie ma miejsca. Problem ten nosi nazwę kolizji a jego rozwiązanieto magazynowanie nadmiarów i można to zrobić na dwa różne sposoby:Metoda łańcuchowa - zapisujemy kolizyjne rekordy w odrębnym obsza-rze pamięci. W kratce wpisujemy jeden rekord i dajemy odsyłacz dowolnej, nie związanej z tablicą haszującą pamięci czyli organizujemy li-stę.

Metoda otwarta - zapisujemy kolizyjne rekordy w innym miejscu tablicyhaszującej.Adresowanie liniowe Wpisujemy drugi, kolizyjny, rekord w następnewolne miejsce w tabeli.

Adresowanie kwadratowe Wpisujemy drugi rekord do pozycji 1 -nas-tępnej, 1 - poprzedniej, 22 następnej, 22 poprzedniej, 32 następnej itp.(dopóki nie znajdziemy wolnej)

Rehaszowanie Używamy drugiej funkcji haszującej do wyznaczenianastępnego miejsca dla kolizyjnego rekordu.

Drugim problemem jest wybór funkcji haszującej h. Funkcja ta powinnabyć wybrana tak, aby rozkład rekordów w tablicy był możliwie równomier-ny. Jednak nie zawsze potrafimy przewidzieć jakie rekordy pojawią się wtabeli a ponadto same klucze mogą nie pojawiać się niezależnie, a funkcjęhaszującą powinniśmy wybrać na początku. Dlatego istnieje pewne niewiel-kie prawdopodobieństwo, że po wyborze funkcji haszującej i po wpisaniudanych okazało się, że wszystkie rekordy (poza jednym) są nadmiarem, jestto koszmar metody haszowania. Najważniejszym więc wymaganiem wobecfunkcji haszującej jest brak prostych zależności między obiektem a wartościąjego ”hasha”. Tak więc przyjęcie za funkcję haszującą wartości pierwszej lubostatniej cyfry będzie skutkować fatalną wydajnością struktur danych, którez nich korzystają.

Page 161: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.4. Problem rozmieszczenia rekordów w pamięci 147

Rysunek 7.9. Tablice mieszające (”hash table”)

p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p pp p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p

pppppppppppppppppppppppppppppppppppppppppppppppppp

pppppppppppppppppppppppppppppppppppppppppppppppppp

pppppppppppppppppppppppppppppppppppppppppppppppppp

pppppppppppppppppppppppppppppppppppppppppppppppppp

pppppppppppppppppppppppppppppppppppppppppppppppppp

pppppppppppppppppppppppppppppppppppppppppppppppppp

pppppppppppppppppppppppppppppppppppppppppppppppppp

pppppppppppppppppppppppppppppppppppppppppppppppppp

pppppppppppppppppppppppppppppppppppppppppppppppppp

q

q q

q

q

q q

qq

q q q q q q qq q q

h(K)

K

Tablica mieszająca Tablica nadmiarów

Czasem zamiast pełnych rekordów podaje się we właściwej tablicy mie-szającej same odsyłacze, a wszystkie rekordy są umiejscowione w listach(lub zorganizowanych sekwencyjnie zbiorach) w tablicy nadmiarów. Podaj-my teraz przykład takiej metody haszowania.

Przykład 7.4.1. Interesują nas dane dotyczące osób (np. studentów) wgrupie. Żeby nie komplikować przyjmijmy, że dobrym identyfikatorem jestimię studenta (nie ma dwóch osób o tym samym imieniu) a funkcja haszu-jąca jest oparta na tym, jaka jest pierwsza litera imienia:

h(IMIĘ) =

1, dla A− F,2 dla G− L,3 dla M −R, ,4 dla S − Z,

Tak więc h(ANNA) = 1, h(TOMASZ) = 4, h(JAN) = 2. Tablica miesza-jąca składa się więc tylko z 4 kratek (zaiste to supermała tablica). Załóżmy,że w tablicy mieszającej znajdują sie same KLUCZE a odsyłacz do miejscw pamięci gdzie te dane są opisane jest w tablicy DANE[], jest to więc teżstruktura indeksowa. Załóżmy, że nadmiar jest zorganizowany w pamięcikomputera w postaci listy którą realizują dwie tablice FIRST[] i NEXT[].Jeśli więc do tablicy wpisywane są kolejno osoby ANNA, TOMASZ, DIANA,

Page 162: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

148 7. Wstęp do analizy algorytmów

AGATA, JOANNA to zmienna n = 5 a w efekcie wstawiania otrzymamynastępujące struktury:

Nr KLUCZ DANE NEXT1 ANNA ”dane ANNY” 32 TOMASZ ”dane TOMASZA” 03 DIANA ”dane DIANY” 44 AGATA ”dane AGATY” 05 JOANNA ”dane JOANNY” 0

oraz

FIRST[1]=1 FIRST[2]=5 FIRST[3]=-1 FIRST[4]=21. ANNA 3 5. JOANNA 0 2. TOMASZ 03. DIANA 44. AGATA 0

Jak widać pusta lista (puste miejsce w tabeli haszującej) oznaczone jest wFIRST[] przez -1 a koniec listy w NEXT[] przez 0. Algorytm wyszukiwaniai ewentualnego dopisywania klucza K mógłby teraz wyglądać następująco:

Algorytm 7.7. Algorytm Tablice haszujące

A1 . Podstaw i :=h (K) oraz j :=FIRST [ i ]A2 . Jeśli j≤0 to rekordu nie znaleziono.

Jeśli chcesz ten rekord dopisać do bazy to przejdź do kroku A5w przeciwnym razie STOP.

A3 . Jeśli KEY[ i ]=K to wydaj DATA[ i ] i STOP(Klucz znaleziono, jest to i-ty element)

A4 . Podstaw i := j , potem j :=NEXT[ i ] i wróć do A2 .A5 . Podstaw n:=n+1A6 . Jeśli j <0 to FIRST [ i ] :=n w przeciwnym razie NEXT[ i ] :=nA7 . Podstaw KEY[ n ] :=K, DANE[ n]="dane

klucza K" , NEXT[ n ] :=0 i STOP.

Podstawowym zadaniem programisty przy stosowaniu metod haszującychjest wybór funkcji haszującej h. Jak wspomnieliśmy, powinna być ona taka,aby rozkład wszystkich możliwych danych był równomierny. W powyższymprzykładzie należałoby na przkład wziąść losowy fragment książki telefonicz-nej i przeanalizować czy jest tyle samo imion zaczynających się na A-F,G-L, M-R, S-Z. Wydaje się że funkcja haszująca użyta w tym przykładzienie jest najlepsza (zdecydowanie bardzo dużo jest imion żeńskich na A).Wykonajmy teraz analizę (probabilistycznym) średniej liczby porównań

algorytmu. Załóżmy, że N kluczy w tablicy jest idealnie równomiernie roz-łożone i że tablica ma wymiar m. Rozważmy dwie sytuacje

Page 163: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.4. Problem rozmieszczenia rekordów w pamięci 149

• Gdy wyszukiwanego klucza K nie ma w tablicy. Wtedy liczba porównańpotrzebnych do stwierdzenia tego faktu wynosi

V = I[h(KEY [1]) = h(K)]+I[h(KEY [2]) = h(K)]+...+I[h(KEY [N ]) = h(K)]

gdzie I[A] jest to indykator zdarzenia A. Ze względu na nasze założeniamamy w V sumę niezależnych zmiennych losowych o tym samym rozkładzieP [h(KEY [i]) = h(K)] = 1

m , a stąd

NW = EV =N

m.

• Załóżmy teraz, że klucz K znaleziono, jest to klucz o numerze L. Teraz,podobnie jak poprzednio, L jest zmienną losową o rozkładzie jednostajnymna zbiorze 1, 2, 3, ..., N to znaczy P [L = i] = 1

N . Wtedy liczba porównańpotrzebnych do znalezienia L wynosi

V = I[h(KEY [1]) = h(K)]+I[h(KEY [2]) = h(K)]+...+I[h(KEY [L]) = h(K)].

Jeśli zmienna losowa L nie zależy od rozkładu kluczy w tablicy, to

Wsr = EV =1

mEL =

1

m

N∑

i=1

i1

N=

N + 1

2m.

Zawsze więc ilość porównań jest rzędu Nm . Jeśli teraz N jest bardzo duże a

m = Nln(N) , to w przybliżeniu przeciętnie wystarcza tylko O(ln(N)) porównań,

tak jak w wyszukiwaniu binarnym sekwencyjnie uporządkowanych rekordów(podrozdz. 7.5.3), a jeśli m jest porównywalne z N to może wystarczyć tylkokilka porównań. Jest to zdecydowanie lepszy wynik niż w poprzednio rozwa-żanych strukturach.Oczywiście Wmax = N i jest to koszmar, który na szczęście ma bardzo

niewielkie prawdopodobieństwo zajścia.

Zakończmy ten podrozdział podając przykłady prostych funkcji haszu-jących:

Dzielenie Indeks wyznacza się jako resztę z dzielenia klucza K przez roz-miar tablicy m:

h(K) = K mod m.

Jeśli m nie jest liczbą pierwszą to jest lepiej użyć funkcji: h(K) =(K mod p) mod m gdzie: p jest liczbą pierwszą i p > m. Gdyby wybraćjako m liczbę złożoną, na przykład w skrajnym przypadku m = 2k, towtedy h(K) byłaby po prostu wartością najmniej znaczących k bitówklucza K, a wtedy, do prawidłowego używania takiej funkcji haszującej,musielibyśmy dorzucić założenie (niekoniecznie prawdziwe i weryfikowal-ne) równomiernego rozkładu tych k bitów.

Page 164: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

150 7. Wstęp do analizy algorytmów

Składanie z przesuwaniem Indeks wyznacza się dzieląc klucz na frag-menty, a następnie je dodając, np.

h(458372) = 458 + 37 + 2 = 497, lub h(458372) = 45 + 83 + 72 = 200.

Składanie brzegami Indeks wyznacza się dzieląc klucz na fragmenty, anastępnie dodając je zmieniając kolejność cyfr w co drugim fragmencie,np.

h(458372) = h(458 + 37 + 2) = 458 + 73 + 2 = 533,

lub

h(458372) = h(45 + 83 + 72) = 45 + 38 + 72 = 155.

Środek kwadratu Indeks wyznacza się podnosząc klucz do kwadratu, anastępnie wybierając środkowy fragment wyniku, np.

h(458372] = F ((458372)2) = F (2101 0489 0384) = 489,

gdzie F () oznacza operację wycinania.Wycinanie Indeks wyznacza się wybierając dowolny fragment klucza, np.

h(45 837 2) = 837, lub h(458 372 ) = 372.

Zamiana podstawy Indeks wyznacza się zmieniając podstawę kodu klu-cza (zob. podrozdz. 3.5), np.

h((458372)10) = h((1577204)8) = 1577204,

lub

h((458372)10) = h((154131442)5) = 154131442.

Page 165: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

7.4. Problem rozmieszczenia rekordów w pamięci 151

Ćwiczenie 7.4.1. Załóżmy, że mamy następujący zbiór danych (wraz z in-nymi dodatkowymi informacjami o tych osobach)

Identyfikator Imię i Nazwisko134912 Jan Wiśniewski350334 Sylwia Nowak383321 Tomasz Kowal134055 Elżbieta Wójcik256722 Alina Majewska200912 Kamil Kłosowski267021 Robert Szuster113451 Józef Kowalski709942 Anna Białecka334305 Franciszek Nurowski995565 Diana Politkowska

gdzie identyfikator K jest zawsze sześciocyfrowym ciągiemK = (c1c2c3c4c5c6)10. Która, z następujących funkcji haszujących jest najlepsza dla roz-mieszczenia tych danych w tablicy haszującej o rozmiarze m = 19:

h1(K) = K mod 19,

h2(K) = ((c1c2)10 + (c3c4)10 + (c5c6)10) mod 19,

h3(K) = ((c1c2)10 + (c4c3)10 + (c5c6)10) mod 19,

h4(K) = (c3c4)10 mod 19,

h5(K) = h5((d0d1...dn)8) = (n∑

k=0

dk10n−k) mod 19?

Odpowiedź uzasadnij.

Podsumowanie

• W rozdziale tym rozwinęliśmy jeszcze dwa elementy potrzebne do po-prawnej analizy problemów informatycznych. Były to podstawy rachun-ku prawdopodobieństwa stanowiącego naturalne rozwinięcie rozdziału 5- kombinatoryki oraz analizę asymptotycznego zachowania ciągów.

• W podrozdziale 7.3 analizowaliśmy grupę algorytmów porządkowaniaciągu (algorytmów sortowania). Wyniki tej analizy podsumujemy w ta-

Page 166: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

152 7. Wstęp do analizy algorytmów

belce:

Algorytm Ilość porównań Ilość wymianmin r max min r max

prostewstawianie

O(n) O(n2) O(n2) O(n) O(n2) O(n2)

wstawianiepołówkowe

O(n) O(n ln(n)) O(n2) O(n) O(n2) O(n2)

prostewybieranie

O(n2) O(n2) O(n2) O(n) O(n ln(n)) O(n2)

sortowaniebąbelkowe

O(n2) O(n2) O(n2) o(1) O(n2) O(n2)

sortowaniemieszane

O(n2) O(n2) O(n2) o(1) O(n) O(n2)

quickosortz rand()

O(n ln(n)) O(n ln(n)) O(n2) O(n ln(n)) O(n ln(n)) O(n2)

• w podrozdziale 7.4 rozważaliśmy problem rozmieszczenia rekordów wpamięci komputera, szczególnie istotny w teorii baz danych. Analizępodsumujemy w tabelce.

Organizacja Wmin Wsr Wmax NW

Sekwencyjna O(1) O(N) O(N) O(N)

Indeksowo-sekwencyjna O(1) O(Nk )ab O(Nk )

ab O(Nk )ab

Indeksowa O(1) O(1) O(1) O(1)

Uporządkowaneprzesz. blokowe

O(1) O(k + Nk )

ab O(k + Nk )

ab O(k + Nk )

ab

Uporządkowaneprzesz. binarnie

O(1) O(ln(N)) O(ln(N)) O(ln(N))

Tablice mieszające O(1) O(Nm )cd O(N) O(Nm )cd

a k jest ilością bloków.b Minimalnie O(

√N)

c m jest wielkością tablicy mieszającej.d Minimalnie O(1)

Page 167: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Rozdział 8

Grafy

8.1. Podstawowe pojęcia i problem reprezentacji . . . . . . . 1548.2. Grafy nieskierowane . . . . . . . . . . . . . . . . . . . . 1588.3. Grafy skierowane . . . . . . . . . . . . . . . . . . . . . 1778.4. Drzewa . . . . . . . . . . . . . . . . . . . . . . . . . . . 1798.5. Zastosowania teorii grafów . . . . . . . . . . . . . . . . 188

Page 168: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

154 8. Grafy

W rozdziale tym wprowadzimy podstawowe pojęcia i omówimy podsta-wowe problemy związane z teorią grafów.

8.1. Podstawowe pojęcia i problem reprezentacji

8.1.1. Definicje

Definicja 8.1.1. Grafem nieskierowanym G nazywamy uporządkowaną pa-rę (V,E) gdzie V to pewien skończony (albo nieskończony) zbiór zwanyzbiorem wierzchołków (węzłów) grafu a E ⊂ < v1, v2, k >: v1, v2 ∈V, k ∈ N\0, zbiór dwuelementowych podzbiorów zbioru V zwany zbio-rem krawędzi grafu, trzecim elementem jest krotność krawędzi (dwa wierz-chołki mogą być połączone jedną, dwoma, trzema,... krawędziami). GrafG nazywamy grafem bez krawędzi wielokrotnych, jeśli w każdej trójce <v1, v2, k >∈ E(G) mamy k = 1. Piszemy wtedy w krótszej formie E(G) ∈v1, v2, v1, v2 ∈ V (G) po prostu pomijając ostatni element k (= 1).

Zauważmy, że < v1, v2, k >=< v2, v1, k > gdyż kolejność podawaniaelementów zbioru jest nieistotna.

Definicja 8.1.2. Grafem skierowanym G nazywamy uporządkowaną parę(V,E) gdzie V pewien skończony (albo nieskończony) zbiór zwany zbioremwierzchołków (węzłów) grafu i E ∈ V × V × (N\0), zbiór uporządko-wanych trójek zbioru V, gdzie pierwszym elementem jest początek, drugimkoniec krawędzi a trzecim jest krotność krawędzi. Graf G nazywamy grafembez krawędzi wielokrotnych, jeśli w każdej trójce < v1, v2, k >∈ E(G) mamyk = 1. Piszemy wtedy krótko E(G) ∈ < v1, v2 >, v1, v2 ∈ V (G).

Często piszemy V (G) zamiast V oraz E(G) zamiast E. Stąd G=(V (G), E(G)).

Przykład 8.1.1. Niech V (G) = 1, 2, 3, 4, 5, E(G) = 1, 2, 2, 3, 1, 5,4, 5. Uporządkowany ciąg krawędzi < 4, 5, 5, 1, 1, 2, 2, 3 > nazy-wamy drogą.

s ss

s sQQQ

1 3

2

5 4

Przykład 8.1.2. Niech V (G) = 1, 2, 3, 4, 5, E(G) = 1, 2, 2, 3, 3, 4,4, 5, 5, 1. Drogę < 1, 2, 2, 3, 3, 4, 4, 5, 5, 1 > nazywamy cy-klem (cykl jest szczególnym rodzajem drogi).

Page 169: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.1. Podstawowe pojęcia i problem reprezentacji 155

s ss

s sHHHH

C

CCC1 3

2

5 4

Definicja 8.1.3. Drogą o długości n nazywamy ciąg krawędzi e1e2e3...entaki, że ei ∩ ei+1 = ∅, i = 1, 2, 3, ..., n − 1. Jeśli e1 ∩ en 6= ∅ to taką drogęnazywamy zamkniętą. Jeśli ei 6= ej dla i 6= j to taką drogę nazywamy prostą.

s@@

s s s s s@@ssssi

1

2 3 4 5

6

78910

e1e2 e3 e4

e5

e6e7e8

e9e10

e11

e12

Krawędź której początkowy i końcowy wierzchołek jest taki sam (np. e11 =10, 10) nazywamy pętlą. Jeśli na drodze nie ma pętli to taką drogę nazy-wamy ścieżką. Jeśli droga jest zamknięta i nie zawiera pętli to nazywamyją cyklem i oznaczamy Cn. Jeśli graf G nie zawiera cykli to nazywamy goacyklicznym. Graf bez pętli i krawędzi wielokrotnych nazywamy grafem pro-stym.

Rysunek 8.1. Różne typy grafów

5 ss1

s2 s3s4

@@@

@@@

G1 5 ss1

s2 s3s4

@@@

@@@

G2 5 ss1

s2 s3s4

@@@

@@@

G3 5 ss1

s2 s3s4

@@@

@

@@

G4iiii

R

-

-

R

R

-

-

R U K

Graf G1 (V = 1, 2, 3, 4, 5, E = 1, 2, 1, 4, 1, 5, 2, 3, 2, 4) jestgrafem prostym (bez pętli i krawędzi wielokrotnych) nieskierowanym.Graf ma cykl 1, 2, 2, 4, 1, 4.

Graf G2 (V =1, 2, 3, 4, 5, E=< 1, 2, 2 >,< 1, 4, 1 >,< 1, 5, 1 > ,< 2, 3, 1 >,< 2, 4, 3 >,< 4, 4, 1 >,< 5, 5, 2 >) nie jest grafemprostym, ma pętlę dwukrotną przy wierzchołku 5 i jedną pętlę przywierzchołku 4, krawędź 2, 4 trzykrotną a krawędź 1, 2 dwukrotną.Graf ma cykl 1, 2, 2, 4, 4, 1.

Page 170: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

156 8. Grafy

Graf G3 (V = 1, 2, 3, 4, 5, E = < 1, 2 >,< 1, 4 >,< 1, 5 >,< 2, 3 >,< 2, 4 >) jest grafem prostym skierowanym. Graf jest acykliczny.

Graf G4 (V = 1, 2, 3, 4, 5, E = < 1, 2, 2 >,< 1, 4, 1 >,< 1, 5, 1 >,< 2, 3, 1 >,< 2, 4, 2 >,< 4, 2, 1 >,< 4, 4, 1 >,< 5, 5, 2 >) nie jestgrafem prostym, jest grafem skierowanym. Graf jest acykliczny.

Twierdzenie 8.1.1. Jeśli G jest grafem acyklicznym, to dla każdej parywierzchołków u, v ∈ V (G) istnieje co najwyżej jedna droga prowadząca od udo v.Dowód. Jeśli dwie takie drogi (d1 i d2) istnieją, to musi być co najmniej

na jednej drodze wierzchołek r ∈ d1 który nie istnieje na drodze d2 (ewen-tualnie zmieniamy nazwy dróg). Przechodząc po drodze d1 w przód i w tyłod wierzchołka r dopóty dopóki nie napotkamy na wierzchołek z drogi d2(że musimy napotkać wynika z faktu, że u, v ∈ d1 ∧ u, v ∈ d2.) Pierwszenapotkane takie wierzchołki wraz z fragmentem drogi d2 tworzą cykl.

8.1.2. Implementacja

Graf G może być reprezentowany albo bezpośrednio, poprzez podanieelementów zbiorów V (G) oraz E(G). Różne metody implementacji grafówprześledzimy na przykładzie czterech grafów z Rysunku 8.1.

Macierz sąsiedztwa MG = [mi,j]. Macierz ta jest rozmiaru V (G) × V (G)i mi,j oznacza ilość krawędzi grafu G łączących i-ty i j-ty wierzchołek.Pętle wierzchołka i zaznaczamy w elemencie mi,i. Jeżeli graf jest nie-skierowany to macierz sąsiedztwa jest symetryczna. W przypadku grafu,którego krawędzie mają wagi, gdy nie dopuszczamy krawędzi wielokrot-nych w macierzy sąsiedztwa mogą wystąpić wagi krawędzi. Wielkość

pamięci tej struktury to O(V2).

Tabela 8.1. Reprezentacja grafów za pomocą macierzy sąsiedztwa

MG1 =

0 1 0 1 11 0 1 1 00 1 0 0 01 1 0 0 01 0 0 0 0

, MG2 =

0 2 0 1 12 0 1 3 00 1 0 0 01 3 0 1 01 0 0 0 2

,

Page 171: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.1. Podstawowe pojęcia i problem reprezentacji 157

MG3 =

0 1 0 1 10 0 1 1 00 0 0 0 00 0 0 0 00 0 0 0 0

, MG4 =

0 2 0 1 10 0 1 2 00 0 0 0 00 1 0 1 00 0 0 0 2

,

Lista incydencji LG . Należy utworzyć listy dla każdego wierzchołka v,w której przechowujemy zbiór wierzchołków połączonych krawędzią zv. Dla grafu skierowanego podajemy listę tych wierzchołków, które sąkońcem krawędzi, gdy początkiem jest v. W przypadku grafów z waga-mi krawędzi lista poza wierzchołkiem powinna również zawierać wagę.Wielkość zajętej pamięci w tej metodzie to O(V + E).

Tabela 8.2. Reprezentacja grafu za pomocą listy incydencji

LG1 LG2 LG3 LG4

1 : 2, 4, 5; 1 : 2, 2, 4, 5; 1 : 2, 4, 5; 1 : 2, 2, 4, 5;2 : 1, 3, 4; 2 : 1, 1, 3, 4, 4, 4; 2 : 3, 4; 2 : 3, 4, 4;3 : 2; 3 : 2; 3 :; 3 :;4 : 1, 2; 4 : 1, 2, 2, 2, 4; 4 :; 4 : 2, 4;5 : 1; 5 : 1, 5, 5; 5 :; 5 : 5, 5;

Lista krawędzi IG . Jest to w zasadzie bezpośrednia reprezentacja E(G),lista na której bezpośrednio podajemy wszystkie krawędzie grafu. Kosztto O(E).

Tabela 8.3. Reprezentacja grafu za pomocą listy krawędzi

IG1 IG2 IG3 IG4

(1, 2)(2, 1) (1, 2)(2, 1) (1, 2)(2, 3) (1, 2)(1, 2)(1, 4)(4, 1) (1, 2)(2, 1) (1, 4)(1, 5) (1, 4)(1, 5)(1, 5)(5, 1) (1, 4)(1, 5) (2, 4) (2, 3)(2, 4)(2, 3)(3, 2) (2, 3)(3, 2) (2, 4)(4, 2)(2, 4)(4, 2) (2, 4)(4, 2) (4, 4)(5, 5)

(2, 4)(4, 2) (5, 5)(2, 4)(4, 2)(4, 4)(5, 5)(5, 5)

Page 172: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

158 8. Grafy

Macierz incydencji Υ = [µi,j]. to tablica o rozmiarach E×V . Składa sięona z E wierszy i V kolumn. Jeśli krawędź wychodzi z danego wierz-chołka to piszemy w odpowiedniej kolumnie (−1), jeśli do niego wchodzipiszemy (+1), jeśli wierzchołek nie należy do krawędzi piszemy 0 a jeślijest to pętla własna piszemy 2. Koszt tej reprezentacji to O(V ·E).

µi,j =

0 jeśli vi nie jest punktem końcowym ej−1 jeśli vi jest punktem początkowym ej1 jeśli vi nie jest punktem końcowym ej2 jeśli ej jest pętlą wierzchołka vi

Gdyby krawędzie miały swoje wagi, to można by je umieszczać zamiastliczb ±1 lub dorzucić jeszcze jedną kolumnę z wagami.

Tabela 8.4. Reprezentacja grafu za pomocą macierzy incydencji

ΥG1 =

E 1 2 3 4 51− 2 1 1 0 0 01− 4 1 0 0 1 01− 5 1 0 0 0 12− 3 0 1 1 0 02− 4 0 1 0 1 0

, ΥG2 =

E waga 1 2 3 4 51− 2 2 1 1 0 0 01− 4 1 1 0 0 1 01− 5 1 1 0 0 0 12− 3 1 0 1 1 0 02− 4 3 0 1 0 1 04− 4 1 0 0 0 2 05− 5 2 0 0 0 0 2

,

ΥG3 =

E 1 2 3 4 51− 2 −1 1 0 0 01− 4 −1 0 0 1 01− 5 −1 0 0 0 12− 3 0 −1 1 0 02− 4 0 −1 0 1 0

, ΥG4 =

E waga 1 2 3 4 51− 2 2 −1 1 0 0 01− 4 1 −1 0 0 1 01− 5 1 −1 0 0 0 12− 3 1 0 1 1 0 02− 4 3 0 −1 0 1 04− 4 1 0 0 0 2 05− 5 2 0 0 0 0 2

.

8.2. Grafy nieskierowane

8.2.1. Niektóre klasy grafów nieskierowanych

Graf pusty G∅ = (∅, ∅) to graf, którego krawędzie i wierzchołki są zbioramipustymi.

Page 173: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 159

Bukiet Bn jest grafem zawierającym jeden wierzchołek i n pętli w tymwierzchołku.

Rysunek 8.2. Bukiet Bn

sB1sB2

sB3sB4

sB5

Dipol Dn jest grafem zawierającym dwa wierzchołki i n krawędzi łączącychte wierzchołki.

Rysunek 8.3. Dipol Dn

ss

D1ss

D2ss

D3ss

D4ss

D5

Graf kompletny Kn to graf składający się z n wierzchołków i krawędziłączących każde dwa wierzchołki. Kn nie ma pętli ani krawędzi wielo-krotnych.

Rysunek 8.4. Graf kompletny Kn

sK2

sK3

sK4

s s s s ss

@@@

K5ssss

sGraf n-ścieżka SCn to graf zawierający n wierzchołków V (SCn) = v1, v2,

..., vn i dokładnie n−1 krawędzi E(SCn) = v1, v2, v2, v3, v3, v4, ...,vn−1, vn.

Rysunek 8.5. n-ścieżka SCn

sSC2sSC3

sSC4

s s s s ss SC5

ssss

sGraf n-cykl Cn to graf zawierający n wierzchołków V (Sn) = v1, v2, ..., vn

Page 174: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

160 8. Grafy

i dokładnie n krawędzi E(Sn) = v1, v2, v2, v3, v3, v4, ..., vn−1, vn,vn, v1.

Rysunek 8.6. n-cykl Cn

sC2&%'$

sC3&%'$

sC4&%'$

sC5&%'$

sC6&%'$s ss ss s

sss

s sssss s

Graf n-kołoWn to Cn−1 cykl z wierzchołkami V (Cn−1) = v1, v2, ..., vn−1z dodanym jednym wierzchołkiem vn, który ma krawędzie łączące z każ-dym z z wierzchołków V (Cn−1).

Rysunek 8.7. n-koło Wn

sW3&%'$

sW4&%'$

sW5&%'$

sW6&%'$

sW7&%'$ss ss s ss ss s

sss s ss

sss ss

Graf dwudzielny G(V1, V2) jest to graf, którego zbiór wierzchołków moż-na podzielić na dwa podzbiory takie, że żadne dwa wierzchołki z tegosamego podzbioru nie są połączone krawędzią.

Rysunek 8.8. Graf dwudzielny G(V1, V2)

s s sc c c

JJJJ

G(1, 2, 3, 4, 5, 6)s s s s s

c c

JJJJ

ZZZZ

G(1, 2, 3, 4, 5, 6, 7)s s s s sc c c c c

JJJJ

ZZZZ

JJJJ

JJJJ

G(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

Pełny graf dwudzielny Kr1,r2 jest to graf, którego zbiór wierzchołkówmożna podzielić na dwa podzbiory liczebności odpowiednio r1 oraz r2takie, że żadne dwa wierzchołki z tego samego podzbioru nie są połą-czone krawędzią a zbiór krawędzi zawiera wszystkie krawędzie łączą-

Page 175: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 161

ce wierzchołki jednego podzbioru z wierzchołkami drugiego podzbioru.Analogicznie definiujemy grafy trójdzielne Kr1,r2,r3 itd.

Rysunek 8.9. Pełne grafy dwudzielne, trójdzielne ...

s s sc c c

JJJJ

JJJJ

ZZZZ

K3,3

s s s s sc c

JJJJ

JJJJ

ZZZZ

K2,5

s s s s sc c c c c

JJJJ

ZZZZ

JJJJ

HHHH

HH

ZZZZ

JJJJ

HHHH

HH

ZZZZ

JJJJ

K5,5

c sscx

PPP

AAAA

DDDDDD

K1,1,2

c sc scx

PPP

AAAA

DDDDDD

K1,2,2

c sc s scx

PPP

AAAA

DDDDDD

K1,2,3

@@@

d-wymiarowy hipersześcian Qd to graf zawierający 2d wierzchołków,które etykietujemy ciągami binarnymi długości d tak, że żadne dwa róż-ne wierzchołki nie mają tej samej etykiety, a krawędzie łączą wierzchołki,których ciągi binarne (etykiety) różnią się na dokładnie jednej pozycji.Taki sposób etykietowania nazywamy kodami Gray’a. Szerzej o tych gra-fach i kodach Gray’a piszemy w podrozdziale 8.2.5.

Rysunek 8.10. Grafy hipersześcienne Qn

sQ0

ss

Q1

s ss sQ2

s ss ss ss s

@

@

Q3

s ss s

@

@

s ss ss ss s

@

@

""""""

""""""s ss s

"""

"""

"""

"""

Q4

Grafy Kuratowskiego to grafyK5 iK3,3. Szerzej o znaczeniu tych grafóww podrozdziale 8.2.4.

Rysunek 8.11. Grafy Kuratowskiego

s s sc c c

JJJJ

JJJJ

ZZZ

Z

K3,3

ssss

s B

BB

K5

Graf Petersena Pet jest to graf skonstruowany z dwóch rozłącznych 5-cykli

Page 176: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

162 8. Grafy

u0, u1, u2, u3, u4 oraz v0, v1, v2, v3, v4 połączone miedzy sobą krawę-dziami ui, v2i mod 5, i = 0, 1, 2, 3, 4.

Rysunek 8.12. Graf Petersena

ssss

s

s

sHH

ss @s

v4

v0 v2

v3

v1

u3

u2u4

uo u1

Pet

Grafy G∅, Bn,Dn są najczęściej początkowymi grafami w wielu algoryt-mach przekształcających grafy.

8.2.2. Wycieczki w grafie nieskierowanym

8.2.2.1. Spójność grafu.

Definicja 8.2.1. Jeśli dla każdych dwóch wierzchołków u, v ∈ V (G) istniejedroga łącząca u i v to taki graf nazywamy spójnym.

Definicja 8.2.2. Jeśli istnieje droga łącząca wierzchołek v z wierzchołkiemw to mówimy, że wierzchołek w jest osiągalny z wierzchołka v. W grafiespójnym każde dwa wierzchołki są osiągalne.

Usunięcie w grafie (V (G), E(G)) wierzchołka v ∈ V (G) polega na tym,że tworzymy graf H z wierzchołkami V (H) = V (G)\v oraz z krawędziamiE(H) = u,w ∈ E(G) : u 6= v ∧ w 6= v. Usunięcie w grafie (V (G), E(G))krawędzi e ∈ E(G) oznacza utworzenie grafu H z V (H) = V (G) oraz EH) =E(G)\e. Rozspójnienie grafu oznacza usunięcie krawędzi lub wierzchołkówlub i krawędzi i wierzchołków tak, aby powstał graf niespójny.

Problem 8.2.1. Jak rozspójnić graf?

Definicja 8.2.3. Najmniejszą liczbę usuniętych wierzchołków powodującychrozspójnienie grafu nazywamy spójnością wierzchołkową grafu i oznaczamyκ(G). Najmniejszą liczbę usuniętych krawędzi powodujących rozspójnieniegrafu nazywamy spójnością krawędziową grafu λ(G).

Page 177: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 163

s s ss

s s@@

@

@G1

κ(G1) = 1

λ(G1) = 1

s s s sss A

AA

A

G2κ(G2) = 3

λ(G2) = 3

s ssss ss s s

@@@@

@@

@@

G3 (niespójny)κ(G3) = 0

λ(G3) = 0

Uwaga!!! Te liczby niekoniecznie są sobie równe. Np.

ss

ss

s

HHHHHH

BBBBB

BBBBB

G4

κ(G4) = 1

λ(G4) = 2

Problem 8.2.2. Jak sprawdzić czy graf jest spójny? Zastanów się, co będziewskazywać macierz sąsiedztwa przemnożona przez siebie, tzn M2

G = MG ×MG a co będą wskazywać kolejne macierze Mk

G , k = 3, 4, ....

Ćwiczenie 8.2.1. Znajdź spójność wierzchołkową i krawędziową grafów:Wn, Cn, SCn,Kn,Kr1,r2 i Pet dla różnych wartości parametrów r1, r2, n ∈N . Jaka jest spójność wierzchołkowa i krawędziowa grafów dwudzielnych zrysunku 8.8?

8.2.2.2. Droga i cykl Eulera

Leonhard Euler stanął przed następującym problemem:

W Królewcu (wówczas Konigsbergu) na rzece Pregole, na której sądwie wyspy wybudowano siedem mostów łączące wyspy ze sobą, orazz oboma brzegami rzeki. Układ mostów został przedstawiony na rys.8.13. Pytanie, jakie zostało postawione Eulerowi, to czy można takułożyć spacer po wszystkich mostach Królewca, by po każdym mościeprzejść tylko jeden raz i wrócić do punktu startowego?

Page 178: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

164 8. Grafy

Rysunek 8.13. Mapa mostów w Królewcu

Euler oczywiście odpowiedział na zadane mu pytanie. Powyższy problemmożna przedstawić w języku grafów. Niech każdy spójny kawałek lądu wKrólewcu odpowiada wierzchołkowi. Otrzymamy w ten sposób dwa wierz-chołki odpowiadające wyspom oraz dwa obu brzegom Pregoły. Most pomię-dzy dwoma kawałkami lądu będziemy interpretować jako krawędź łączącąwierzchołki odpowiadające tym skrawkom lądu. W ten sposób otrzymamygraf (nie będący grafem prostym) jak na rys. 8.14.

Rysunek 8.14. Graf mostów Królewca

s ss\\\

sDefinicja 8.2.4. Mówimy, że graf G jest grafem Eulera (jest eulerowski) lubże ma cykl Eulera jeżeli istnieje cykl przechodzący przez wszystkie krawędziegrafu (oczywiście przez każdą tylko jeden raz).Niech u ∈ V (G) będzie dowolnym wierzchołkiem grafu G = (V (G), E(G)).

Przez degG(u) oznaczać będziemy liczbę krawędzi zawierających wierzchołeku.

Twierdzenie 8.2.1. (Euler)

u∈V (G)degG(u) = 2E(G).

Problem 8.2.3. Jakie wartości liczbowe mogą przyjmować stopnie wierz-chołków grafu prostego?

Definicja 8.2.5. Ciąg d1, d2, ..., dn nazywamy ciągiem graficznym jeżeliistnieje prosty graf o n wierzchołkach (bez pętli i krawędzi wielokrotnych)taki, że liczby te są stopniami wierszchołków tego grafu.

Page 179: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 165

Twierdzenie 8.2.2. (P. Erdos, T. Gallai 1960) Nierosnący ciąg liczbnaturalnych d1, .., dn jest ciągiem graficznym wtedy i tylko wtedy, gdy∑n

i=1 di jest liczbą parzystą oraz dla k = 1, 2, ..., n,

k∑

i=1

di ≤ k(k−1)+n∑

i=k+1

mink, di.

Ćwiczenie 8.2.2. Czy ciąg 4, 2, 4, 4, 3, 3, 4 jest graficzny? Jeśli tak, tonarysuj graf prosty, którego stopniami wierzchołków są te liczby. Czy tengraf ma drogę/cykl Eulera? Jeśli ma to znajdź je w narsowanym grafie. Czyciąg 6, 3, 1, 1, 1 jest graficzny? Jeśli nie to czy istnieje graf, niekoniecznieprosty, (z pętlami i krawędziami wielokrotnymi) którego stopnie wierzchoł-ków tworzą ten ciąg? Jeśli tak to narysuj ten graf. Czy istnieje dowolny grafktórego wierzchołki tworzą ciąg 2, 3, 1, 1, 2? Odpowiedź uzasadnij.

Definicja 8.2.6. Graf G nazywamy r-regularnym, jeśli

∀u∈V (G)degG(u) = r.

Uwaga 8.2.3. Niech n = V (G). Graf n − 1-regularny o n wierzchołkachjest grafem pełnym Kn.

Twierdzenie 8.2.4. Liczba wierzchołków nieparzystego stopnia jest parzy-sta.

Twierdzenie 8.2.5. (Euler) Graf skończony i spójny, w którym każdywierzchołek ma stopień parzysty ma cykl Eulera.

Twierdzenie 8.2.6. Graf skończony i spójny, który ma dokładnie dwa wierz-chołki stopnia nieparzystego ma drogę Eulera.

Rysunek 8.15. Droga i cykl Eulera

s2

s3a

bs2

s3c

s@@

2e df

G1

nie jest grafem Euleradroga Eulera: abcdef

s4s4

s4s4

s2s2

s2s2a

b

c

e fd

g

h

ij

k

l

@@

@@

@@

@@

G2 jest grafem Euleracykl Eulera: abcdefghijkl

s ss

5

3

3

3

\\\

sG3 nie jest grafem Euleranie ma drogiani cyklu Eulera

Na rysunku 8.15 każdy wierzchołek opisany jest jego stopniem. Przed-stawiamy tu przykłady drogi i cyklu Eulera.

Page 180: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

166 8. Grafy

Algorytm 8.1. Algorytm Fleury’ego znalezienia drogi (cyklu) Eulera

Krok 1: Wybierz dowolny wierzchołek v nieparzystego stopnia, jeśli taki istnieje,a jeśli nie, to wybierz dowolny wierzchołek v. Niech V S = v, ES = ∅.

Krok 2: Jeśli z wierzchołka v nie wychodzi żadna krawędź to zatrzymaj się.Krok 3: Jeśli pozostała jedna krawędź wychodząca z wierzchołka v powiedzmy

e = v, w to usuń e z E(G) oraz v z V (G) i przejdź do kroku 5.Krok 4: Jeżeli pozostała więcej niż jedna krawędź wychodząca z v to wybierz

taką krawędź powiedzmy e = v, w po której usunięciu graf zostanie spójnyi usuń ją z E(G).

Krok 5: Dołącz w na końcu ciągu V S i dołącze na końcu ciągu ES. Zastąp vwierzchołkiem w i przejdź do kroku 2.

8.2.2.3. Droga i cykl Hamiltona

Inny ciekawy problem można przedstawić na przykładzie firmy rozwo-żącej przesyłki. Dotyczy on pracy kuriera mającego rozwieść przesyłki doodbiorców w ten sposób, by odwiedzić każdego klienta jedynie raz, a nakońcu wrócić do siedziby firmy. Każda z dróg (krawędzi grafu) ma swojąwagę (długość drogi w kilometrach). Jak znaleźć najkrótszą taką drogę?Jest to tzw. problem komiwojażera.

Rysunek 8.16. Problemy niemieckiego komiwojażera

Definicja 8.2.7. Cykl Hamiltona to cykl przechodzący przez wszystkie wierz-chołki grafu (czyli ścieżka zamknięta odwiedzająca każdy wierzchołek do-kładnie raz). Graf hamiltonowski to graf posiadający cykl Hamiltona. DrogaHamiltona to ścieżka przechodząca przez wszystkie wierzchołki, każdy odwie-dzając jedynie jeden raz.

W odróżnieniu od grafów eulerowskich, grafy hamiltonowskie nie po-siadają prostej i szybkiej w użyciu charakteryzacji. Nie znana jest żadna

Page 181: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 167

metoda, pozwalająca szybko stwierdzić czy dany graf jest hamiltonowski.Są natomiast znane pewne warunki wystarczające na to, by graf był hamil-tonowski.

Rysunek 8.17. Droga i cykl Hamiltona

sbsa sd

sc

se@@

H1bez cyklu Hamiltonaale z drogą Hamiltona:

abcde

ss

ss@@

H2nie ma drogi Hamiltona

sasc

sb

AAAAA

H3graf Hamiltonacykl Hamiltona: abc

Twierdzenie 8.2.7. (Dirac) Graf prosty G taki, że(i) V (G) = n ≥ 3(ii) ∀v∈V (G)degG(v) ≥ n

2 ,jest grafem hamiltonowskim.Dowód. Jeśli graf spełnia (ii) to dla każdych dwóch wierzchołków u i v

zachodzi degG(u) + degG(v) ≥ n a więc to twierdzenie wynika z twierdzenia8.2.8 (Ore).

Twierdzenie 8.2.8. (Ore) Graf prosty G taki, że(i) V (G) = n ≥ 3(ii) ∀u,v6∈E(G)degG(u) + degG(v) ≥ n,jest grafem hamiltonowskim.Dowód. (Nie wprost). Przypuśćmy, że twierdzenie jest fałszywe, czyli

dla pewnej liczby n istnieje kontrprzykład G - graf, który spełnia założenietwierdzenia, ale nie jest Hamiltonowski. Spośród wszystkich takich grafówrozpatrzmy ten, który ma najmnieszą liczbę wierzchołków, a spośrod nichtaki, dla którego wartość E(G) jest maksymalna. Jest to podgraf pełnegografu hamiltonowskiego Kn. Dodanie do G krawędzi z grafu Kn daje w wy-niku graf, który nadal spełnia założenia twierdzenie i który ma więcej niżE(G) krawędzi, a więc ze względu na wybór grafu G tak powstały graf będziemiał cykl Hamiltona. To znaczy, że G musi mieć (przynajmniej) drogę Ha-miltona, określoną przez pewien ciąg wierzchołków u1, u2, ..., un. PonieważG nie ma cyklu Hamiltona, to nie istnieje krawędź łącząca un, u1. Z koleiz założenia wiemy, że: degG(u1) + degG(un) ≥ n. Można teraz zdefiniowaćpodzbiory A1 i A2 zbioru 2, 3, 4, ..., n takie, A1 = i : u1, ui ∈ E(G)oraz A2 = i : ui−1, un ∈ E(G) gdzie numeracja i jest taka, jak w drodze

Page 182: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

168 8. Grafy

Hamiltona. Mamy więc

A1 = degG(u1), A2 = degG(un), A1 +A2 ≥ n, A1 ∪A2 ≤ n− 1,

zatem A1 ∩ A2 6= ∅ a więc istnieje i ∈ A1 ∩ A2 wtedy u1, u2, ...ui−1unun−1

un−2...uiu1 jest cyklem Hamiltona, co prowadzi do sprzeczności.

Twierdzenie 8.2.9. Jeśli G jest grafem prostym takim, że(i) V (G) = n,

(ii) E(G) ≥(n−12

)

+ 2,

wtedy G jest grafem hamiltonowskim.Dowód. Dla dowolnego prostego grafu G załóżmy (ii) i weźmy dowolne

dwa wierzchołki u i v takie, że u, v 6∈ E(G). Niech H będzie grafem G zktórego usunięto wierzchołki v i u oraz zawierające je krawędzie. Ponieważu, v 6∈ E(G), więc usunęliśmy degG(v) + degG(u) krawędzi i dwa wierz-chołki. H jest podgrafem Kn−2 a więc

(

n− 2

2

)

= Kn−2 ≥ H ≥(

n− 1

2

)

+ 2− degG(v)− degG(u),

a stąd

degG(v) + degG(u) ≥(

n− 1

2

)

−(

n− 2

2

)

+ 2 = n,

a więc G spełnia założenia twierdzenia 8.2.8.

Twierdzenie 8.2.10. (Bondy’ego-Chvatala) Jeśli G jest grafem o nwierzchołkach a C(G) jego nadgrafem zbudowanym według reguły:Jeśli u, v 6∈ E(G) oraz degG(v) + degG(u) ≥ n to krawędź u, vdodajemy do C(G),

to wtedy graf G jest hamiltonowski wtedy i tylko wtedy gdy C(G) jest hamil-tonowski.

Twierdzenie 8.2.11. Droga i cykl Hamiltona dla grafów dwudziel-nych

(i) Jeśli G(V1, V2) ma cykl Hamiltona to V1 = V2.

(ii) Jeśli G(V1, V2) ma drogę Hamiltona to |V1 − V2| ≤ 1.(iii) Jeśli r1 = r2 to Kr1,r2 ma cykl Hamiltona.(iv) Jeśli |r1 − r2| ≤ 1 to Kr1,r2 ma drogę Hamiltona.

Prosty dowód wynika z przechodzenia raz z wierzchołka z V1 do wierz-chołka z V2 potem znowu z V1 itd.

Page 183: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 169

Algorytm 8.2. Algorytm Robertsa-Floresa

Krok 1: Budujemy macierz następników: kolumny macierzy odpowiadająwierzchołkom i zawierają ich następniki w pewnej, na początku ustalonej,kolejności S = ∅

Krok 2: Rozpoczynamy z dowolnego wierzchołka v. Bierzemy pierwszy"dostępny" (który jeszcze nie został włączony do zbioru S wierzchołkówbudowanego cyklu) następnik z kolumny odpowiadającej v. Załóżmy, że jestto wierzchołek u. S := S ∪ u. Następnie bierzemy pierwszy dostępnynastępnik wierzchołka u z kolumny odpowiadającej u, itd.

Krok 3: Mamy następujące możliwości:1. Nie ma dostępnego następnika następuje krok powrotu wyrzucamy z

S ostatnio dodany wierzchołek, wracamy do kolumny, z której został onwybrany i bierzemy kolejny dostępny następnik; następnie bierzemy pierwszydostępny jego następnik, itd. (oczywiście za każdym razem, gdy nie madostępnego następnika następuje krok powrotu);2. Zbiór S ma już moc n czyli znaleźliśmy już ścieżkę Hamiltona H z v

do w, gdzie w jest ostatnio dodanym do S wierzchołkiem. Sprawdzamy, czyistnieje krawędź z w do v: jeśli TAK, to zapisujemy cykl HamiltonaH + v, w i robimy krok powrotu gdy chcemy znaleźć wszystkie cykleHamiltona lub STOP jeśli chcemy znaleźć tylko jeden cykl Hamiltona); jeśliNIE (nie istnieje krawędź z w do v) to krok powrotu.

Krok 4: Koniec następuje, gdy powrócimy do wierzchołka v i nie ma jużdostępnych jego następników.

Problem 8.2.4. Czy następujące grafy mają drogę (cykl) Eulera (Hamilto-na)?

s ss

s@@s@@@

@@s s s

s

s@@s@@@

@@s s s

s

s@@s@@@

@@s

n razy

...

G1

ss s@@s@@

AAA

s sAAA

G2

ss s@@

s@@AAA

s sAAAsG3

8.2.3. Odwzorowania grafów

Definicja 8.2.8. Izomorfizm grafów. Niech G = (V (G), E(G)) oraz F =(V (F), E(F)) będą dwoma grafami. Jeżeli istnieje bijekcja (funkcja różno-wartościowa i ”na”) f : V (G) −→ V (F), taka, że

(

< f(u), f(v), k >∈ E(F))

⇐⇒(

< u, v, k >∈ E(G))

(dla grafów skierowanych(

< f(u), f(v), k >∈ E(F))

⇐⇒(

< u, v, k >∈E(G)

))

to powiemy że grafy te są izomorficzne:

F ∼= G.

Bezpośrednio z definicji wynika, że jeżeli f jest izomorfizmem grafówF i G to dla każdego wierzchołka u ∈ V (F) jest degF (u) = degG(f(u)).Własność ta pomaga znajdować izomorfizm grafów.

Page 184: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

170 8. Grafy

Przykład 8.2.1. Rozważmy trzy grafy:

Rysunek 8.18. Izomorfizm grafów

sbsa sd

scse

@@@@

G1

sα sβ

sδsǫ

%%%

CCC

eee

G2

sAsB sCsD sE

G3

wtedyG1 G2 G3

wierzchołek stopień wierzchołek stopień wierzchołek stopieńa 3 α 2 A 3b 3 β 3 B 3c 2 γ 3 C 3d 2 δ 2 D 3e 4 ǫ 4 E 2

a więc w grafach G1 i G2 są dwa wierzchołki stopnia 2, dwa wierzchołkistopnia 3 i jeden stopnia 4, podczas gdy w grafie G3 jest jeden wierzcho-łek stopnia 2 i cztery wierzchołki stopnia 3. Na pewno więc G1 6∼= G3 orazG2 6∼= G3. Musimy jeszcze rozstrzygnąć, czy G1 ∼= G2? Gdyby f było takimizomorfizmem to f(e) = ǫ (bo jest jeden wierzchołek stopnia 4). Dalej mo-żemy założyć, że albo f(d) = α albo f(d) = δ. Przyjmijmy f(d) = α, wtedyponieważ d jest połączone krawędzią z a a α krawędzią z β otrzymujemyf(a) = β. Rozumując analogicznie dalej otrzymujemy

f :

a −→ β,b −→ γ,c −→ δ,d −→ α,e −→ ǫ,

a więc G1 ∼= G2. Rozważając f(d) = δ otrzymujemy inny izomorfizm grafówG1 oraz G2:

f :

a −→ γ,b −→ β,c −→ α,d −→ δ,e −→ ǫ.

Innych izomorfizmów tych grafów już nie ma.

Page 185: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 171

Problem 8.2.5. Które z podanych poniżej grafów są izomorficzne:

Rysunek 8.19. Izomorfizm grafów

s s sc c c

JJJJ

JJJJ

ZZZZ

&%'$isss s s s s s

s@@ss@@@

@@ss s s s

s%%%

CCC

eee

@@sAAs sssss ss s s

s@@ss@@@

s@@

Algorytm 8.3. Prosty algorytm testowania izomorfizmu

Dane: Grafy proste G i F

Wynik: izom wskazuje czy są czy nie izomorficzne

izom=False

i f V (G) 6= V (F) then stop

i f E(G) 6= E(F) then stopf o r każdej bijekcji f : VG → VF

izom1=Truef o r każdej pary u, v ∈ VG

i f u, v są połączone krawędzią a f(u), f(v) nie lubu, v nie są połączone krawędzią a f(u), f(v) jest toizom1=False ; e x i t f o r

i f izom1 then izom=True ; stopstop

8.2.4. Kolorowanie grafów

8.2.4.1. Grafy planarne

Definicja 8.2.9. Graf planarny jest to graf, który można narysować napłaszczyźnie bez przecięć. Ścianą wewnętrzną grafu narysowanego na płasz-czyźnie nazywamy część płaszczyzny wyznaczoną przez krawędzie tego grafua nieograniczony obszar poza grafem to ściana zewnętrzna.

Na przykład graf G1 z Rysunku 8.18 ma trzy ściany wewnętrzne wyzna-czone przez trójkąty; (aed), (aeb), (ebc) oraz jedną ścianę zewnętrzną.Każdy graf ma dokładnie jedną ścianę zewnętrzną.

Page 186: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

172 8. Grafy

Twierdzenie 8.2.12. (Euler) Jeżeli w grafie planarnym n jest liczbąwierzchołków, e liczbą krawędzi, a f liczbą ścian, to zachodzi równość

n− e+ f = 2.

Dowód. Indukcja. Każdy graf możemy uzyskać wychodząc z poje-dynczego wierzchołka (n = 1, e = 0, f = 1) i dodając kolejne krawędzie.Dodawana krawędź może być dodana wraz z nowym wierzchołkiem (n i ezwiększają się o 1, f pozostaje bez zmian) lub może łączyć dwa wcześniejdołączone wierzchołki (e i f zwiększają się o 1,n nie zmienia się).

Wniosek 8.2.1. Grafy K5 i K3,3 nie są planarne.Dowód. Załóżmy, że graf K5 jest planarny. Mamy n = 5, e = 10, f =

2 − n + e = 7. Ale każda ściana ma co najmniej 3 krawędzie i dlatego3f ≤ 2e, a w rozważamym grafie 3·7 = 21 > 2·10 = 20 i mamy sprzeczność.Przypuśćmy, że graf K3,3 jest planarny. Wtedy e = 9, n = 6, f = 2+9−6 =5.W grafie K3,3 nie ma trójkątów i dlatego 4f ≤ 2e, a w rozważanym grafie4 · 5 = 20 > 2 · 9 = 18 i mamy sprzeczność.

Twierdzenie 8.2.13. Rozważamy graf prosty planarny. Wtedy:• W grafie istnieje wierzchołek stopnia nie większego niż 5.• Graf ma co najwyżej 3n− 6 krawędzi.Dowód. Każda ściana ma co najmniej 3 krawędzie. Niech f3, f4, f5, ...

oznaczają liczbę ścian o 3, 4, 5, ... krawędziach. Mamy

f = f3 + f4 + f5 + ...

2e = 3f3 + 4f4 + 5f5 + ...

Stąd 2e ≥ 3f i dalej 3n − 6 = 3e − 3f ≥ e. Załóżmy, że stopień każdegowierzchołka jest nie mniejszy niż 6. Wtedy

n = n6 + n7 + n8 + ...

gdzie n6, n7, n8, ... oznaczają liczby wierzchołków stopnia 6, 7, 8, ... odpo-wiednio oraz

2e = 6n6 + 7n7 + 8n8 + ....

Stąd−12 = 6(−n + e− f) = (2e− 6n) + 2(2e− 3f) ≥ 0

i mamy sprzeczność.

Ćwiczenie 8.2.3. Zbadaj planarność następujących grafów:

Page 187: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 173

r r r rr r r r

HHHH

HHHH

G1

r rr r rr rHHHH

XXXX@

G2 rr r r

r rrr

@@

@@

BBBBBBB

AAAA

AAAA G3

Twierdzenie 8.2.14. (Kuratowskiego) Graf jest planarny wtedy i tylkowtedy gdy nie zawiera podgrafu homeomorficznego z K5 lub K3,3 (tzn. takiegografu, który różni się od wymienionych tym, że może mieć dodatkowe węzłyna krawędziach).

Twierdzenie 8.2.15. Graf jest planarny wtedy i tylko wtedy, gdy nie za-wiera podgrafu ściągalnego do grafu K5 lub K3,3. Ściąganie grafu polega nakolejnym ściąganiu krawędzi. Natomiast ściąganie krawędzi polega na utoż-samianiu wierzchołków, które łączy dana krawędź i pomijaniu ewentualnychpętli.

Graf Petersena jest nieplanarny i ściągalny do grafu K5.

Definicja 8.2.10. Graf dualny do danego grafu planarnego tworzymy u-mieszczając na każdej ścianie punkt i łącząc punkty leżące na sąsiednichścianach krawędziami przecianającymi dzielące krawędzie (jeżeli na dzielą-cych krawędziach leżą wierzchołki, to uzyskujemy krawędzie wielokrotne).Dowód. Alternatywny dowód twierdzenia Eulera. Dla danego

grafu planarnego mającego n wierzchołków, e krawędzi i f ścian tworzymygraf dualny. Drzewo spinające graf (zob. podrozdz. 8.4.2) grafu dualnegoma f − 1 krawędzi. Krawędzie te przecinają pewne krawędzie wyjściowegografu. Pozostałe krawędzie wyjściowego grafu tworzą drzewo spinające on− 1 krawędziach. Suma przeciętych i nieprzeciętych krawędzi daje wszyst-kie krawędzie (f − 1) + (n− 1) = e czyli n− e+ f = 2.

8.2.4.2. Kolorowanie grafów

Definicja 8.2.11. Najmniejszą liczbę kolorów potrzebnych do pomalowaniawierzchołków grafu prostego G tak, aby sąsiednie wierzchołki miały różnekolory nazywamy liczbą chromatyczną i oznaczamy symbolem χG. Indeksemchromatycznym χG nazywamy najmniejszą ilość kolorów potrzebnych do po-malowania krawędzi grafu G tak, aby żadne dwie krawędzie mające wspólnywierzchołek nie były tego samego koloru.

Twierdzenie 8.2.16. Jeśli w grafie prostym stopnie wierzchołków nie prze-kraczają d, to wystarczy d+ 1 kolorów do pokolorowania wierzchołków.Dowód. Indukcja względem liczby wierzchołków. Usuwamy do-

wolny wierzchołek. Malujemy resztę za pomocą d + 1 kolorów. Usuniętywierzchołek malujemy kolorem różnym od kolorów jego d sąsiadów.

Page 188: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

174 8. Grafy

Twierdzenie 8.2.17. (Brooks) Liczbę d+1 w Twierdzeniu 8.2.16 możnazmiejszyć do d.

8.2.4.3. Kolorowanie grafów planarnych (kolorowanie map)

Mówimy, że dwa obszary (stany, wojeództwa, państwa) na mapie mająwspólną granicę, jeżeli stykają się w więcej niż w pojedynczych punktach (!)tzn. jeżeli granica ich jest kawałkiem jakiejś krzywej, wykluczamy sytuacjęgraniczenia tylko w jednym punkcie (jak to ma miejsce w USA w punk-cie styku stanów: Nowy Meksyk, Arizona, Kolorado i Utah). Bez takiegozałożenia można konstruować mapy wymagające dowolnej liczby kolorów:wystarczy podzielić okrąg na części zawierające środek - do pomalowaniaużyjemy tylu kolorów, na ile części podzieliliśmy okrąg. Poza tym zakła-damy, że jako obszary do pokolorowania rozważamy tylko zbiory spójne toznaczy obsazary te nie mogą si e dzielić na dwa rozłączne terytoria któremuszą być pomalowane tą samą barwą (Jak stan Alaska na mapie USA).Poniżej przedstawiamy mapę stanów USA (bez Hawajów i Alaski) pomalo-waną czterema barwami.

Rysunek 8.20. Problem 4 barw na przykładzie mapy USA

Krótka historia problemu 4 barw.W 1852 r. Francis Guthrie zauwa-żył, że mapę hrabstw Anglii można pokolorować 4 barwami i zastanawiałsię czy jest to prawdziwe dla każdej mapy, a jego brat Frederick spytał się oto Augusta De Morgana. Arthur Cayley w 1878 pierwszy opisał problem. W1879 r. londyński prawnik A. B. Kempe opublikował ”dowód” twierdzeniao 4 barwach, ale w 1890 Percy Heawood znalazł błąd w tym dowodzie.Hilbert przypuszczał (po pojawieniu się twierdzenia z logiki o tym że każdaniesprzeczna logika jest nierozstrzygalna) że problem ten nie da się rozwią-zać (rozstrzygnąć). Jednak poprawny dowód opracowali Kenneth Appel iWolfgang Haken w 1977 r., ale dowód tym był poważnie wspierany progra-mem komputerowym. W 1997 roku pojawił się nowy dowód tego wyniku,również wykorzystujący komputer, ale w sposób istotnie mniej skompliko-

Page 189: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.2. Grafy nieskierowane 175

wany od tego co robili Haken i Appel. Jego autorami są: Robertson, Sanders,Seymour i Thomas z Atlanty.

Problem kolorowania map można zamienić na opisany problem koloro-wania wierzchołków grafu dualnego.

Twierdzenie 8.2.18. Do pokolorowania grafu planarnego wystarczy 6 ko-lorów.Dowód. Indukcja względem liczby wierzchołków. Usuwamy wierzchołek

stopnia 5 lub mniejszego (zob Twierdzenie 8.2.16 a). Kolorujemy resztęgrafu, a potem kolorujemy usunięty wierzchołek kolorem różnym od kolorów5 sąsiadów.

Twierdzenie 8.2.19. Do pokolorowania grafu planarnego wystarczy 5 ko-lorów.Dowód. Indukcja względem liczby wierzchołków. Jeśli wszystkie wierz-

chołki mają stopień mniejszy od 5, to malujemy bez trudności. W przeciw-nym wypadku rozważamy wierzchołek v stopnia 5 połączony z wierzchoł-kami v1, v2, v3, v4, v5. Dla pewnych i, j wierzchołki vi, vj nie są połączone.Inaczej nasz graf zawierałby graf K5 i nie byłby planarny. Ściągamy kra-wędzie vi, v, vj , v. Tak otrzymany graf malujemy pięcioma kolorami.Następnie rozsuwamy ściągnięte krawędzie nadając wierzchołkom vi, vj ko-lor wierzchołka v, a wierzchołek v malujemy pozostałym piątym kolorem(teraz dwóch z pięciu sąsiadów v ma ten sam kolor).

Twierdzenie 8.2.20. (Appel, Haken, komputer). Do pokolorowaniagrafu planarnego wystarczą 4 kolory.

Ćwiczenie 8.2.4. Spróbuj pokolorować mapę USA z rysunku 8.20 trzemakolorami. W którym miejscu pojawia się problem? Dlaczego? Czy potrafiłbyśopisać mały kawałek mapy, której nie da się pokolorować trzema barwami?

8.2.5. Kody Gray’a

Definicja 8.2.12. Kodem Gray’a długości n nazywamy takie uporządko-wanie wszystkich 2n ciągów n cyfr binarnych, że kolejne ciągi różnią siędokładnie jedną cyfrą. To samo dotyczy pierwszego i ostatniego ciągu.

Na przykład dla n = 2 uporządkowanie 00, 01, 10, 11 jest złe bo pomiędzy01 a 10 jest różnica dwóch pozycji, również pomiędzy 11 (ostatnim) a 00(pierwszym) jest różnica na dwóch pozycjach. Natomiast ciąg 01, 11, 10, 00jest dobrym ciągiem kodów Gray’a. Dla n = 5 ciąg kodów Gray’a podajemyw kolumnach poniżej:

Page 190: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

176 8. Grafy

Tabela 8.5. Kody Gray’a dla n = 5

00000 10001 10100 00101 01100 11101 11000 0100100010 10011 10110 00111 01110 11111 11010 0101100011 10010 10111 00110 01111 11110 11011 0101000001 10000 10101 00100 01101 11100 11001 01000

Znajdowanie kodów Gray’a jest równoważne znajdowaniu cyklu Hamil-tona w grafach Qn (zob. podrozdz. 8.2.1) gdzie V (G) = 0, 1n, E(G) =uv : u, v ∈ V (G) ∧ u i v różnią się dokładnie 1 cyfrą.

Przykład 8.2.2. (n=3)

s s

s sss ss

@@

@@

001

000 010

011

101 111

100 110

Q3

s s

s sss ss

@@

001

000 010

011

101 111

100 110

Cykl Hamiltona w Q3

000001011010110111101100

Kody Gray’a dla n = 3

Kodów Gray’a można używać do etykietowania procesów w sieci będącejhiperkostką. Kody Gray’a mają wiele różnych zastosowań, na przykład dominimalizacji funkcji logicznych metodą tablicy Karnaugha.

Problem 8.2.6. Czy mając dane kody Gray’a długości n− 1 można z tychkodów otrzymać kody Gray’a długości n? Jak wygląda ta rekurencja? Czyjeśli każdy ciąg kodów Gray’a przekształcimy używając tej samej permuta-cji to czy też otrzymamy kody Gray’a? Czy jeśli kody Gray’a zapiszemy wodwrotnej kolejności to też otrzymamy kody Gray’a?

Problem 8.2.7. Wykorzystując rozwiązanie problemu 8.2.6 napisz algo-rytm konstruujący kody Gray’a dowolnego rozmiaru i następnie permutującyte kody wg. zadanej permutacji.

Problem 8.2.8. Jak wygląda konstrukcja ciągu kodów Gray’a dla alfabetu0,1,2 długości 2? A długości 3? Czy też wtedy jest możliwa rekurencjataka jak w problemie 8.2.6?

8.2.6. Własności poznanych grafów

Własności wprowadzonych w podrozdziale 8.2.1 grafów streścimy w ta-belce

Page 191: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.3. Grafy skierowane 177

Tabela 8.6. Własności podstawowych klas grafów

Graf Eulera Hamiltona κ(G) λ(G) χ(G) χ(G)SCn nie nie 1 (n>2) 1 (n>2) 2 2Bn n ≥ 1 n ≥ 1 - - 1 nDn 2|n n ≥ 2 - - 2 nKn 2 6 |n n ≥ 3 n− 1 n− 1 n n− 1 (2|n, n ≥ 2)

n (2 6 |n, n ≥ 2)Km,n 2|m i 2|n m = n m ∧ n m ∧ n 2 m ∨ nCn tak n ≥ 1 2 2 2 (2|n, n ≥ 2) 2 (2|n, n ≥ 2)

3 (2 6 |n, n ≥ 3) 3 (2 6 |n, n ≥ 3)Wn nigdy n ≥ 2 3 3 3 (2|n, n ≥ 4) n

4 (2 6 |n, n ≥ 3)Qn 2|n n ≥ 2 n n 2a ?b

Pet nie nie 3 3 3 4

a Jeśli nie zawiera nieparzystego cyklub nieznane

gdzie n ∧m = minn,m, n ∨m = maxn,m, 2|n gdy n jest parzyste i2 6 |n gdy n nieparzyste.

8.3. Grafy skierowane

8.3.1. Wycieczki w grafie skierowanym

W grafie skierowanym dla każdego wierzchołka v można mówić o kra-wędziach wchodzących, to znaczy takich, których końcem jest wierzcho-łek v i krawędziach wychodzących, to znaczy takich których początkiemjest wierzchołek v. Ilość pierwszego typu krawędzi oznaczać będziemy przezindegG(v) a ilość drugiego typu krawędzi dla wierzchołka v oznaczać będzie-my przez outdegG(v). Oczywiście dla każdego wierzchołka v mamy degG(v) =indegG(v) + outdegG(v).

Definicja 8.3.1. Mówimy, że graf skierowany G jest grafem Eulera (jesteulerowski) lub że ma cykl Eulera jeżeli istnieje cykl skierowany (nie możnaprzechodzić po krawędziach w przeciwnym niż oznaczony kierunek) przecho-dzący przez wszystkie krawędzie grafu (oczywiście przez każdą tylko jedenraz). Analogicznie mówimy że graf skierowany ma drogę Eulera.

Twierdzenie 8.3.1. Skierowany spójny graf G ma drogę lecz nie cykl Eule-ra jeżeli istnieje dokładnie jeden wierzchołek v taki, że outdegG(v) = indegG(v)+1, istnieje dokładnie jeden wierzchołek u taki, że outdegG(u)+1 = indegG(u)i dla wszystkich pozostałych wierzchołków w mamy outdegG(w) = indegG(w).Wtedy wierzchołek v jest początkiem a u końcem tej drogi. Skierowany graf

Page 192: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

178 8. Grafy

G ma cykl Eulera wtedy i tylko wtedy, gdy dla każdego wierzchołka v zachodzioutdegG(v) = indegG(v).

Dla grafów skierowanych konstrukcja drogi (cyklu) Eulera (Hamiltona)jest prostą modyfikacją algorytmów 8.1 i 8.2 odpowiednio.

Ćwiczenie 8.3.1. Znajdź drogę (cykl) Eulera (Hamiltona) w grafie na ry-sunku 8.22.

8.3.2. Ciąg de Bruijna

Definicja 8.3.2. Ciągiem de Bruijna rzędu n nazywamy takie ustawienie2n cyfr 0 i 1 (powiedzmy c1c2, ..., c2n), że każdy ciąg długości n występuje wtym ustawieniu dokładnie raz, to znaczy ciągi: (c1, .., cn), (c2, ..., cn+1)...(c2nc1,..., cn−1) są różne.

Rysunek 8.21. Ciąg de Bruijna dla n = 4

11

010000110 0 1

011

Aby wyjaśnić konstrukcję tego ciągu rozważmy następujący graf:

Rysunek 8.22. Graf de Brujina

000

001

@@@I

100

6@@@R010

101011

@@@I

110?

@@@R111

-

-

01

0 1

0

0

10

0

1

1 0

11

Graf de Bruijna ma wierzchołki etykietowane ciągami długości 2n−1.Ciąg de Bruijna jest konstruowany tak, że jeżeli mamy element np 0110 tonastępnym elementem musi być 110∗ gdzie w miejsce ∗ powinniśmy wstawić0 lub 1. Oczywiście w całym ciągu musi być i 1100 i 1101. Graf de Bruijnaskonstruowany jest tak, że połączone są ze sobą wierzchołki c0c1c2 i c1c20oraz c1c21. Wtedy problem znalezienia ciągu de Bruijna można interpreto-

Page 193: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.4. Drzewa 179

wać jako znalezienie cyklu Eulera w skierowanym grafie de Bruijna. Jeślirozważymy w grafie na rysunku 8.22 następujący cykl Eulera:

1010→ 011

1→ 1111→ 111

0→ 1101→ 101

0→ 0100→ 100

1→ 001

0011→ 011

0→ 1100→ 100

0→ 0000→ 000

1→ 0010→ 010

1→ 101

otrzymaliśmy ciąg de Bruijna z rysunku 8.21.

Problem 8.3.1. Co należy wstawić w miejsce gwiazdek w ciągu de Brujina:110⋆00100⋆101011? Jak skonstruować ciąg de Bruijna długości n = 3? Czyistnieje uogólnienie ciągu de Bruijna dla alfabetu trzyznakowego 0, 1, 2?

8.4. Drzewa

8.4.1. Własności drzew

Drzewo to prosty graf acykliczny i spójny. Nie ma pętli ani krawędziwielokrotnych.Pojęcie drzewa często występuje w praktyce. Na przykład możemy się

spotkać z drzewami w genealogii, językoznawstwie czy filogenetyce.

Rysunek 8.23. Przykłady zastosowań drzew

Czasem definiuje się drzewa rekurencyjnie:

Page 194: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

180 8. Grafy

(i) Pojedynczy wierzchołek v jest drzewem(ii) Jeżeli T1, ..., Tn są drzewami a v jest pojedynczym wierzchołkiem nienależącym do żadnego z tych drzew to graf T powstały przez połączeniewierzchołka v z dokładnie jednym wierzchołkiem z każdego z drzew Ti

dla 1 ≤ i ≤ n jest również drzewem.

Jest dużo różnych charakteryzacji pojęcia drzewa:

Twierdzenie 8.4.1. Niech G będzie grafem bez pętli i krawędzi wielokrot-nych. Załóżmy, że V (G) = n ≥ 2. Następujące warunki są równoważne:(i) G jest drzewem.(ii) G jest acykliczny o n− 1 wierzchołkach.(iii) G jest spójny o n− 1 krawędziach.

Wierzchołki stopnia 1 nazywamy liśćmi.

Twierdzenie 8.4.2. Niech G będzie grafem bez pętli i krawędzi wielokrot-nych. Załóżmy, że V (G) ≥ 2. Następujące warunki są równoważne:(i) G jest drzewem.(ii) Dla każdych dwóch różnych wierzchołków grafu G istnieje dokładniejedna droga łącząca te wierzchołki.(iii) G jest spójny i usunięcie dowolnej krawędzi rozspójnia G.(iv) G jest acykliczny i dodanie dowolnej krawędzi powoduje powstaniecykli.

Rysunek 8.24. Przykłady drzew

s s sAAs ss s sCCs ssAAss SS QQQs

T1

sssss

T2

s s CCs s CCs s CCs s CCsCCs

T3

s s s s s s###CCSSccc

sT4

Z samej definicji drzewa T mamy κ(T ) = λ(T ) = 1. Ponadto żadne

drzewo T o V (T ) ≥ 2 nie jest grafem Eulera ani Hamiltona, chociaż drzewoT2 z rysunku 8.24 ma drogę Eulera i Hamiltona. Jeżeli w definicji drze-wa pominiemy słowo ”spójny” to tak powstały graf nazywamy lasem. Naprzykład T1 ∪ T2 ∪ T3 ∪ T4 z rysunku 8.24 to las złożony z czterech drzew.

8.4.2. Drzewo spinające graf

Definicja 8.4.1. Niech G = (V (G), E(G)) będzie dowolnym spójnym gra-fem. Drzewem T = (V (T ), E(T )) spinającym graf G nazywamy takie drze-

Page 195: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.4. Drzewa 181

wo, że

V (T ) = V (G),E(T ) ⊆ E(G).

Twierdzenie 8.4.3. Każdy graf spójny ma drzewo spinające.

Definicja 8.4.2. Niech będzie dany graf G = (V,E) a H ⊆ G niech będziepodgrafem grafu G. Funkcja f taka, że

f : E(G) −→ R+ ∪ 0,

nazywamy wagą grafu G. Wagę całego podgrafu definiuje się jako

ω(H) =∑

e∈E(H)

f(e).

Problem 8.4.1. Jak dla dowolnego grafu G z wagą f znaleźć drzewo Tspinające ten graf o minimalnej wadze ω(T )?

Algorytm 8.4. Algorytm Kruskala

Dane: Niech G będzie skończonym grafem spójnym z wagami, którego krawędzieuporządkowane są: e1 < e2 < e3 < ... < em tak, że

f(e1) ≤ f(e2) ≤ f(e3) ≤ ... ≤ f(em).

Wynik: Zbiór E krawędzi minimalnego drzewa spinającego graf G.

E:=∅f o r j :=1 to m do

i f E ∪ ej jest acykliczny then

E:=E∪ej

Rysunek 8.25. Algorytm Kruskalasv4

sv2

sv1

sv5 sv6

sv3

sv7

AAAAAA

e1(1) e2(2)

e7(5)

e4(2)

e5(4)

e6(5) e3(4) e8(7)

AAAAAA

Page 196: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

182 8. Grafy

Najpierw porządkujemy krawędzie e1 ≤ e2 ≤ e4 ≤ e3 ≤ e5 ≤ e7 ≤ e6 ≤e8 następnie wykonujemy kolejne kroki algorytmu

Tabela 8.7. Algorytm Kruskala

E E ∪ ej czy cykliczny∅ e1 NIEe1 e1, e2 NIEe1, e2 e1, e2, e4 NIEe1, e2, e4 e1, e2, e4, e3 NIEe1, e2, e4, e3 e1, e2, e4, e3, e5 NIEe1, e2, e4, e3, e5 e1, e2, e4, e3, e5, e7 CYKL e1, e5, e4, e7e1, e2, e4, e3, e5 e1, e2, e4, e3, e5, e6 CYKL e2, e3, e6e1, e2, e4, e3, e5 e1, e2, e4, e3, e5, e8 NIE

Jeśli graf G jest spójny to w wyniku otrzymujemy minimalne drzewospinające graf G. Jeśli graf G nie jest spójny to otrzymujemy las spinającygraf G.

Algorytm 8.5. Algorytm Prima

Dane: Niech G będzie skończonym grafem spójnym zwagami (krawędzieniekoniecznie uporządkowane)

Wynik: Zbiór E krawędzi minimalnego drzewa spinającego graf G.

E:=∅wybierz wierzcholek v ∈ V (G)V:=vwhi le V 6= V (G) do

Wybierz krawędź u, v ze zbioru E(G)o najmniejszej wadze tak, że

u ∈ V, v ∈ V (G)− V ;Dopisz u, v do EE:=E∪u, v;

Dopisz v do VV:=V∪v;

Przykład działania algorytmu Prima dla grafu z rysunku 8.25.

Page 197: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.4. Drzewa 183

Tabela 8.8. Algorytm Prima

E V V (G)\V krawędź waga

∅ v1 v2, v3, v4, v5, v6, v7 v1, v2 = e1 1

v1, v4 = e7 5

e1 v1, v2 v3, v4, v5, v6, v7 v1, v4 = e7 5

v2, v3 = e2 2

v2, v5 = e5 4v2, v6 = e6 5

e1, e2 v1, v2, v3 v4, v5, v6, v7 v1, v4 = e7 5

v2, v5 = e5 4

v2, v6 = e6 5v3, v6 = e3 4v3, v7 = e8 7

e1, e2, e5 v1, v2, v3, v5 v4, v6, v7 v1, v4 = e7 5v2, v6 = e6 5v3, v6 = e3 4v3, v7 = e8 7

v4, v5 = e4 2

e1, e2, e4, e5 v1, v2, v3, v4, v5 v6, v7 v2, v6 = e6 5

v3, v6 = e3 4

v3, v7 = e8 7

e1, e2, e3, e4, e5 v1, v2, v3, v4, v5, v6 v7 v3, v7 = e8 7

e1, e2, e3, e4, e5, e8 v1, v2, v3, v4, v5, v6, v7 ∅

Problem 8.4.2. W Tabeli 8.9 podajemy odległości w milach pomiędzy mia-stami w USA które towarzystwo naftowe rurociągami przechodzącymi bez-pośrednio pod tymi miastami. Ile co najmniej mil rur do tego potrzeba?

Tabela 8.9. Tabela odległości miast

Des Moines Milwaukee Minneapolis Omaha Pierre WinnipegBismarck 670 758 427 581 211 369Des Moines 361 252 132 492 680Milwaukee 332 493 690 759Minneapolis 357 394 432Omaha 391 650Pierre 521

8.4.3. Algorytm Huffmana

W teorii komunikacji mamy często do czynienia z sytuacją gdy jest pe-wien zbiór komunikatów, powiedzmy K = k1, k2, ..., kn o prawdopodo-bieństwach pojawienia się (częstościach) P = p1, p2, ..., pn, odpowiednio.Oczywiście, zakładać będziemy, że 0 ≤ pi ≤ 1, 1 ≤ i ≤ n oraz

∑ni=1 pi = 1.

Page 198: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

184 8. Grafy

Załóżmy również, że mamy pewien alfabet A = a1, a2, ..., al którego cią-gami chcielibyśmy zakodować wszystkie komunikaty. Bez zmniejszenia ogól-ności rozważań możemy założyć, że alfabet A = 0, 1 jest dwuznakowy.Ponieważ nie rozważamy specjalnego znaku - końca komunikatu, chcemy,żeby ciąg zer i jedynek na wyjściu dał się jednoznacznie ”odczytać” komu-nikatami z K. Załóżmy, że mamy pewien sposób kodowania komunikatów zK ciągami 0 i 1 i niech dla tego sposobu kodowania S = l1, l2, ..., ln bę-dą to długości kodów komunikatów k1, k2, ..., kn odpowiednio. Jesteśmyzainteresowani minimalizacją funkcji

LS =n∑

i=1

lipi.

W teorii komunikacji dużą rolę odgrywa entropia

H = −n∑

i=1

pi log2(pi).

Można udowodnić, że dla każdego poprawnego sposobu kodowania S wiel-kość

RS = LS −H,

jest nieujemna, a jeżeli przyjmuje wartość 0 to kod jest optymalny, są jed-nak układy prawdopodobieństw dla których nigdy nie przyjmie wartości 0.Wielkość R nazywamy redundancją (nadmiarowością) komunikatu. Re-dundancja współczesnego języka polskiego wynosi około 73%, to znaczy, żemniej więcej 4 razy moglibyśmy przeciętnie skrócić wypowiedź, bez utratyinformacji. Redundancja w komunikacji międzyludzkiej jest jednak potrzeb-na do odtworzenia uszkodzonego (gdy na przykład czegoś nie dosłyszeliśmy)komunikatu. Również przy transmisjach komputerowych stosuje się redun-dancję.Problemem, którym zajmować się będziemy w tym podrozdziale, jest

problem konstrukcji optymalnych, o minimalnej redundancji, kodów spośródgrupy tak zwanych kodów migawkowych, to znaczy kodów których żadnesłowo kodowe nie jest przedrostkiem innego słowa kodowego. Takie kodymożna jednoznacznie opisać skierowanymi drzewami.Jeżeli w drzewie nieskierowanym wyróżnimy jeden wierzchołek (rdzeń,

korzeń drzewa) to takie drzewo staje się już drzewem skierowanym. Na przy-kład rozważając drzewa z rysunku 8.24 po wyborze korzenia otrzymujemy

Page 199: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.4. Drzewa 185

Rysunek 8.26. Przykłady drzew skierowanych

s s sAA?Us s?s s sCCWs s?sAAUss+ SSw QQQsc

T1

ssssc

?

?

?

?

T2

s s CC Ws s CC Ws s CC Ws s CC WcCCWs

T3

s s s s s s###CCSSccc= ~/wW

cT4

Definicja 8.4.3. Skierowane drzewo nazywamy drzewem z wagami jeżelijest określona funkcja f przyporządkowująca liściom drzewa liczby rzeczy-wiste. Poziomem węzła v drzewa nazywamy długość drogi (ilość krawędzi)l(v) jakie prowadzą od rdzenia drzewa do węzła v. Wagą drzewa nazywamywielkość

v∈E(T ),v jest liściemf(v)l(v).

Na przykład, wagi i poziomy liści z rysunku 8.26 występują w tabelce8.10 w drugim i czwartym wierszu a waga całego drzewa została obliczonawe wzorze (8.4.1) i wynosi 3.13.

Definicja 8.4.4. Drzewo skierowane T nazywamy drzewem binanarnym je-śli dla każdego węzła v jest outdegT (v) = 2, outdegT (v) = 1 lub outdegT (v) =0 (wtedy v jest liściem).

Przykład 8.4.1. Rozważmy cztery następujące sposoby kodowania komu-nikatów o prawdopodobieństwach podanych w tabelce

Tabela 8.10. Przykłady kodów

Komunikat Częstość Kod 1 Kod 2 Kod 3 Kod 4K1 S1 K2 S2 K3 S3 K4 S4

a 12 0 1 10 2 0 1 01 2

b 14 1 1 1000 4 10 2 000 3

c 18 00 2 1001 4 110 3 1 1

d 18 01 2 1011 4 111 3 001 3

Teraz

L1 =1

2· 1 + 1

4· 1 + 1

8· 2 + 1

8· 2 = 1

1

4bitów,

Page 200: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

186 8. Grafy

L2 =1

2· 2 + 1

4· 4 + 1

8· 4 + 1

8· 4 = 3 bity,

L3 =1

2· 1 + 1

4· 2 + 1

8· 3 + 1

8· 3 = 1

3

4bitów,

L4 =1

2· 2 + 1

4· 3 + 1

8· 1 + 1

8· 1 = 2 bity,

H = −1

2log2(

1

2)− 1

4log2(

1

4)− 1

8log2(

1

8)− 1

8log2(

1

8) = 1

3

4bitów.

a stąd

R1 = L1 −H = −12 bita, R3 = L3 −H = 0 bitów,

R2 = L2 −H = 114 bitów, R4 = L4 −H = 1

4 bitów.

Zwróćmy uwagę, że kod 1 nie jest kodem jednoznacznie dekodowalnym. Naprzykład ciąg na wyjściu 00101 może być odczytany jako aabab lub jako add,jest to więc kod z punktu widzenia teorii kodowania błędny. Pozostałe kodysą jednoznacznie dekodowalne (chociaż nie tak łatwo to sprawdzić). Kod 2nie jest kodem migawkowym, bowiem słowo kodowe 10 (komunikat a) jestprzedrostkiem pozostałych trzech kodów. Kody 3 i 4 są kodami migawkowymii mogą być przedstawione za pomocą skierowanego drzewa binarnego:

c@@

sa ( 12)

s@@s

sb ( 14) @

@ssc ( 18) d ( 18)

R10

0 R1

0 R1

Kod 3

c@@

s s@@ss

@@ss

c ( 18)

a ( 12)

b ( 14) d ( 18)

R10

0 R1

0 R1

Kod 4Kod 3, ponieważ ma redundancję równą 0 bitów i jest jednoznacznie de-

kodowalny jest też kodem optymalnym. Powstaje problem jak dla zadanegociągu prawdopodobieństw skonstruować optymalny kod migawkowy?

Algorytm Huffmana konstruuje dla zadanego ciągu liczb optymalne drze-wo binarne to znaczy drzewo binarne o najmniejszej możliwej wadze.

Algorytm 8.6. Algorytm Huffmana

HUFFMAN(L)

Dane: Ciąg L = ω1, ω2, ..., ωt

Page 201: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.4. Drzewa 187

Wynik: Optymalne drzewo binarne T (L) dla ciągu L

Jeżeli t = 2 to niech T (L) będzie drzewem z dwoma liśćmi ω1 i ω2 w przeciwnym

razie

1. Znajdź dwa najmniejsze wyrazy w ciągu L powiedzmy u i v

2. Niech L′ będzie listą powstałą z L przez usunięcie u i v i wstawienie u+ v.

3. Wykonaj algorytm HUFFMAN(L′) by otrzymać drzewo T (L′)

4. utwórz drzewo T (L) z drzewa T (L′) zastępując liść wagi u+ v w drzewie

T (L′) poddrzewem mającym dwa liście o wagach u i v

Przykład 8.4.2. Danych jest dwanaście komunikatów o prawdopodobień-stwach

k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k120, 01 0, 02 0, 12 0, 07 0, 10 0, 08 0, 31 0, 05 0, 02 0, 08 0, 06 0, 08

Znajdźmy optymalny sposób kodowania tych komunikatów alfabetem dwu-znakowym (np. alfabetem Morse’a traktując 1 jak − a 0 jak ·). Kolejneprzekształcenia podajemy w tabeli (kolejne ciągi L′) a w nawiasach klamro-wych pamiętamy liczby, których sumy dały odpowiednie wagi

Rysunek 8.27. Śledzenie algorytmu Huffmana

0.01 0.02 0.12 0.07 0.10 0.08 0.31 0.05 0.02 0.08 0.06 0.080.030.01, 0.02 0.12 0.07 0.10 0.08 0.31 0.05 0.02 0.08 0.06 0.080.050.01, 0.02, 0.02 0.12 0.07 0.10 0.08 0.31 0.05 0.08 0.06 0.080.100.01, 0.02, 0.02, 0.05 0.12 0.07 0.10 0.08 0.31 0.08 0.06 0.080.100.01, 0.02, 0.02, 0.05 0.12 0.130.07, 0.06 0.10 0.08 0.31 0.08 0.080.100.01, 0.02, 0.02, 0.05 0.12 0.130.07, 0.06 0.10 0.160.08, 0.08 0.31 0.080.180.01, 0.02, 0.02, 0.05, 0.08 0.12 0.130.07, 0.06 0.10 0.160.08, 0.08 0.310.180.01, 0.02, 0.02, 0.05, 0.08 0.220.12, 0.10 0.130.07, 0.06 0.160.08, 0.08 0.310.180.01, 0.02, 0.02, 0.05, 0.08 0.220.12, 0.10 0.290.07, 0.06, 0.08, 0.08 0.310.400.01, 0.02, 0.02, 0.05, 0.08, 0.12, 0.10 0.290.07, 0.06, 0.08, 0.08 0.310.400.01, 0.02, 0.02, 0.05, 0.08, 0.12, 0.10 0.600.07, 0.06, 0.08, 0.08, 0.31

1.000.01, 0.02, 0.02, 0.05, 0.08, 0.12, 0.10, 0.07, 0.06, 0.08, 0.08, 0.31

Otrzymany ciąg

0.01, 0.02, 0.02, 0.05, 0.08, 0.12, 0.10, 0.07, 0.06, 0.08, 0.08, 0.31

umożliwia nam skonstruowanie wymaganego drzewa:

Page 202: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

188 8. Grafy

Rysunek 8.28. Drzewo T (L)

s0.01

s0.02

AA0 1

s s0.02

AA0 1

s s0.05

AA0 1

s s0.08

AA s

0.12s0.10

AA0 1 0 1

0 1s s@@s

0 1

s0.07

s0.06

s0.08

s0.08

AA

AA

s s@@s s0.31

AAs

HHHH

Hc0 1

0 1

0 1 0 1

a to prowadzi do kodu

Tabela 8.11. Wynik algorytmu Huffmana

k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k120, 01 0, 02 0, 12 0, 07 0, 10 0, 08 0, 31 0, 05 0, 02 0, 08 0, 06 0, 08

000000 000001 010 1000 011 1010 11 0001 00001 1011 1001 0016 6 3 4 3 4 2 4 5 4 4 3

dla którego średnia długość słowa kodowego wynosi

L = 0.01 · 6 + 0.02 · 6 + 0.12 · 3 + ...+ 0.08 · 3 = 3.13 (8.4.1)

podczas gdy

H = −0.01 log2(0.01) − 0.02 log2(0.02) − ...− 0.08 log2(0.08) = 3.117958...

a więc redundancja wynosi R = 0, 012042... bita.

Ćwiczenie 8.4.1. Narysuj T (L), gdzie L = 3.2; 4.1; 1.8; 1.1; 2.5; 1.1; 7.6;5.5; 4.1; 3.3; 7.1; 8.1; 4.0; 2.5; 6.2; 7.7.

Problem 8.4.3. Drzewo nazwiemy drzewem r-narnym jeżeli dla wszystkichwęzłów v mamy outdeg(v) ≤ r. Jak skonstruować algorytm Huffmana dlatakich drzew? A jak konstruować dla drzew, które mają ten sam stopieńkrawędzi wychodzących na tym samym poziomie drzewa?

8.5. Zastosowania teorii grafów

Grafy i sieci występują w tak wielu dziedzinach życia, że nie sposóbwymienić nawet najważniejszych zastosowań. My tutaj naszkicujemy kilkaciekawszych zastosowań, uporządkowanych wg. dyscyplin.

Page 203: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.5. Zastosowania teorii grafów 189

Badania operacyjne. Tutaj grafem jest harmonogram wykonywania dzia-łań. Węzłami mogą być działalności a krawędziami kolejność wykonywa-nia działań. Krawędziami mogą być też możliwe konflikty przy wykony-waniu działań.

Biologia. Drzewa filogenetyczne pokrewieństwa gatunków (w szczególnościsłynna klasyfikacja Linneusza).

Chemia. Modele złożonych cząsteczek, wierzchołkami są atomy pierwiast-ków. Są to grafy nieskierowane.

Ekologia. Sieć powiązań żywnościowych - węzłami są gatunki a krawędzia-mi relacja kto kogo zjada, jest to więc graf skierowany.

Fizyka. Grafy służą do modelowania różnych substancji. Wtedy wierzchoł-kami są cząstki atomowe a krawędziami powiązania pomiędzy jądrem ielektronem czy cząstek w atomie.

Genealogia. Tutaj słynne są drzewa genealogiczne, aczkolwiek jeśli bie-rzemy pod uwagę związki małżeńskie to drzewo genealogiczne nie jestdrzewem w sensie podrozdziału 8.4. Węzłami w drzewie genealogicznymsą osoby a krawędziami zależności typu: syn, wnuk, prawnuk, ... Drzewomożna traktować jako częściowo skierowany graf (związki małżeńskie sąnieskierowane).

Geografia. W kartografii problem kolorowanie map czy odwzorowania mapomówione w podrozdziale 8.2.4.

Informatyka1. Schematy blokowe i UML. Projektowanie diagramów prze-

pływu lub schematów UML sterujących programami komputerowymilub opisujących relacje między obiektami informatycznymi. Zazwyczajwęzły to kroki programu a krawędzie to sterowanie, zazwyczaj też są tografy skierowane.2. Inżynieria komputerowa. Projektowanie i analiza sieci kom-

puterowych, tutaj węzły to komputery a krawędzie to połączenia w sieci.Zazwyczaj są to grafy nieskierowane.3. Systemy operacyjne komputera. Drzewa priorytetów do wy-

konania różnych zadań. Węzłami są zadania a krawędzie to kolejnośćpriorytetów.4. Teoria informacji. Kody Gray’a omówione dokładnie w pod-

rozdziale 8.2.5.5. Zarządzanie informacją. Wyszukiwanie blokowe lub binarne

rekordów omówione w podrozdziale 7.4 (szczególnie 7.4.3). Sortowanie iwyszukiwanie przez ”kopcowanie”.6. Konstrukcje algorytmiczne. Wykorzystanie drzew binarnych

do konstrukcji różnych słynnych algorytmów np. algorytm szybkiej trans-formacji Fouriera (FFT).

Page 204: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

190 8. Grafy

Inżynieria.1. Sieci dróg. Analiza sieci dróg między miastami, ruchu na tych

drogach i ustalenie które drogi należy poszerzyć, wyremontować lub do-budować. Grafy nieskierowane (gdy nie ma dróg jednokierunkowych) zwagami krawędzi.2. Kontrola ruchu drogowego. Ustalenie, które ulice powinny

być jednokierunkowe, węzłami są skrzyżowania a krawędziami ulice, grafskierowany.3. Transmisje radiowe. Problem przyporządkowania częstości stac-

jom radiowym, węzłami są stacje radiowe a krawędziami możliwości za-kłócania.4. Konstrukcje drogowe. Jak skonstruować optymalnie drogi, ja-

kie są możliwe skrzyżowania i gdzie. Węzły to skrzyżowania a krawędziedrogi.5. Sieci elektryczne. Problemem są możliwe miejsca izolacji, węzły

to komponenty sieci a krawędzie to kable.Logika.

1. Relacje. Grafy obrazujące relacje w zbiorze węzłami są elementyzbioru a krawędziami wskazanie które elemnty są w relacji.2. Teoria częściowo uporządkowanych zbiorów. Specjalny typ

grafów tzw. diagramy Hessa.Optymalizacja.

1. Optymalizacja sieci. Jak znaleźć drzewa spinające graf, jaknajmniejszym kosztem dotrzeć do wszystkich obiektów (zajmowaliśmysię tym w podrozdziale 8.4.2).2. Problem komiwojażera. Jak znaleźć najkrótszą drogę prze-

chodzącą wszystkie węzły - obiekty (miasta) (zob. podrozdz. 8.2.2).Rachunek prawdopodobieństwa. Grafy obrazują stany (wierzchołki) orazprzejścia (krawędzie) w modelach Markowa. W modelach stacjonarnychmamy do czynienia z jednym skierowanym grafem z wagami krawędzi iwierzchołków a w modelach niestacjonarnych mamy nieskończony ciągtakich grafów.

Socjologia.1. Sieci powiązań społecznych. Tutaj węzłami są osoby a kra-

wędziami grafu interakcje między osobami.2. Hierarchia ważności osób.Węzłami są osoby (oddziały jakiejś

firmy) a skierowane krawędzie wskazują na formę podległości.Turystyka. Problem obejścia wszystkich obiektów turystycznych (zob. pro-blem Eulera - podrozdz. 8.2.2. i 8.3.1).

Zarządzanie. Podziały ludzi na dwie grupy i rywalizacja między tymi gru-pami. Rozważa się tu grafy dwudzielne a bada poziom efektywności pra-cy tych grup.

Page 205: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

8.5. Zastosowania teorii grafów 191

Podsumowanie

• Ogromną motywacją do badania grafów są ich rozliczne zastosowaniaczęściowo zasygnalizowane w podrozdziale 8.4.

• Pierwszym problemem, przed którym stoi informatyk jest sposób im-plementacji grafów. Można je implementować jako listę incydencji, listękrawędzi, macierz sąsiedztwa lub macierz incydencji. Zazwyczaj przykonstruowaniu grafów początkowym elementem jest graf pusty, bukietlub dipol.

• Mając graf zazwyczaj chcemy przejść wszystkie krawędzie lub wierzchoł-ki co odpowiada dostępności jednych obiektów przez inne, dlatego ważnew teorii grafów są cykle i drogi Eulera i Hamiltona.

• Jeżeli sąsiedztwo wierzchołków traktujemy jako kolizję to można rozwa-żać jakie ładunki (kolory) trzeba nadać wierzchołkom w celu uniknięciakolizji. Jest to problem kolorowania grafów i map.

• Również ważnym problemem jest takie rozłożenie ładunków, aby możnabyło najszybciej dotrzeć do tych najbardziej używanych. Problem tenrozwiązuje algorytm Huffmana.

Page 206: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

192 8. Grafy

Page 207: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Bibliografia

[1] Biggs N., L., Discrete Mathematics, Oxford University Press 1989[2] Bollobas B., Modern Graph Theory, Springer 1998[3] Bryant V., Aspekty kombinatoryki, Wydawnictwa Naukowo-Techniczne

1977.[4] Cormen Th., H., Leiserson Ch., E., Rivest, R., L., Stein, C., Wprowadzenie

do algorytmów, WNT, 2004.[5] Diestel, R., Graph Theory, Springer 1997 .[6] Garnier R., Taylor L., Discrete Mathematics for New Technology, Second

Edition, IOP Publishing Ltd 2002, University of Brighton, UK.[7] Graham R., L., Knuth D., E., Patashnik, O., Matematyka Konkretna, Pań-

stwowe Wydawnictwo Naukowe, Warszawa 1996.[8] Grossman P., Discrete Mathematics for Computing, Second Edition, 2002,

Palgrave Macmillan Houndmills, Basingstoke, Hampshire and New York.[9] Handbook of discrete and combinatorial mathematics, Rosen K., H., editor

in chief, Michaels J., G., project editor . . . (et al.), CRC Press LLC, 2000N.W. Corporate Blvd., Boca Raton.

[10] Hoare C. A. R., Proof of a Program. FIND Comm. ACM, 13, No. 1, 1970,s.39-45.

[11] Knuth D., E., Sztuka programowania, Wydawnictwo Naukowo-Techniczne,Warszawa 2002, T. I-III.

[12] Krantz F., G., Discrete Mathematics Demystified, 2009 McGraw-Hill Com-panies, Inc., New York, Chicago, San Francisco.

[13] Lipski, W., Kombinatoryka dla programistów,Wydawnictwo Naukowo- Tech-niczne 2004.

[14] Lipski, W., Marek, W., Analiza kombinatoryczna, Państwowe WydawnictwoNaukowe, Warszawa 1986.

[15] Lovasz L., Pelikan J., Vesztergombi K., Discrete Mathematics: Elementaryand Beyond, 2003 Springer-Verlag New York Inc.

[16] Pałka, Z., Ruciński, A., Wykłady z kombinatoryki, WydawnictwaNaukowo-Techniczne, Warszawa 1998.

[17] Polya, G., Tarjan, R., E., Woods, D., R., Notes on Introductory Combinato-rics, Birkhauser 1983

[18] Riordan, J.,An Introduction to Combinatorial Analysis, Princeton UniversityPress 1978

[19] Ross, K., A., Wright, Ch., R., B., Matematyka Dyskretna, Państwowe Wy-dawnictwo Naukowe, Warszawa 1996.

Page 208: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

194 Bibliografia

[20] Wilson, R., J., Wprowadzenie do teorii grafów, Państwowe WydawnictwoNaukowe, Warszawa 1985.

[21] Wirth, N., Algorytmy + struktury danych = programy, WydawnictwoNaukowo-Techniczne, Warszawa 2004 Wyd. 7.

[22] Materiały z wykładów Uniwersytetu Warszawskiego zamieszczone na stroniehttp://wazniak.mimuw.edu.pl/

Page 209: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Wykaz tabel

1.1. Ilość ruchów potrzebnych na przeniesienie prążków wproblemie wieży z Hanoi. . . . . . . . . . . . . . . . . . . . . 8

1.2. Ilość obszarów które można uzyskać w problemie pizzy. . . . . 91.3. Numer pozycji na której zostanie żywa osoba w problemie

Flawiusza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4. Kolejne rozwiązania uogólnionego problemu Flawiusza. . . . . 121.5. Wyniki metody repertuaru dla rekurencji. . . . . . . . . . . . 141.6. Zastosowanie metody repertuaru do problemu cyfr. . . . . . . 151.7. Rozwiązania uogólnionego problemu cyfr . . . . . . . . . . . . 15

2.1. Liczby harmoniczne Hn. . . . . . . . . . . . . . . . . . . . . . 232.2. Potęgi kn i kn. . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1. Ilość liczb całkowitych w różnego typu przedziałach. . . . . . 453.2. Liczby D(q)

k , q = 3, 4, 5. . . . . . . . . . . . . . . . . . . . . . . 51

4.1. Liczby pierwsze mniejsze od 1000. . . . . . . . . . . . . . . . 654.2. Sito Eratostenesa. . . . . . . . . . . . . . . . . . . . . . . . . 69

5.1. Trójkąt Pascala. . . . . . . . . . . . . . . . . . . . . . . . . . 91

6.1. Funkcje tworzące . . . . . . . . . . . . . . . . . . . . . . . . . 1006.2. Własności funkcji tworzących. . . . . . . . . . . . . . . . . . . 101

7.1. Rozkład sumy zmiennych losowych. . . . . . . . . . . . . . . . 1217.2. Działanie algorytmu - proste wstawianie. . . . . . . . . . . . . 1297.3. Działanie algorytmu - proste wybierania . . . . . . . . . . . . 1327.4 Działanie algorytmu sortowanie bąbelkowe . . . . . . . . . . . 1337.5. Działanie algorytmu - szybkie sortowanie . . . . . . . . . . . 135

8.1. Reprezentacja grafów za pomocą macierzy sąsiedztwa . . . . 1568.2. Reprezentacja grafu za pomocą listy incydencji . . . . . . . . 1578.3. Reprezentacja grafu za pomocą listy krawędzi . . . . . . . . . 1578.4. Reprezentacja grafu za pomocą macierzy incydencji . . . . . . 1588.5. Kody Gray’a dla n = 5 . . . . . . . . . . . . . . . . . . . . . . 176

Page 210: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

196 WYKAZ TABEL

8.6. Własności podstawowych klas grafów . . . . . . . . . . . . . . 1778.7. Algorytm Kruskala . . . . . . . . . . . . . . . . . . . . . . . . 1828.8. Algorytm Prima . . . . . . . . . . . . . . . . . . . . . . . . . 1838.9. Tabela odległości miast . . . . . . . . . . . . . . . . . . . . . 1838.10. Przykłady kodów . . . . . . . . . . . . . . . . . . . . . . . . . 1858.11. Wynik algorytmu Huffmana . . . . . . . . . . . . . . . . . . . 188

Page 211: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Wykaz rysunków

1.1. Wieża w Hanoi . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2. Eliminacje po pierwszym obiegu okręgu w Problemie

Flawiusza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1. Ilustracja wersji bakaliowej przemienności sumowania. . . . . 262.2. Graficzna ilustracja operacji na indeksach sumy. . . . . . . . . 272.3. Graficzna ilustracja operacji na indeksach sumy. . . . . . . . . 27

3.1. Funkcje ”podłoga” i ”sufit”. . . . . . . . . . . . . . . . . . . . 423.2. Funkcja x. . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.3. Ilustracja x mod y oraz ⌊xy ⌋. . . . . . . . . . . . . . . . . . . . 533.4. Generator LCG(32, 5, 17, 0). Wykres zależności Xn od n. . . . 553.5. Generator LCG(32, 5, 17, 0). Wykres zależności Xn od Xn−1. 55

4.1. Drzewo Sterna-Brocota . . . . . . . . . . . . . . . . . . . . . 70

5.1. Permutacje zbioru a, b, c. . . . . . . . . . . . . . . . . . . . 83

7.1. Twierdzenie Cauchy’ego - Maclaurina. . . . . . . . . . . . . . 1287.2. Zbiory sekwencyjne . . . . . . . . . . . . . . . . . . . . . . . . 1387.3. Zbiory sekwencyjne z 2 indeksami . . . . . . . . . . . . . . . . 1397.4. Lista z 2 indeksami . . . . . . . . . . . . . . . . . . . . . . . . 1407.5. Zbiory indeksowo - sekwencyjne . . . . . . . . . . . . . . . . . 1417.6. Zbiory indeksowe . . . . . . . . . . . . . . . . . . . . . . . . . 1437.7. Zbiory uporządkowane sekwencyjne przeszukiwane blokowo . 1437.8. Zbiory uporządkowane sekwencyjne przeszukiwane binarnie . 1447.9. Tablice mieszające (”hash table”) . . . . . . . . . . . . . . . . 147

8.1. Różne typy grafów . . . . . . . . . . . . . . . . . . . . . . . . 1558.2. Bukiet Bn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1598.3. Dipol Dn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1598.4. Graf kompletny Kn . . . . . . . . . . . . . . . . . . . . . . . . 1598.5. n-ścieżka SCn . . . . . . . . . . . . . . . . . . . . . . . . . . . 1598.6. n - cykl Cn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

Page 212: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

198 WYKAZ RYSUNKÓW

8.7. n-koło Wn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1608.8. Graf dwudzielny G(V1, V2) . . . . . . . . . . . . . . . . . . . . 1608.9. Pełne grafy dwudzielne, trójdzielne ... . . . . . . . . . . . . . 1618.10. Grafy hipersześcienne Qn . . . . . . . . . . . . . . . . . . . . 1618.11. Grafy Kuratowskiego . . . . . . . . . . . . . . . . . . . . . . . 1618.12. Graf Petersena . . . . . . . . . . . . . . . . . . . . . . . . . . 1628.13. Mapa mostów w Królewcu . . . . . . . . . . . . . . . . . . . . 1648.14. Graf mostów Królewca . . . . . . . . . . . . . . . . . . . . . . 1648.15. Droga i cykl Eulera . . . . . . . . . . . . . . . . . . . . . . . . 1658.16. Problemy niemieckiego komiwojażera . . . . . . . . . . . . . . 1668.17. Droga i cykl Hamiltona . . . . . . . . . . . . . . . . . . . . . 1678.18. Izomorfizm grafów . . . . . . . . . . . . . . . . . . . . . . . . 1708.19. Izomorfizm grafów . . . . . . . . . . . . . . . . . . . . . . . . 1718.20. Problem 4 barw na przykładzie mapy USA . . . . . . . . . . 1748.21. Ciąg de Bruijna dla n = 4 . . . . . . . . . . . . . . . . . . . . 1788.22. Graf de Bruijna . . . . . . . . . . . . . . . . . . . . . . . . . . 1788.23. Przykłady zastosowań drzew . . . . . . . . . . . . . . . . . . 1798.24. Przykłady drzew . . . . . . . . . . . . . . . . . . . . . . . . . 1808.25. Algorytm Kruskala . . . . . . . . . . . . . . . . . . . . . . . . 1818.26. Przykłady drzew skierowanych . . . . . . . . . . . . . . . . . 1858.27. Śledzenie algorytmu Huffmana . . . . . . . . . . . . . . . . . 1878.28. Drzewo T (L) . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

Page 213: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Wykaz algorytmów

1.1. Suma S(n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2. Suma S(n) - drugi sposób . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Suma S(n) - trzeci sposób . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1. Sortowanie przez podział i złączanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.2. Obliczanie J3(n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.3. Obliczanie J3(n) - drugi sposób. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .513.4. Konstrukcja rozwinięcia liczby n o podstawie b . . . . . . . . . . . . . . . . . 58

4.1. Algorytm Euklidesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.2. Rozszerzony Algorytm Euklidesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.3. Test dzielników. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.4. Sito Eratostenesa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .684.5. Testowanie liczb pierwszych Mersenne’a . . . . . . . . . . . . . . . . . . . . . . . . 694.6. Zamiana liczby wymiernej na reprezentację Sterna-Brocota . . . . . 724.7. Zamiana liczby niewymiernej na reprezentację Sterna-Brocota . . 724.8. Algorytm RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.1. Algorytm - Proste wstawianie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307.2. Algorytm - Wstawianie połówkowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317.3. Algorytm - Proste wybieranie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1327.4. Algorytm - Sortowanie bąbelkowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1347.5. Algorytm - Sortowanie mieszane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1347.6. Algorytm - Quicksort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1367.7. Tablice haszujące . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

8.1. Algorytm Fleury’ego nalezienia drogi (cyklu) Eulera . . . . . . . . . . . 1668.2. Algorytm Robertsa-Floresa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1698.3. Proty algorytm testowania izomorfizmu . . . . . . . . . . . . . . . . . . . . . . . 1718.4. Algorytm Kruskala znajdowania minimalnego drzewa spinającego

graf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1818.5. Algorytm Prima znajdowania minimalnego drzewa spinającego graf

1828.6. Algorytm Huffmana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Page 214: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i
Page 215: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Wykaz osób

Adleman Leonard Max (1945-) 77Appel Kenneth Ira (1932-) 174-175Bachmann Paul (1837-1920) 126Bezout Etienne (1730-1783) 110Bondy John Adrian 168Brocot Achille (1817-1878) 70Brooks R. L. 174de Bruijn Nicolaas Govert (Dick) (1918-)

178Cauchy Augustin Louis (1789-1857)

99, 127Cayley Arthur (1821-1895) 174Chvatal Vaclav Vasek (1946-) 168Dirac Gabriel Andrew (1925-1984) 167Erdos Paul (1913-1996) 165Eratostenes (Eratostenes z Cyreny)(276

pne-195 pne) 68Euklides (Euklides z Aleksandrii) (oko-

ło 300 pne) 63-64, 106-107Euler Leonhard (1707-1783) 24, 76,

163-165, 172, 177, 179, 191Fermat Pierre de (1601 lub 1607/8-1665)

76Fibonacci Leonardo (Leonardo Pisa-

no Bogollo, Leonardo Bonac-ci) (1170-1250) 55, 101, 103,115, 126

Flawiusz Józef (Josef ben Matatia) (37pne-74 ne) 10, 49

Fleury (Henry?) 166Flores Benito 169Fourier Jean Baptiste Joseph (1768-1830)

189Gallai Tibor (Tibor Grunwald, 1912-1992)

165Gauss Carl Friedrich 68Gray Frank (1954-) 161, 175, 189Guthrie Francis (1831-1899) 174

Hadamard Jacques (1865-1963) 68Haken Wolfgang (1928-) 174-175Hamilton Sir William Rowan (1805-1865)

166, 168, 178, 191Heawood Percy (1861-1955) 174(Hesse (spolszcz.) Hasse Helmut (1898-1979)

190Horner William George (1786-1837)

59Huffman David Albert (1925-1999) 183,

191Iverson Keneth E. (1920-2004) 18Karnaugh Maurice (1924-) 176Kempe Sir Alfred Bray (1849-1922)

174Knuth Donald Ervin (1938- ) 132Kruskal Joseph Bernard, Jr. (1928-)

181Kuratowski Kazimierz (1896-1980) 161,

173Landau Edmund (1877-1938) 127Lehmer Derrick Henry ”Dick” (1905-1991)

54, 69Leibnitz (Leibniz) Gottfried Wilhelm

(1646-1716) 39Linneusz (Linne) Carl von (1707-1778)

189Lucas Edouard (1842-1891) 7, 69MacLaurin Colin (1698-1746) 127Markov Andrey (Andrei) Andreyevich

(1865-1922) 190Mersenne Marin (1588-1648) 69de Morgan Augustus (1806-1871) 174Morse Samuel Finley Breese (1791-1872)

187Newton Sir Isaac (1642/1643-1727) 90,

93, 98Ore Øystein (1899-1968) 167

Page 216: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

202 Wykaz osób

Pascal Blaise (1623-1662) 91Petersen Julius Peter Christian (1839-1910)

161, 173Poussin Vallee (1866-1962) 68Prim Robert Clay (1921-) 182Rivest Ronald Linn (1947-) 77Roberts S. M. 168Robertson Neil 175Sanders Daniel P. 175Seymour Paul D. (1950-) 175Shamir Adi (1952-) 77Stern Moritz Abraham (1807-1894) 70Stirling James (1692-1770) 87, 129Taylor Brook (1685-1731) 111-112Thomas Robin 175

Page 217: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Indeks

alfabet 183, 187alfabet Morse’a 187

algorytm 63-64, 76, 106-107, 131, 181-183,188-189, 191

algorytmEuklidesa 63-64, 106-107algorytmHuffmana 183, 188, 191algorytm Kruskala 181algorytm Prima 182algorytm RSA 76algorytmy sortowania - wstawia-nie połówkowe 131

algorytmy sortowania - wybiera-nie 131

algorytm szybkiej transformacjiFouriera 189

bijekcja 169cechy podzielności liczb 73, 76ciąg 6, 100-101, 103, 115, 126, 164,

178ciąg arytmetyczny 6ciąg de Bruijna 178ciąg Fibonacciego 100-101, 103,115, 126

ciąg geometryczny 6ciąg graficzny 164

cykl 154, 163, 166, 168, 177, 179, 191cykl Eulera 163, 177, 179, 191cykl Hamiltona 166, 168, 178, 191

definicja rekurencyjna 16dekodowanie 79diagramy Hessa 190doświadczenie losowe 120dodawanie rekordów 138dokładny dzielnik 62dolna silnia 33dominanta 121droga grafu 154-155, 163, 166-168, 177-178,

191

droga Eulera 163, 177, 191droga Hamiltona 166, 168, 178,191

droga prosta grafu 155droga zamknięta grafu 155

drzewo 70, 180, 184, 188drzewo r-narne 188drzewo skierowane 184drzewo spinające graf 180drzewo Sterna-Brocota 70

dwumian Newtona 93, 98entropia 184exchange sort 133faktoryzacja liczb całkowitych 66funkcja 42-43, 76, 78-79, 97, 111, 146,

149-150funkcja φ Eulera 76funkcja część całkowita 43funkcja dekodująca 78-79funkcja kodująca 78-79funkcja mieszająca 146funkcja mieszająca - środek kwa-dratu 150

funkcja mieszająca - reszta z dzie-lenia 149

funkcja mieszająca - składanie brze-gami 150

funkcja mieszająca - składanie zprzesuwaniem 150

funkcja mieszająca - wycinanie 150funkcja mieszająca - zamiana pod-stawy 150

funkcja ”podłoga” 42funkcja ”sufit” 42funkcja tworząca 97funkcja wymierna 111

generatory liczb pseudolosowych 54-55generator Fibonacciego 55

Page 218: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

204 Indeks

generator liniowy Lehmera 54generator multyplikatywny 55

graf 154-155, 161-162, 164-166, 168,171, 173, 177, 180-181

graf acykliczny 155, 180graf dualny 173graf dwudzielny 168graf Eulera (eulerowski) 164, 177graf hamiltonowski 166graf Kuratowskiego 161graf nieskierowany 154graf Petersena 161, 173graf planarny 171graf prosty 155, 180graf regularny 165graf ściągalny 173graf skierowany 154graf spójny 162graf z wagami 181

hash table 145-146hash table - metoda łańcuchowa146

hash table - metoda otwarta 146homeomorfizm grafów 173indeks chromatyczny grafu 173indukcja matematyczna 2indykator zdarzenia 121insertion sort 129izomorfizm grafów 169klasyfikacja Linneusza 189klucz prywatny 77-79klucz publiczny 77-79kod migawkowy 183kodowanie 77-79kody Gray’a 161, 175, 189kolorowanie grafów planarnych 174kolorowanie grafów 173kolorowanie map 174kombinacje 84-85kombinacje bez powtórzeń 84kombinacje z powtórzeniami 85

kongruencja 73konwencja Iversona 18, 25, 42korzeń drzewa 184krawędzie wielokrotne grafu 154kryptografia 54, 76las 180, 182

las spinający graf 182liść drzewa 180liczba chromatyczna grafu 173liczba harmoniczna 21, 23, 101, 126liczba Mersenne’a 69liczba pierwsza 62, 65, 68liczba podziałów zbioru 86liczba Stirlinga I rodzaju 87liczba Stirlinga II rodzaju 87lista 139mediana 121metody rozwiązywania rekurencji 11-12,

15, 20, 31, 101metoda czynnika sumacyjnego 20metoda funkcji tworzących 101metoda repertuaru 11-12, 15, 31

metody obliczania sum 29, 32metody różnicowe 32metody zaburzania 29

metody Monte Carlo 54miejsce zerowe wielomianu 110minimalne drzewo spinające graf 181modulnik 52modyfikacja rekordów 138najmniejsza wspólna wielokrotność 62największy wspólny dzielnik liczb 62największy wspólny dzielnik wielomia-

nów 107najwyższy współczynnik wielomianu

106nieuporządkowane zbiory sekwencyj-

ne 138niezależne zmienne losowe 123numeryczne obliczanie całek 54odchylenie standardowe 122odszyfrowywanie 79operator mod 50, 52operator przesunięcia 38operator różnicowy 32permutacje 22, 83-84permutacje bez powtórzeń 83permutacje z powtórzeniami 84

pętla w grafie 155podstawowe twierdzenie arytmetyki 65-66podziały liczby na składniki 88prawdopodobieństwo dyskretne 120prawdopodobieństwo waruunkowe 124

Page 219: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

Indeks 205

prawa operacji na sumach 22prawo addytywności sumowania22

prawo łączenia zbiorów indeksówsumowania 22

prawo jednorodności sumowania22

prawo przemienności sumowania22

prawo składania sum (telescoping)22

problemy 7, 9-10, 103, 163, 166, 190-191”problem cyfr” 7problem Fibonacciego 103problem Flawiusza 10problem kolorowania grafów 191problem kolorowania map 191problem komiwojażera 166, 190problem mostów w Królewcu 163problem pizzy 9

proces Markowa 190przestrzeń zdarzeń elementarnych 120quicksort 21, 135równanie rekurencyjne 6różnicowanie iloczynu fukcji 38różnicowanie ilorazu funkcji 38różniczka (pochodna) 32różniczkowanie iloczynu funkcji 38różniczkowanie ilorazu funkcji 38rdzeń (korzeń) drzewa 184redundancja 183rekurencja Flawiusza 49rekurencja liniowa jednorodna rzędu

drugiego 117rozkład jednostajny 122rozkład prawdopodobieństwa 120rozspójnienie grafu 162rozwiązanie równania rekurencyjnego

6schemat Hornera 59sekwencyjne zbiory uporządkowane prze-

sukiwane binarnie 144sekwencyjne zbiory uporządkowane prze-

sukiwane blokowo 143selection sort 131silnia 6sito Eratostenesa 67-68

sortowanie 129, 133-134, 189sortowanie bąbelkowe 133sortowanie mieszane 134sortowanie przez ”kopcowanie” 189sortowanie przez wstawianie 129sortowanie przez zamianę 133

spójność krawędziowa grafu 162spójność wierzchołkowa grafu 162splot 98stała Eulera 24stopień wielomianu 106symbol Newtona 90-91, 93-94symbolu Newtona inne pochła-nianie 93

symbolu Newtona negowanie gór-nego indeksu 91

symbolu Newtona pochłanianie 91symbolu Newtona reguła doda-wania 91

symbolu Newtona reguła odwra-cania 94

symbolu Newtona reguła podwa-jania 93

symbolu Newtona symetria 91symulacje 54szybkie sortowanie ”quicksort” 21, 135szyfrowanie 79ściana grafu 171ściana wewnętrzna grafu 171ściana zewnętrzna grafu 171

średnia długość słowa kodowego 183średnia geometryczna 122średnia harmoniczna 122tablica Karnaugha 176tablice mieszające 145teoria komunikacji 183test dzielniów 67test Lucasa-Lehmera 69testowanie izomorfizmu grafów 171tożsamość Cauchy’ego 99trójkąt Pascala 90-91twierdzenie 39, 76, 127, 164-165, 167-168,

172-174twierdzenie Appela-Hakena 175twierdzenie Bondy-Chvatala 168twierdzenie Brooks’a 174

Page 220: MatematykaDyskretna - Lublinakrajka/MD/MDyskretna.pdf · takie przedmioty jak podstawy rachunku prawdopodobieństwa, wstęp do logiki i teorii mnogości czy też elementy logiki i

206 Indeks

twierdzenie Cauchy’ego-Maclaurina127

twierdzenie Diraca 167twierdzenie Erdos-Gallai 165twierdzenie Eulera 76, 164-165,172

twierdzenie Fermata 76twierdzenie Kuratowskiego 173twierdzenie Leibnitza dla opera-tora różnicowego 39

twierdzenie Leibnitza dla pochod-nych 39

twierdzenie Ore 167układ liczenia o podstawie p 56-60ułamek prosty 111ułamki łańcuchowe 103usuwanie rekordów 138waga grafu 181wariacje 85wariacje bez powtórzeń 85wariacje z powtórzeniami 85wariancja 122

wartość oczekiwana 122wersja bakaliowa przemienności sumo-

wania 25wersja waniliowa przemienności sumo-

wania 25widmo liczby 46wieża z Hanoi 7wielomian moniczny (unormowany) 109wielomian pierwszy 109wielomian złożony 109wielomiany względnie pierwsze 108wierzchołek osiągalny 162wyszukiwanie rekordów 138względnie pierwsze liczby 68wzór na prawdopodobieństwo całko-

wite 124wzór na różnicowanie przez części 39wzór Stirlinga 129wzór Taylora 111-112zasadnicze twierdzenie algebry 109zbiór przeliczalny 120zbiory indeksowe 142zbiory indeksowo-sekwencyjne 140zdarzenia elementarne 120zmienna losowa 121