Matematyka dyskretna
Andrzej Szepietowski
Matematyka dyskretna
Wydawnictwo Uniwersytetu Gdańskiego Gdańsk 2018
Redakcja wydawnicza Dorota Zgai´nska
Projekt okładki i stron tytułowych Gabriela Gic-Grusza
Skład i łamanie Marcin Babnis
Wydanie drugie poprawione
Copyright by Uniwersytet Gda´nskic Wydawnictwo Uniwersytetu Gda´nskiego ISBN 978-83-7865-747-7
Wydawnictwo Uniwersytetu Gda´nskiego ul. Armii Krajowej 119/121, 81-824 Sopot tel./fax 58 523 11 37, tel. 725 991 206 e-mail: wydawnictwo@ug.edu.pl www.wyd.ug.edu.pl
Ksi˛egarnia internetowa: www.kiw.ug.edu.pl
Spis tre´sci
Przedmowa 13
1 Podstawowe poj˛ecia, oznaczenia 15
1.1 Sumy . . . . 15
1.2 Iloczyny . . . . 16
1.3 Zbiory . . . . 17
1.4 Ró˙znica symetryczna zbiorów . . . . 18
1.5 Iloczyn kartezja´nski . . . . 19
1.6 Rodzina zbiorów . . . . 20
1.7 Grafy (nieskierowane) . . . . 21
1.8 Drzewa . . . . 23
1.9 Drzewa ukorzenione . . . . 24
1.10 Grafy skierowane . . . . 25
1.11 Słowa . . . . 25
1.12 Zaokr ˛aglenia . . . . 27
1.13 Przedrostki . . . . 27
1.14 Notacja asymptotyczna . . . . 28
1.15 Wielomiany . . . . 30
1.15.1 Dzielenie wielomianów . . . . 31
1.15.2 Schemat Horna . . . . 32
1.15.3 Pierwiastki wielomianu . . . . 33
1.16 Zadania . . . . 33
2 Arytmetyka 37 2.1 System dziesi˛etny . . . . 37
2.2 System dwójkowy . . . . 38
2.3 Zwi˛ekszanie liczby o jeden . . . . 39
2.4 Porównywanie liczb . . . . 40
2.5 Operacje arytmetyczne w systemie dwójkowym . . . . 40
2.6 Zamiana systemu . . . . 41
2.7 Długo´s´c liczby . . . . 43
2.8 Du˙ze liczby . . . . 44
2.9 Ułamki . . . . 44
2.10 System szesnastkowy . . . . 45
2.11 Reprezentacja liczb w komputerze . . . . 46
2.11.1 Integer . . . . 47
2.11.2 Real . . . . 48
2.12 Wyra˙zenia arytmetyczne w j˛ezyku Pascal . . . . 48
2.13 Poszukiwania binarne (binary search) . . . . 49
2.13.1 Poszukiwanie pierwiastka . . . . 50
2.14 Zadania . . . . 51
2.15 Problemy . . . . 52
2.15.1 Uzupełnieniowy zapis liczb ujemnych . . . . 52
2.15.2 Liczby w postaci ósemkowej i szesnastkowej w j˛ezyku C . . . . . 52
2.15.3 Sumy pot˛eg dwójki . . . . 52
2.15.4 Waga . . . . 52
3 Kombinatoryka 55 3.1 Zasada podwójnego zliczania . . . . 55
3.2 Ci ˛agi . . . . 56
3.3 Funkcje . . . . 57
3.4 Ci ˛agi bez powtórze´n . . . . 57
3.5 Permutacje . . . . 58
3.6 Podzbiory . . . . 60
3.7 Podzbioryk-elementowe . . . . 61
3.8 Dwumian Newtona . . . . 63
3.9 Zasada szufladkowa Dirichleta . . . . 64
3.10 Zasada sumy . . . . 64
3.11 Zasada wł ˛aczania i wył ˛aczania . . . . 65
3.12 Przestawienia . . . . 68
3.13 Generowanie obiektów kombinatorycznych . . . . 69
3.13.1 Generowanie podzbiorów . . . . 69
3.13.2 Generowaniek-elementowych podzbiorów . . . . 70
3.13.3 Generowanie permutacji . . . . 71
3.14 Zadania . . . . 71
3.15 Problemy . . . . 74
3.15.1 Najkrótsze drogi . . . . 74
3.15.2 Rozmieszczanie przedmiotów w pudełkach. . . . 75
3.15.3 Wybórn przedmiotów k rozró˙znialnych typów . . . . 75
3.15.4 Kombinacje z powtórzeniami . . . . 76
3.15.5 Permutacje z powtórzeniami . . . . 76
3.15.6 Podziały uporz ˛adkowane . . . . 76
3.15.7 Permutacje bez punktów stałych . . . . 77
3.15.8 Liczba surjekcji . . . . 77
3.15.9 Twierdzenie Ramseya . . . . 77
3.15.10 Twierdzenie Halla o ró˙znych reprezentantach . . . . 78
4 Rachunek prawdopodobie ´nstwa 81 4.1 Przestrze´n zdarze´n elementarnych . . . . 81
4.1.1 Zdarzenia . . . . 81
4.1.2 Dalsze przykłady przestrzeni zdarze´n elementarnych . . . . 82
4.2 Prawdopodobie´nstwo . . . . 83
4.2.1 Klasyczna definicja prawdopodobie´nstwa, rozkład jednostajny . . 84
4.2.2 Własno´sci prawdopodobie´nstwa . . . . 84
Spis tre´sci 7
4.3 Prawdopodobie´nstwo warunkowe . . . . 85
4.4 Zdarzenia niezale˙zne . . . . 86
4.5 Prawdopodobie´nstwo całkowite . . . . 87
4.6 Schemat dwumianowy (Bernoulliego) . . . . 89
4.6.1 Rzut symetryczn ˛a monet ˛a . . . . 89
4.6.2 Kolorowanie wierzchołków grafu . . . . 90
4.6.3 Trzykrotny rzut niesymetryczn ˛a monet ˛a . . . . 91
4.6.4 Ogólny schemat –n-krotny rzut niesymetryczn ˛a monet ˛a . . . . . 92
4.7 Zmienna losowa . . . . 93
4.7.1 G˛esto´s´c rozkładu prawdopodobie´nstwa zmiennej losowej . . . . . 93
4.7.2 Dalsze przykłady zmiennych losowych . . . . 94
4.7.3 Rozkład jednopunktowy . . . . 95
4.7.4 Rozkład zero-jedynkowy . . . . 95
4.8 Ł ˛aczny rozkład prawdopodobie´nstwa . . . . 95
4.8.1 G˛esto´s´c ł ˛acznego rozkładu . . . . 96
4.9 Niezale˙zno´s´c zmiennych losowych . . . . 97
4.9.1 Własno´s´c niezale˙znych zmiennych losowych . . . . 98
4.10 Rozkład dwumianowy (Bernoulliego) . . . . 99
4.11 Warto´s´c oczekiwana, ´srednia . . . 100
4.11.1 Własno´sci warto´sci oczekiwanej . . . 100
4.11.2 Warto´s´c oczekiwana rozkładu jednopunktowego . . . 101
4.11.3 Warto´s´c oczekiwana rozkładu zero-jedynkowego . . . 102
4.11.4 Warto´s´c oczekiwana rozkładu dwumianowego . . . 102
4.11.5 Warto´s´c oczekiwana liczby ró˙znokolorowych kraw˛edzi . . . 102
4.11.6 Własno´sci warto´sci oczekiwanej, cd. . . 103
4.12 Nierówno´s´c Markowa . . . 103
4.13 Wariancja . . . 104
4.13.1 Wariancja rozkładu jednopunktowego . . . 105
4.13.2 Wariancja rozkładu zero-jedynkowego . . . 105
4.13.3 Wariancja rozkładu dwumianowego . . . 105
4.13.4 Wariancja liczby ró˙znokolorowych kraw˛edzi . . . 105
4.14 Nierówno´s´c Czebyszewa . . . 106
4.15 Kra´nce rozkładu dwumianowego . . . 107
4.16 Problem dnia urodzin . . . 107
4.17 Algorytmy probabilistyczne . . . 108
4.17.1 Algorytm z jednostronnym bł˛edem . . . 108
4.17.2 Algorytm sprawdzaj ˛acy mno˙zenie wielomianów . . . 108
4.17.3 Algorytmy z bł˛edem obustronnym . . . 109
4.17.4 Algorytm kolorowania wierzchołków grafu . . . 109
4.18 Zadania . . . 110
4.19 Problemy . . . 114
4.19.1 Niezale˙zno´s´c zmiennych losowych . . . 114
5 Funkcje boolowskie 115
5.1 Algebra Boole’a . . . 115
5.1.1 Algebra podzbiorów . . . 117
5.1.2 Alternatywa wykluczaj ˛aca, xor . . . 117
5.2 Wyra˙zenia boolowskie . . . 118
5.2.1 Wyra˙zenia boolowskie w j˛ezyku Pascal . . . 119
5.3 Funkcje boolowskie . . . 120
5.3.1 Funkcje boolowskie jednej zmiennej . . . 120
5.3.2 Funkcje boolowskie dwóch zmiennych . . . 121
5.3.3 Alternatywa i koniunkcjan zmiennych . . . 122
5.3.4 Funkcja progowa . . . 122
5.3.5 Postacie normalne funkcji boolowskich . . . 123
5.4 Wielowarto´sciowe funkcje boolowskie . . . 124
5.5 Sieci boolowskie . . . 125
5.5.1 Sie´c dla alternatywy kilku zmiennych . . . 126
5.5.2 Sumator . . . 127
5.6 Operacje boolowskie na wektorach . . . 128
5.6.1 Reprezentacja zbioru . . . 129
5.6.2 Operacje na wektorach w j˛ezyku Pascal . . . 130
5.6.3 Operacje na wektorach w j˛ezyku C . . . 130
5.6.4 Flagi . . . 131
5.6.5 Reprezentacja ustawienia bierek w grze w szachy . . . 131
5.6.6 Szyfrowanie w systemie one-pad . . . 131
5.7 Funkcja parzysto´sci (parity) . . . 133
5.8 Odciski, zabezpieczanie danych . . . 134
5.9 Zadania . . . 136
5.10 Problemy . . . 137
5.10.1 Gra w kamienie . . . 137
5.10.2 To˙zsamo´sci w algebrze podzbiorów . . . 137
5.10.3 Sieci funkcji progowych i sortuj ˛acych . . . 138
5.10.4 Wspólne losowanie bitów . . . 138
6 Teoria liczb 139 6.1 Dzielenie całkowitoliczbowe . . . 139
6.2 Podzielno´s´c liczb . . . 140
6.3 Relacja kongruencji . . . 141
6.4 Klasy abstrakcji . . . 142
6.5 Pier´scie´n Zm . . . 143
6.5.1 Pier´scie´n Z5 . . . 144
6.5.2 Pier´scie´n Z4 . . . 145
6.6 Najwi˛ekszy wspólny dzielnik . . . 145
6.7 Algorytm Euklidesa . . . 146
6.7.1 Rozszerzony algorytm Euklidesa . . . 147
6.8 Liczby pierwsze i wzgl˛ednie pierwsze . . . 149
6.9 Rozkład liczb na czynniki pierwsze . . . 149
6.10 Elementy odwracalne . . . 151
6.11 Funkcja liniowa . . . 152
Spis tre´sci 9
6.12 Szyfry liniowe . . . 154
6.13 Chi´nskie twierdzenie o resztach . . . 156
6.14 Obliczenia na du˙zych liczbach . . . 159
6.15 Szybkie pot˛egowanie . . . 161
6.16 Pierwiastki kwadratowe . . . 163
6.17 Funkcja Eulera . . . 164
6.18 Małe twierdzenie Fermata . . . 164
6.19 Szyfry RSA . . . 165
6.20 Testy pierwszo´sci . . . 166
6.20.1 Test naiwny . . . 166
6.20.2 Test Fermata . . . 166
6.20.3 Test Millera-Rabina . . . 167
6.20.4 Losowanie liczb pierwszych . . . 169
6.21 Zadania . . . 169
6.22 Problemy . . . 171
6.22.1 Najwi˛ekszy wspólny dzielnik . . . 171
6.22.2 Najmniejsza wspólna wielokrotno´s´c . . . 172
6.22.3 Liczby wzgl˛ednie pierwsze . . . 172
6.22.4 Liczby pierwsze . . . 172
6.22.5 Chi´nskie twierdzenie o resztach . . . 172
6.22.6 System szyfrowania one-pad . . . 172
6.22.7 Przestrze´n liniowa . . . 173
6.22.8 Uogólnienie małego twierdzenia Fermata . . . 173
6.22.9 Algorytm Euklidesa dla wielomianów . . . 173
6.22.10 Wspólne losowanie liczby, gra w marynarza . . . 173
7 Stosy, kolejki i drzewa 175 7.1 Listy . . . 175
7.2 Stosy i kolejki . . . 175
7.3 Implementacja stosu . . . 176
7.4 Implementacja kolejki . . . 177
7.5 Drzewa ukorzenione . . . 178
7.6 Drzewa binarne . . . 178
7.7 Drzewa wyra˙ze´n arytmetycznych . . . 179
7.8 Przeszukiwanie drzew binarnych . . . 182
7.8.1 Przeszukiwanie drzewa w gł ˛ab . . . 182
7.8.2 Przeszukiwanie drzewa wszerz . . . 183
7.9 Drzewa decyzyjne . . . 184
7.10 Drzewo gry . . . 185
7.10.1 Algorytm waluacji drzewa gry . . . 187
7.11 Zadania . . . 189
7.12 Problemy . . . 189
7.12.1 Szukanie fałszywej monety . . . 189
8 Rekurencja 191
8.1 Wie˙ze Hanoi . . . 191
8.2 Drzewo rekursji . . . 192
8.3 Algorytm Euklidesa, wersja rekurencyjna . . . 193
8.3.1 Rekurencyjne algorytmy przeszukiwania drzew . . . 194
8.4 Drzewa poszukiwa´n binarnych . . . 195
8.5 Funkcje rekurencyjne . . . 197
8.6 Funkcja (ci ˛ag) Fibonacciego . . . 197
8.7 Algorytm sortowania przez scalanie . . . 198
8.8 Rozwi ˛azywanie równa´n i nierówno´sci rekurencyjnych . . . 199
8.9 Metoda podstawiania . . . 199
8.10 Metoda iteracyjna . . . 201
8.11 Metoda rekurencji uniwersalnej . . . 202
8.12 Funkcje tworz ˛ace . . . 203
8.13 Zadania . . . 204
8.14 Problemy . . . 207
8.14.1 Wie˙ze Hanoi . . . 207
9 Grafy (nieskierowane) 209 9.1 Izomorfizm grafów . . . 210
9.2 Drogi i cykle . . . 211
9.3 Drzewa . . . 212
9.4 Przeszukiwanie grafów w gł ˛ab . . . 214
9.5 Algorytm przeszukiwania grafu wszerz . . . 215
9.6 Liczenie składowych spójno´sci . . . 216
9.7 Drzewa spinaj ˛ace . . . 216
9.8 Fundamentalny zbiór cykli . . . 218
9.9 Minimalne drzewo spinaj ˛ace . . . 220
9.10 Cykle i drogi Eulera . . . 221
9.11 Drogi i cykle Hamiltona . . . 224
9.12 Kolorowanie grafów . . . 225
9.12.1 Kolorowanie z nawrotami . . . 225
9.12.2 Kolorowanie grafu dwoma kolorami . . . 227
9.12.3 Heurystyki kolorowania grafów . . . 228
9.13 Hiperkostka . . . 228
9.13.1 Rozgłaszanie wiadomo´sci . . . 230
9.13.2 Zbieranie informacji . . . 231
9.13.3 Plotkowanie . . . 231
9.14 Zadania . . . 231
9.15 Problemy . . . 233
9.15.1 Drzewa spinaj ˛ace . . . 233
9.15.2 Skojarzenia . . . 234
9.15.3 Minimalne drzewo spinaj ˛ace . . . 234
9.15.4 Cykle Eulera . . . 234
Spis tre´sci 11
10 Grafy skierowane 237
10.1 Podstawowe definicje . . . 237
10.2 Najkrótsze drogi w grafie . . . 238
10.3 II etap . . . 239
10.4 Algorytm Forda-Bellmana . . . 239
10.5 Dodatnie długo´sci, algorytm Dijkstry . . . 241
10.6 Najkrótsza droga w grafach acyklicznych . . . 243
10.7 Zadania . . . 245
10.8 Problemy . . . 245
10.8.1 Spójno´s´c . . . 245
10.8.2 Cykl Eulera w grafie skierowanym . . . 246
10.8.3 Ci ˛ag de Bruijna . . . 246
Bibliografia 247
Skorowidz 248
Przedmowa
Jest to kolejne, poprawione, wydanie podr˛ecznika z matematyki dyskretnej. Jest on prze- znaczony dla studentów pierwszego roku kierunku informatyki i zawiera materiał rocz- nego wykładu z matematyki dyskretnej, prowadzonego przeze mnie na Uniwersytecie Gda´nskim. S ˛adz˛e, ˙ze zawarty materiał mo˙ze by´c pomocny tak˙ze dla studentów innych kierunków.
Głównym celem wykładu jest przygotowanie słuchaczy do dalszego studiowania in- formatyki, a w szczególno´sci do nauki projektowania algorytmów. Podr˛ecznik zawiera podstawowe wiadomo´sci z tak zwanej matematyki dyskretnej, czyli z arytmetyki, kom- binatoryki, funkcji logicznych i teorii liczb. Zawiera tak˙ze wiele przykładów algorytmów oraz zada´n algorytmicznych do samodzielnego rozwi ˛azania.
Nie wymaga si˛e od czytelnika specjalnego przygotowania, poza znajomo´sci ˛a mate- matyki na poziomie szkoły ´sredniej.
Gda´nsk, 10 wrze´snia 2018 Andrzej Szepietowski
Rozdział 1
Podstawowe poj˛ecia, oznaczenia
1.1 Sumy
Maj ˛ac dany sko´nczony ci ˛ag liczba1,a2,. . . , ak, sum˛e jego elementów zapisujemy jako
k
X
i=1
ai.
Niezbyt formalnie mo˙zemy to zapisa´c
k
X
i=1
ai= a1+ a2+· · · + ak.
Jako przykład zastosujmy symbol sumy do zapisu wzoru na sum˛e ci ˛agu arytmetycznego
k
X
i=1
i = 1 + 2 +· · · + k = (k + 1)k
2 (1.1)
oraz wzoru na sum˛e ci ˛agu geometrycznego
k
X
i=0
xi= 1 + x + x2+· · · + xk= xk+1− 1
x− 1 (1.2)
(wzór (1.2) jest słuszny dla ka˙zdegox6= 1).
B˛edziemy te˙z u˙zywa´c zapisu typu X
1≤i≤6
ai= a1+ a2+ a3+ a4+ a5+ a6.
W tym przypadku zbiór indeksów okre´slony jest za pomoc ˛a warunku pod znakiem sumy.
Warunek okre´slaj ˛acy indeksy, po których nale˙zy sumowa´c, mo˙ze by´c bardziej skompli- kowany, na przykład
X
1≤i≤6 iparzyste
ai= a2+ a4+ a6.
Stosowa´c b˛edziemy tak˙ze zapis
X
i∈I
ai,
oznaczaj ˛acy sum˛e tych elementów ai, których indeksy nale˙z ˛a do sko´nczonego zbioru indeksówI. Na przykład je˙zeli I ={1, 3, 5, 7}, to
X
i∈I
ai= a1+ a3+ a5+ a7.
Mo˙zemy te˙z sumowa´c ci ˛agi, których elementy zale˙z ˛a od dwóch indeksów, X
1≤i≤3 2≤j≤3
aij = X
1≤i≤3
X
2≤j≤3
aij= a12+ a13+ a22+ a23+ a32+ a33.
Korzystaj ˛ac ze znanych własno´sci działa´n arytmetycznych oraz z indukcji matematycz- nej, łatwo mo˙zna udowodni´c nast˛epuj ˛ace wzory
a· X
1≤i≤n
ai = X
1≤i≤n
a· ai, (1.3)
X
1≤i≤n
(ai+ bi) = X
1≤i≤n
ai+ X
1≤i≤n
bi, (1.4)
X
1≤i≤m
ai
·
X
1≤j≤n
bj
= X
1≤i≤m 1≤j≤n
aibj, (1.5)
X
1≤i≤m
ai
2
= X
1≤i≤m
a2i + X
1≤i<j≤m
2aiaj. (1.6)
1.2 Iloczyny
Aby zapisa´c iloczyn elementów ci ˛agua1,a2,. . . , ak, stosujemy zapis
k
Y
i=1
ai.
Znów niezbyt formalnie mo˙zemy to zapisa´c jako
k
Y
i=1
ai= a1· a2· . . . · ak.
1.3. Zbiory 17
1.3 Zbiory
∅ oznacza zbiór pusty, który nie zawiera ˙zadnych elementów.
Noznacza zbiór liczb naturalnych, N={0, 1, 2, 3, . . .}.
Zoznacza zbiór liczb całkowitych.
Qoznacza zbiór liczb wymiernych.
Roznacza zbiór liczb rzeczywistych.
a∈ A oznacza, ˙ze element a nale˙zy do zbioru A, a /∈ A – ˙ze element a nie nale˙zy do zbioruA. Najprostszy sposób zdefiniowania zbioru polega na wypisaniu jego elementów w nawiasach klamrowych. Na przykład zbiór {1, 2, 3} zawiera elementy 1, 2, 3. Inny sposób definiowania zbioru polega na podaniu własno´sci, któr ˛a spełniaj ˛a elementy zbioru.
Na przykład{x | x ∈ N, 3 < x < 7} oznacza zbiór liczb naturalnych wi˛ekszych od 3 i mniejszych od 7.
|A| oznacza moc zbioru A, czyli liczb˛e jego elementów,
|{3, 6, 9}| = 3, |∅| = 0.
A∪ B oznacza sum˛e zbiorów, czyli zbiór zawieraj ˛acy elementy, które nale˙z ˛a do A lub doB,
A∪ B = {x : x ∈ A lub x ∈ B}.
Zatem sumaA∪ B zawiera wszystkie elementy zbioru A i wszystkie elementy zbioru B.
A∩ B oznacza iloczyn lub przekrój zbiorów, czyli zbiór zawieraj ˛acy elementy, które nale˙z ˛a do obu zbiorów naraz,
A∩ B = {x : x ∈ A i x ∈ B}.
A− B oznacza ró˙znic˛e zbiorów, czyli zbiór zawieraj ˛acy elementy, które nale˙z ˛a do A i nie nale˙z ˛a doB,
A− B = {x : x ∈ A i x /∈ B}.
Przykład 1.1 DlaA ={1, 2, 4} i B = {1, 4, 6} mamy
A∪ B = {1, 2, 4, 6}, A∩ B = {1, 4}, A− B = {2}.
A⊆ B oznacza, ˙ze zbiór A zawiera si˛e w zbiorze B, to znaczy wszystkie elementy zbioru A nale˙z ˛a do zbioruB,
{2, 1} ⊆ {1, 2, 3}.
Dwa zbiory s ˛a równe, je˙zeli zawieraj ˛a te same elementy, lub inaczejA = B wtedy i tylko wtedy, gdyA⊆ B i B ⊆ A,
{1, 4, 2, 3} = {4, 1, 3, 2}.
Jak wida´c, kolejno´s´c elementów w zapisie zbioru nie ma znaczenia. I tak na przykład {1, 2} = {2, 1}. Taki zbiór dwuelementowy nazywamy par ˛a nieuporz ˛adkowan ˛a.
W poni˙zszym lemacie zebrano podstawowe własno´sci operacji sumy oraz iloczynu zbiorów.
Lemat 1.2 • A ∪ B = B ∪ A (przemienno´s´c sumy).
• A ∩ B = B ∩ A (przemienno´s´c iloczynu).
• A ∪ (B ∪ C) = (A ∪ B) ∪ C (ł ˛aczno´s´c sumy).
• (A ∩ B) ∩ C = A ∩ (B ∩ C) (ł ˛aczno´s´c iloczynu).
• (A ∪ B) ∩ C = A ∩ C ∪ B ∩ C (rozdzielno´s´c sumy wzgl˛edem iloczynu).
• (A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C) (rozdzielno´s´c iloczynu wzgl˛edem sumy).
• A ∪ ∅ = A, A∩ ∅ = ∅, A∪ A = A, A∩ A = A.
Dowód.Udowodnimy tylko rozdzielno´s´c sumy wzgl˛edem iloczynu. W tym celu poka˙ze- my dwa zawierania:(A∪ B) ∩ C ⊂ A ∩ C ∪ B ∩ C oraz A ∩ C ∪ B ∩ C ⊂ (A ∪ B) ∩ C.
Aby udowodni´c zawieranie(A∪ B) ∩ C ⊂ A ∩ C ∪ B ∩ C, we´zmy dowolny element x∈ (A ∪ B) ∩ C; wtedy x ∈ A ∪ B oraz x ∈ C, a to oznacza, ˙ze x nale˙zy do C i do jednego ze zbiorówA lub B (lub do obu), czyli nale˙zy do A∩ C lub do B ∩ C, a wi˛ec x∈ A ∩ C ∪ B ∩ C. Pokazali´smy wi˛ec, ˙ze dowolny element z (A ∪ B) ∩ C nale˙zy do A∩ C ∪ B ∩ C.
Aby udowodni´c zawieranieA∩ C ∪ B ∩ C ⊂ (A ∪ B) ∩ C, we´zmy dowolny element x∈ A ∩ C ∪ B ∩ C; wtedy x ∈ A ∩ C lub x ∈ B ∩ C, a to oznacza, ˙ze x nale˙zy do C i do jednego ze zbiorówA lub B (lub do obu), czyli nale˙zy do A∪ B oraz do C, a wi˛ec x∈ (A ∪ B) ∩ C. Pokazali´smy wi˛ec, ˙ze dowolny element z A ∩ C ∪ B ∩ C nale˙zy do
(A∪ B) ∩ C. ✷
1.4 Ró˙znica symetryczna zbiorów
A⊕ B oznacza ró˙znic˛e symetryczn ˛a zbiorów, która zawiera elementy nale˙z ˛ace tylko do jednego z dwóch zbiorów
A⊕ B = (A − B) ∪ (B − A).
Przykład 1.3
{1, 2, 4} ⊕ {1, 4, 6} = {2, 6}.
W poni˙zszym lemacie zebrano podstawowe własno´sci ró˙znicy symetrycznej zbiorów.
Lemat 1.4 • A ⊕ B = B ⊕ A (przemienno´s´c).
• (A ⊕ B) ⊕ C = A ⊕ (B ⊕ C) (ł ˛aczno´s´c).
• (A ⊕ B) ∩ C = A ∩ C ⊕ B ∩ C (rozdzielno´s´c wzgl˛edem iloczynu).
• A ⊕ ∅ = A, A⊕ A = ∅.
• Je˙zeli A ⊕ B = ∅, to A = B.
Dowód.Udowodnimy, tylko dwie to˙zsamo´sci, dowód pozostałych pozostawiamy czytel- nikowi jako ´cwiczenie.
Aby pokaza´c, ˙ze ró˙znica symetryczna jest ł ˛aczna, wystarczy zauwa˙zy´c, ˙ze zbiórA⊕ (B⊕C) lub (A⊕B)⊕C zawiera te elementy, które nale˙z ˛ado nieparzystej liczby zbiorów, czyli te, które nale˙z ˛a tylko doA, B lub C, plus te, które nale˙z ˛a do przekrojuA∩ B ∩ C.
1.5. Iloczyn kartezja´nski 19
Udowodnimy teraz ostatni ˛a implikacj˛e. Je˙zeliA⊕ B = ∅, to
A = A⊕ ∅ = A ⊕ (A ⊕ B) = (A ⊕ A) ⊕ B = ∅ ⊕ B = B.
✷
Twierdzenie 1.5 Ró˙znica symetrycznan zbiorów A1⊕ A2⊕ . . . ⊕ An
zawiera elementy, które nale˙z ˛a do nieparzystej liczby spo´sród zbiorówA1,A2, . . . , An. Dowód przez indukcj˛e ze wzgl˛edu nan. Twierdzenie jest oczywiste dla n = 1 lub n = 2. Załó˙zmy teraz, ˙ze jest ono prawdziwe dla n i rozpatrzmy
A1⊕ . . . ⊕ An⊕ An+1= (A1⊕ . . . ⊕ An)⊕ An+1.
Zbiór ten zawiera te elementy, które nale˙z ˛a do(A1⊕ . . . ⊕ An) i nie nale˙z ˛a doAn+1, oraz te, które nie nale˙z ˛a do(A1⊕ . . . ⊕ An) i nale˙z ˛a doAn+1. W pierwszym przypad- ku s ˛a to elementy, które nie nale˙z ˛a doAn+1i na mocy zało˙zenia indukcyjnego nale˙z ˛a do jakiej´s nieparzystej liczby zbiorów spo´sródA1, . . . , An. W drugim przypadku s ˛a to elementy, które nale˙z ˛a do An+1, a tak˙ze do pewnej parzystej liczby zbiorów spo´sród A1, . . . , An. Razem mamy wszystkie elementy nale˙z ˛ace do nieparzystej liczby zbiorów
spo´sródA1, . . . , An+1. ✷
1.5 Iloczyn kartezja ´nski
Para uporz ˛adkowanajest to dwuelementowy ci ˛ag(x, y). Mamy (x, y) = (u, v) wtedy i tylko wtedy, gdyx = u oraz y = v. Dopuszczalne jest tak˙ze x = y.
A× B oznacza iloczyn kartezja´nski zbiorów A i B. Jest to zbiór wszystkich uporz ˛ad- kowanych par(a, b), w których a∈ A i b ∈ B. Inaczej
A× B = {(a, b) | a ∈ A, b ∈ B}.
Przykład 1.6 DlaA ={1, 3, 5} i B = {3, 4} mamy
A× B = {(1, 3), (1, 4), (3, 3), (3, 4), (5, 3), (5, 4)}.
Mo˙zna łatwo wykaza´c, ˙ze|A×B| = |A|·|B|. Podobnie mo˙zna tworzy´c iloczyn wi˛ekszej liczby składników.
A× B × C = {(a, b, c) | a ∈ A, b ∈ B c ∈ C}.
Elementy iloczynu kartezja´nskiego b˛edziemy te˙z nazywa´c wektorami.A2oznaczaA×A, podobnieA3= A× A × A i ogólnie An ={(a1, . . . , an)| ∀iai∈ A}.
1.6 Rodzina zbiorów
Czasami b˛edziemy mieli do czynienia ze zbiorem, którego elementami s ˛a zbiory. Przez
P(A) lub 2A
oznaczamy zbiór wszystkich podzbiorów zbioruA.
Przykład 1.7 DlaA ={a, b}
P(A) = {∅, {a}, {b}, {a, b}}.
Zbiór zbiorów nazywamy czasami rodzin ˛a zbiorów. Na przykładA = {A1, A2, A3, A4} jest rodzin ˛a zawieraj ˛ac ˛a cztery zbioryA1,A2,A3iA4; s ˛a to elementy zbioruA. Mo˙zemy te˙z zapisa´cA = {Ai| 1 ≤ i ≤ 4}.
Zbiory z rodziny mo˙zemy sumowa´c. Suma
k
[
i=1
Ai
zawiera te elementy, które nale˙z ˛a do którego´s ze zbiorówA1,A2,. . . , Ak, czyli
k
[
i=1
Ai={x | ∃i 1≤i≤k x∈ Ai}.
Inaczej mo˙zemy to zapisa´c
k
[
i=1
Ai= A1∪ A2∪ . . . ∪ Ak. B˛edziemy te˙z u˙zywa´c zapisu
[
i∈I
Ai
na oznaczenie sumy wszystkich zbiorówAi, których indeksy nale˙z ˛a do zbioruI. Zacho- dzi wtedy
[
i∈I
Ai={x | ∃i∈I x∈ Ai}.
Zbiór indeksów sumowania mo˙ze by´c okre´slony za pomoc ˛a warunku [
1<i<6
Ai = A2∪ A3∪ A4∪ A5.
Lemat 1.8 Dla sumy zbiorów zachodzi prawo rozdzielno´sci sumy wzgl˛edem przekroju C∩[
i∈I
Ai=[
i∈I
(C∩ Ai).
Dowód.We´zmy dowolny elementx∈ C ∩S
i∈IAi. Wtedyx nale˙zy do C i do którego´s ze zbiorówAi, czyli dla jakiego´si∈ I, x nale˙zy do C ∩Ai, a to znaczy, ˙zex∈S
i∈I(C∩ Ai).
We´zmy z kolei dowolny elementx ∈ S
i∈I(C ∩ Ai). Wtedy x nale˙zy do C ∩ Ai dla jakiego´si ∈ I, czyli x nale˙zy do C i do sumyS
i∈IAi, czyli nale˙zy do przekroju C∩S
i∈IAi. ✷
1.7. Grafy (nieskierowane) 21
Mo˙zemy te˙z bra´c przekroje zbiorów z rodziny. Przekrój
k
\
i=1
Ai
zawiera te elementy, które nale˙z ˛a do wszystkich zbiorówA1,A2,. . . , Ak, czyli
k
\
i=1
Ai={x | ∀i 1≤i≤k x∈ Ai}.
Inaczej mo˙zemy to zapisa´c
k
\
i=1
Ai= A1∩ A2∩ . . . ∩ Ak.
B˛edziemy te˙z u˙zywa´c zapisu
\
i∈I
Ai
na oznaczenie przekroju wszystkich zbiorów Ai, których indeksy nale˙z ˛a do zbioru I.
Zachodzi wtedy
\
i∈I
Ai={x | ∀i∈I x∈ Ai}.
Zbiór indeksów przekroju mo˙ze by´c okre´slony za pomoc ˛a warunku
\
1<i<6
Ai = A2∩ A3∩ A4∩ A5.
Przykład 1.9 We´zmy rodzin˛e zło˙zon ˛a z trzech zbiorów,A1 ={4, 6, 8}, A2 ={4, 5, 6}, A3={4, 5, 8, 9},
3
[
i=1
Ai={4, 5, 6, 8, 9},
3
\
i=1
Ai={4}.
Przykład 1.10 NiechI ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10} b˛edzie zbiorem indeksów. Dla ka˙z- degoi∈ I okre´slamy zbiór Ai={x ∈ N | 1 ≤ x ≤ i}. Mamy
[
i∈I
Ai={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, \
i∈I
Ai={1},
[
1<i<7
Ai={1, 2, 3, 4, 5, 6}, \
1<i<7
Ai={1, 2}.
1.7 Grafy (nieskierowane)
Definicja 1.11 Graf (nieskierowany)G = (V, E) jest to para składaj ˛aca si˛e ze sko´nczo- nego zbioru wierzchołkówV oraz ze zbioru kraw˛edzi E, gdzie kraw˛edzie to pary wierz- chołków,
E⊆ {{u, v} | u, v ∈ V, u 6= v}.
O kraw˛edzie ={u, v} mówimy, ˙ze ł ˛aczy wierzchołki u i v, a o wierzchołkach u i v – ˙ze s ˛a ko´ncami kraw˛edzie. Wierzchołki poł ˛aczone kraw˛edzi ˛a nazywamy s ˛asiednimi. Stopie´n wierzchołkav, oznaczany przez d(v), jest to liczba kraw˛edzi wychodz ˛acych zv.
Rysunek 1.1: Przykład grafu
a b c
d
e f g
Przykład 1.12 Rysunek 1.1 przedstawia grafG = (V, E) ze zbiorem wierzchołków V = {a, b, c, d, e, f, g} i zbiorem kraw˛edzi
E ={{a, b}, {a, d}, {a, e}, {a, g}, {b, c}, {c, g}, {c, f}, {d, f}, {e, f}, {f, g}}.
Stopie´n wierzchołkówa i f wynosi 4, wierzchołki c i g s ˛a stopnia3, wierzchołki b, d i e stopnia2.
GrafH = (VH, EH) nazywamy podgrafem grafu G = (VG, EG), je˙zeli VH ⊆ VG orazEH ⊆ EG.
Przykład 1.13 Drzewo przedstawione na rysunku 1.3 jest podgrafem grafu z rysunku 1.1.
Graf pełnyon wierzchołkach, oznaczany przez Kn, jest to graf zn wierzchołkami, w którym ka˙zde dwa wierzchołki poł ˛aczone s ˛a kraw˛edzi ˛a.
Drogalub ´scie˙zka w grafieG = (VG, EG) jest to ci ˛ag wierzchołkówv0, v1, . . . , vk, taki ˙ze dla ka˙zdegoi, 1 ≤ i ≤ k, wierzchołki vi−1,vi s ˛a poł ˛aczone kraw˛edzi ˛a, czyli {vi−1, vi} ∈ EG. O drodzev0, v1, . . . , vk mówimy, ˙ze ł ˛aczy wierzchołkiv0 ivk. Mó- wimy tak˙ze, ˙ze wierzchołekvk jest osi ˛agalny z wierzchołkav0. Droga jest zamkni˛eta, je˙zeli v0 = vk. Droga jest prosta, je˙zeli wszystkie wyst˛epuj ˛ace w niej wierzchołki s ˛a ró˙zne. Drog˛ev0, v1, . . . , vk nazywamy cyklem, je˙zeli v0 = vk,k ≥ 3 oraz wszystkie wierzchołkiv1, . . . , vks ˛a ró˙zne.
Przykład 1.14 W grafie z rysunku 1.1 ci ˛ag e, a, d, a, b, c, g jest drog ˛a, a ci ˛ag a, e, f , d, a jest cyklem. Ci ˛aga, e, f, d, a, b, c, g, a jest drog ˛a zamkni˛et ˛a, ale nie jest cyklem.
GrafG jest spójny, je˙zeli dla ka˙zdych dwóch wierzchołków u, v∈ VGistnieje ´scie˙zka ł ˛acz ˛acau i v.