• Nie Znaleziono Wyników

Rozdzial 01 - Podstawowe pojęcia, oznaczenia

N/A
N/A
Protected

Academic year: 2021

Share "Rozdzial 01 - Podstawowe pojęcia, oznaczenia"

Copied!
24
0
0

Pełen tekst

(1)

Matematyka Dyskretna

Andrzej Szepietowski

(2)
(3)

Rozdział 1

Podstawowe poj˛ecia, oznaczenia

1.1

Sumy

Maj¸ac dany sko ´nczony ci¸aga1,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 =x k+1− 1 x − 1 , (1.2)

(wzór (1.2) jest słuszny dla ka˙zdegox 6= 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 skompliko-wany, na przykład X 1≤i≤6 i parzyste ai= a2+ a4+ a6. 3

(4)

Stosowa´c b¸edziemy tak˙ze zapis

X

i∈I

ai

oznaczaj¸acy sum¸e tych elementówai, 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 = a12+ a13+ a22+ a23+ a32+ a33.

Za pomoc ˛a podwójnej sumy mo˙zemy na przykład przedstawi ´c uogólnione prawo roz-dzielno´sci mno˙zenia wzgl˛edem dodawania:

  X 1≤i≤m ai  ·   X 1≤j≤n bj  = X 1≤i≤m 1≤j≤n aibj (1.3)

a tak˙ze wzór na podnoszenie sumy do kwadratu:

  X 1≤i≤m ai   2 = X 1≤i≤m a2i + X 1≤i<j≤m 2aiaj (1.4)

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

Wielomiany

Wielomian jest to funkcja postaci

(5)

1.3. Wielomiany 5

gdziex jest zmienn ˛a rzeczywist ˛a, aa0,a1, ... ,ans ˛a stałymi rzeczywistymi, nazywanymi

współczynnikami wielomianu. Stopniem wielomianuP (x) jest najwi˛eksze takie k, ˙ze ak6= 0, stopie´n oznaczamy, przez st(W (x)). Zwykle pisz ˛acP (x) = an· xn+ · · · + a0

b˛edziemy zakłada´c, ˙zean 6= 0, czyli ˙ze stopie´n st(P (x)) = n. U˙zywaj ˛ac symbolu sumy

wielomian mo˙zemy przedstawi´c w nast˛epuj ˛acy sposób:

P (x) =

n

X

i=0

aixi.

Wielomian, którego wszystkie współczynniki s ˛a równe zeru nazywamy wielomianem ze-rowym. Dwa wielomianyP (x) = Pn

i=0aixi orazQ(x) = Pni=0bixi s ˛a równe je˙zeli

maj ˛a takie same wspólczynniki, to znaczy je˙zeliai= bidla ka˙zdegoi.

Wielomiany mo˙zna dodawa´c, odejmowa´c lub mno˙zy´c. Suma, ró˙znica i iloczyn wie-lomianówP (x) i Q(x) okre´slone s ˛a nast˛epuj ˛aco:

• P (x) + Q(x) =Pn

i=0(ai+ bi)xi,

• P (x) − Q(x) =Pn

i=0(ai− bi)xi,

• P (x) · Q(x) =P2n

i=0(ci)xi, gdzieci=Pik=0ak· bi−k oraz ak = 0 i bk = 0

dla wszystkich k > n.

Wzór na iloczyn wielomianów wygl ˛ada skomplikowanie, ale jest on równowa˙zny szkol-nemu sposobowi mno˙zenia wielomianów, gdzie wyrazy (jednomiany) obu wielomianów wymna˙za si˛e ka˙zdy z ka˙zdym a nast˛epnie grupuje wyrazy według wykładników. Wielo-mianP (x) mo˙zna pomno˙zy´c przez stał ˛aa

a · P (x) =

n

X

i=0

a · aixi.

Przykład 1.1 NiechP (x) = x2+ 2x + 1 oraz Q(x) = 2x2+ x. Wtedy P (x) + Q(x) = 3x2+ 3x + 1

P (x) · Q(x) = 2x4+ 5x3+ 4x2+ x

1.3.1

Dzielenie wielomianów

Wielomiany mo˙zna te˙z dzieli´c. Mamy

Twierdzenie 1.2 Dla dowolnych dwóch wielomianówW (x) i V (x) istniej ˛a dwa wielo-mianyQ(x) i R(x) takie ˙ze

(a) W (x) = V (x) · Q(x) + R(x) (b) st(R(x)) < st(V (x))

WielomianQ(x) nazywamy ilorazem a R(x) reszt ˛a z dzieleniaW (x) przez V (x). Iloraz i reszta s ˛a wyznaczone jednoznacznie, to znaczy istnieje tylko jedna para Q(x), R(x) spełniaj ˛aca warunki (a) i (b).

(6)

Algorytm dzielenia wielomianów

Dane wej´sciowe: Dwa wielomianyW (x) = anxn+· · ·+a0orazV (x) = bmxm+· · ·+b0.

Zakładamy przy tym, ˙zean 6= 0 i bm 6= 0, czyli ˙ze W (x) jest stopnia n, a V (x) jest

stopniam.

Dane wyj´sciowe: ilorazQ(x) oraz reszta R(x)

(1) PodstawQ(x) := 0 oraz R(x) := W (x).

(2) Je˙zelist(R(x)) = n < m, to koniec, para Q(x), R(x) spełnia warunki (a) i (b).

(3) W przeciwnym przypadku powtarzaj co nast˛epuje dopókist(R(x)) ≥ m = st(V (x)):

(3.1) Niechckxkb˛edzie składnikiemR(x) z najwy˙zszym wykładnikiem.

(3.2) Podzielckxkprzezbmxm. (3.3) PodstawQ(x) := Q(x) + ck bmx k−m (3.4) PodstawR(x) := R(x) − ck bmx k−m· V (x)

Aby udowodni´c, ˙ze przedstawiony algorytm poprawnie oblicza iloraz i reszt˛e, poka˙ze-my, przez indukcj˛e, ˙ze warunek (a) jest spełniony po ka˙zdym kolejnym wykonaniu p˛etli (3). Na pocz ˛atku po wykonaniu kroku (1), welomianyQ(x) = 0 oraz R(x) = W (x)

spełniaj ˛a warunek (a). Oznaczmy warto´sci wielomianówQ(x) i R(x) przed i -tym

wy-konaniem p˛etli (3) przez Q1(x) i R1(x), a warto´sci po i -tym wykonanu p˛etli przez

Q2(x) i R2(x). Zakładamy przy tym, ˙ze W (x) = V (x) · Q1(x) + R1(x), ˙ze stopie´n

st(R1(x)) ≥ m, oraz ˙ze ckxkjest składnikiemR1(x) z najwie˛ekszym wykładnikiem. W

trakciei-tego wykonania p˛etli nast ˛api ˛a podstawienia

Q2(x) := Q1(x) + ck bm xk−m oraz R2(x) := R1(x) − ck bm xk−m· V (x). Mamy teraz R1(x) := ck bm xk−m· V (x) + R2(x) oraz W (x) = Q1(x)·V (x)+R1(x) = (Q1(x)+ ck bm xk−m)·V (x)+R 2(x) = Q2(x)·V (x)+R2(x),

czyliQ(x) oraz R(x) spełniaj ˛a warunek (a) poi tym wykonaniu p˛etli.

Zauwa˙zmy, ˙ze stopie ´n wielomianuR2(x) jest mniejszy od stopnia wielomianu R1(x),

poniewa˙z w wielomianieR2(x) = R1(x) −bcmkxk−m· V (x). współczynnik przy xk jest

równy0 i stopie´n st(R2(x)) < k. Tak wi˛ec p˛etla (3) nie mo˙ze si˛e wykonywa´c wi˛ecej ni˙z

n − m razy. Po wyj´sciu z p˛etli stopie´n st(R(x) < st(V (x)), czyli spełniony jest warunek

(7)

1.3. Wielomiany 7

Pokazali´smy wi˛ec, ˙ze wielomianW (x) mo˙zna przedstawi´c w postaci W (x) = Q(x) · V (x) + R(x) tak, ˙zeby st(R(x)) < st(V (x)). Teraz poka˙zemy, ˙ze iloraz Q(x) i reszta R(x) s ˛a wyznaczone jednoznacznie. Przypu´s´cmy bowiem, ˙ze

W (x) = Q1(x)V (x) + R1(x)

oraz

W (x) = Q2(x)V (x) + R2(x)

i ˙zest(R1(x)), st(R2(x)) < st(V (x)). Po odj˛eciu tych równo´sci stronami otrzymamy

0 = (Q1(x) − Q2(x))V (x) + (R1(x) − R2(x)).

Je˙zeli wielomianyQ1(x) 6= Q2(x), to wielomian (Q1(x) − Q2(x))V (x) ma stopie´n

wi˛ekszy lub równy odst(V (x)), a wielomian R1(x) − R2(x) ma stopie´n mniejszy od

st(V (x)), wi˛ec ich suma nie mo˙ze by´c wielomianem zerowym. Doszli´smy wi˛ec do

sprzecz-no´sci, czyliQ1(x) = Q2(x), z tego za´s wynika, ˙ze R1(x) = R2(x).

Przykład 1.3 Podzielmy wielomianW (x) = 8x3+6x2+3x+2 przez wielomian V (x) =

2x − 1 według opisanego wy˙zej algorytmu.

Najpierw w kroku (1) podstawiamyQ(x) := 0 oraz R(x) := 8x3+ 6x2+ 3x + 2.

Poniewa˙zst(R(x)) = 3 > 1 = st(V (x)) przechodzimy do p˛etli (3). Dzielimy składnik 8x3przez2x otrzymuj ˛ac4x2i podstawiamy

R(x) := R(x) − 4x2V (x) = 8x3+ 6x2+ 3x + 2 − 4x2(2x − 1) = 10x2+ 3x + 2. oraz

Q(x) := Q(x) + 4x2= 4x2.

Zauwa˙zmy, ˙ze spełniony jest warunekW (x) = Q(x) · V (x) + R(x).

Poniewa˙zst(R(x)) jest wi˛ekszy od 1 wykonujemy ponownie instrukcje p˛etli (3). Dzie-limy składnik10x2przez2x otrzymuj ˛ac5x i podstawiamy

R(x) := R(x) − 5xV (x) = 10x2+ 3x + 2 − 5x(2x − 1) = 8x + 2. oraz

Q(x) := Q(x) + 5x = 4x2+ 5x. (warunekW (x) = Q(x) · V (x) + R(x) jest spełniony).

Stopie´nst(R(x)) jest równy 1, wi˛ec wykonujemy ponownie instrukcje p˛etli (3). Dzie-limy składnik8x przez 2x otrzymuj ˛ac4 i podstawiamy

R(x) := R(x) − 4V (x) = 8x + 2 − 4(2x − 1) = 6. oraz

Q(x) := Q(x) + 4 = 4x2+ 5x + 4.

WarunekW (x) = Q(x) · V (x) + R(x) jest spełniony i teraz stopie´n st(R(x)) = 0 < 1 wi˛e algorytm ko´nczy prac˛e. WielomianQ(x) = 4x2+ 5x + 2 jest ilorazem a wielomian

(8)

1.3.2

Schemat Horna

Aby obliczy´c warto´s´c wielomianuP (x0) w jakim´s konkretnym punkcie x0mogliby´smy

bezpo´srednio skorzysta´c ze wzoruP (x0) =Pni=0aixi0. W ten sposób potrzebujemy, w

najgorszym przypadku, okołon2 mno˙ze´n. Istnieje jednak sposób wymagaj ˛acy tylkon

mno˙ze´n. Nale˙zy oblicza´c warto´s´c wielomianu według schematu

P (x0) = ((. . . (an· x0+ an−1) · x0+ an−2) · x0+ · · · a1) · x0+ a0.

Jest to tak zwany schemat Horna. Dokładniej mo˙zemy go przedstawi ´c nast˛epuj ˛aco:

Algorytm obliczania warto´sci wielomianu, schemat Horna

Dane wej´sciowe: współczynnikia0,a1, ... ,anwielomianuP (x) = an· xn+ · · · + a0

oraz argumentx0.

Dane wyj´sciowe: warto´s´c wielomianuy0= P (x0) = anxn0+ · · · + a1x0+ a0.

• y0:= an

• dla kolejnych i od 1 do n podstaw y0:= y0· x0+ an−i

1.3.3

Pierwiastki wielomianu

Pierwiastkiem wielomianuW (x) jest ka˙zda liczba rzeczywista a, która podstawiona do

wielomianu da warto´s´cW (a) = 0. Zachodzi

Twierdzenie 1.4 (Bézout) Liczbaa jest pierwiastkiem wielomianu W (x) wtedy i tylko wtedy, gdyW (x) dzieli si˛e przez x−a, czyli, gdy istnieje wielomian Q(x) taki, ˙ze W (x) = Q(x)(x − a).

Dowód: Je˙zeliW (x) = Q(x)(x − a), to W (a) = Q(a)(a − a) = 0.

Niech terazW (a) = 0. Podzielmy W (x) przez x − a, otrzymamy W (x) = Q(x)(x − a) + R(x)

przy czym stopie ´nR(x) jest mniejszy od 1, czyli jest stał ˛aR(x) = r. Wstawiaj ˛ac teraza

do obu stron otrzymamy

0 = Q(a)(a − a) + r,

czylir = 0 i W (x) = Q(x)(x − a). 2

Wniosek 1.5 Je˙zeli wielomian nie jest to˙zsamo´sciowo równy zero, to liczba jego

pier-wiastków nie jest wi˛eksza od jego stopnia.

Dowód: Niecha1,...,ak b˛ed ˛a ró˙znymi pierwiastkami wielomianuW (x). Z twierdzenia

Bézout mamy W (x) = Q1(x)(x − a1). Po podstawieniu a2 mamy 0 = W (a2) =

Q1(a2)(a2 − a1), czyli a2, jest pierwiastkiem wielomianuQ1(x). Korzystaj ˛ac znowu

z twierdzenia Bézout otrzymamyW (x) = Q2(x)(x − a2)(x − a1), i tak dalej. W ko´ncu

otrzymamy, ˙zeW (x) jest postaci W (x) = Q(x)(x − ak) · · · (x − a2)(x − a1), czyli

(9)

1.4. Zbiory 9

1.4

Zbiory

∅ oznacza zbiór pusty, który nie zawiera ˙zadnych elementów. N oznacza zbiór liczb naturalnych N= {0, 1, 2, 3, . . .}. Z oznacza zbiór liczb całkowitych.

Q oznacza zbiór liczb wymiernych. R oznacza zbiór liczb rzeczywistych.

a ∈ A oznacza, ˙ze elment a nale˙zy do zbioru A, a /∈ A, ˙ze elment 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

spo-só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, który zawiera elementy, które nale˙z ˛a doA lub

doB:

A ∪ B = {x : x ∈ A lub x ∈ B}.

A 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, który zawiera te 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, który zawiera te elementy, które nale˙z¸a

doA i nie nale˙z¸a do B.

A − B = {x : x ∈ A i x /∈ B}.

Przykład 1.6 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 zbior A zawiera si¸e w zbiorze B, to znaczy wszystkie elementy zbioru A nale˙z¸a do zbioru B.

{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 i iloczynu zbio-rów.

(10)

Lemat 1.7 • 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 nalezy 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 nalezy 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. 2

1.5

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

{1, 2, 4} ⊕ {1, 4, 6} = {2, 6}.

W poni˙zszym lemacie zebrano podstawowe własno´sci ró˙znicy symetrycznej zbiorów.

Lemat 1.9 • 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 = ∅.

(11)

1.6. Iloczyn kartezja ´nski 11

Dowód:

Udowodnimy, tylko dwie to˙zsamo´sci, dowód pozostałych pozostawiamy czytelnikowi 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¸a do nieparzystej liczby zbiorów,

czyli te, które nale˙z¸a tylko doA, plus te, które nale˙z¸a tylko do B, plus te, które nale˙z¸a

tylko doC, plus te, które nale˙z¸a do przekroju A ∩ B ∩ C.

Udowodnimy teraz ostatni ˛a implikacj˛e. Je˙zeliA ⊕ B = ∅, to

A = A ⊕ ∅ = A ⊕ (A ⊕ B) = (A ⊕ A) ⊕ B = ∅ ⊕ B = B.

2

Twierdzenie 1.10 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 do An+1,

oraz te, które nie nale˙z¸a do(A1⊕ . . . ⊕ An) i nale˙z¸a do An+1. W pierwszym

przypad-ku s¸a to elementy, które nie nale˙z¸a doAn+1 i 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 doAn+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. 2

1.6

Iloczyn kartezja ´nski

Para uporz¸adkowana jest 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¸adkowanych

par(a, b), w których a ∈ A i b ∈ B. Inaczej

A × B = {(a, b) | a ∈ A, b ∈ B}.

Przykład 1.11 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

(12)

1.7

Rodzina zbiorów

Czasami b˛edziemy mieli do czynienia ze zbiorem, którego elementami s ˛a zbiory. Przez

P(A) lub 2A

b˛edziemy oznacza´c zbiór wszystkich podzbiorów zbioruA.

Przykład 1.12 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}.

Mo˙zemy sumowa´c zbiory z rodziny. 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 | ∃i1≤i≤kx ∈ 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.

Dla sumy zbiorów zachodzi prawo rozdzielno´sci sumy wzgl˛edem przekroju:

Lemat 1.13 C ∩[ i∈I Ai= [ i∈I (C ∩ Ai)

(13)

1.7. Rodzina zbiorów 13

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 ∈Si∈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 sumy S

i∈IAi, czyli nale˙zy do przekroju

C ∩S

i∈IAi. 2

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 | ∀i1≤i≤kx ∈ 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ówAi, których indeksy nale˙z¸a do zbioruI.

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.14 We´zmy rodzin¸e zło˙zon¸a z trzech zbiorówA1 = {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.15 NiechI = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} b¸edzie zbiorem indeksów. Dla ka˙z-degoi ∈ I okre´slamy zbó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}.

(14)

1.8

Grafy (nieskierowane)

Definicja 1.16 Graf (nieskierowany)G = (VG, EG) jest to para składaj¸aca si¸e ze

sko´n-czonego zbioru wierzchołkówVG oraz ze zbioru kraw¸edziEG, gdzie kraw¸edzie to pary

wierzchołków.

EG⊆ {{u, v} | u, v ∈ VG, 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 z v.

Graf przedstawiamy na rysunku jako zbiór punktów (lub kółek) poł¸aczonych odcin-kami (lub łuodcin-kami).

Rysunek 1.1: Przykład grafu

a b c

d

e f g

Przykład 1.17 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}}. Sto-pie´n wierzchołkówa i f wynosi 4, wierzchołki c i g s¸a stopnia 3, wierzchołki b, d i e stopnia 2.

GrafH = (VH, EH) nazywamy podgrafem grafu G = (VG, EG), je˙zeli VH ⊆ VG oraz

EH⊆ EG.

Przykład 1.18 Graf przedstawiony na rysunku 1.3 jest podgrafem grafu z rysunku 1.1.

Graf pełny on 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.

Droga lub ´scie˙zka w grafie jest to ci¸ag wierzchołkówv0, v1, . . . , vk, taki, ˙ze dla

ka˙zde-goi, 1 ≤ i ≤ k, wierzchołki vi−1,vis¸a poł¸aczone kraw¸edzi¸a, czyli{vi−1, vi} ∈ EG. O

drodzev0, v1, . . . , vkmówimy, ˙ze ł¸aczy wierzchołkiv0ivk. Mówimy tak˙ze, ˙ze

(15)

1.8. Grafy (nieskierowane) 15

Rysunek 1.2: Graf pełnyK6.

a b

c d

e f

prosta, je˙zeli wszystkie wyst¸epuj¸ace w niej wierzchołki s¸a ró˙zne. Drog¸ev0, v1, . . . , vk

nazywamy cyklem je˙zeliv0= vk,k ≥ 3 oraz wszystkie wierzchołki v1, . . . , vks¸a ró˙zne.

Przykład 1.19 W grafie z rysunku 1.1 ci¸age, a, d, a, b, c, g jest drog¸a, a ci¸ag a, e, f , d, a jest cyklem. Ci¸ag a, 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.

Lemat 1.20 Je˙zeli istnieje droga ł¸acz¸aca wierzchołkiu i v, u 6= v, to istnieje te˙z droga prosta ł¸acz¸acau i v.

Dowód: Niechu = v0, v1, . . . , vk = v, b¸edzie najkrótsz¸a drog¸e ł¸acz¸ac¸a u i v. Droga

ta jest prosta. Przypu´s´cmy bowiem, ˙zevi = vj, dla jakiego´si < j; mieliby´smy wtedy

krótsz¸a drog¸eu = v0, . . . , vi, vj+1, . . . , vk= v, ł¸acz¸ac¸a u i v, wbrew zało˙zeniu. 2

Dowolne dwa wierzchołki w cyklu mog¸a by´c poł¸aczone dwoma drogami prostymi. Na przykład w cyklua, b, c, g, a na rysunku 1.1, wierzchołki a i c ł¸aczy droga a, b, c oraz

drogaa, g, c. Tak, wi¸ec, je˙zeli w grafie s¸a cykle, to istniej¸a pary wierzchołkow, które s¸a

poł¸aczone dwoma drogami prostymi. Ale i na odwrót.

Lemat 1.21 Je˙zeli w grafie istniej¸a dwa wierzchołkiu i v, u 6= v które mo˙zna poł¸aczy´c dwoma ró˙znymi drogami prostymi, to w grafie istnieje cykl.

Dowód: Niechu = v0, v1, . . . , vk = v oraz u = w0, w1, . . . , wl = v, b¸ed¸a dwoma

ro˙znymi prostymi drogami ł¸acz¸acymiu i v. Mo˙zemy zało˙zy´c, ˙ze v1 6= w1(w

przeciw-nym przypadku mo˙zemy usun¸a´c wspólny pocz¸atek obu dróg). Niechvi b¸edzie

pierw-szym wierzchołkiem pov0, który wyst¸epuje w drodzew0, w1, . . . , wm, i niechvi = wj.

Wierzchołkiv1, . . . , vi−1 nie wyst¸epuj¸a w drodzew0, w1, . . . , wmi drogav0, . . . , vi =

wj, wj−1, . . . , w1, w0 = v0tworzy cykl (w drodze tej wyst¸epuj¸a conajmniej trzy ró˙zne

(16)

Z tego lematu wynika, ˙ze graf jest acykliczny (nie ma cykli) wtedy i tylko wtedy, gdy ka˙zde dwa wierzchołki grafu mo˙zna poł¸aczy´c co najwy˙zej jedn¸a drog¸a prost¸a.

1.9

Drzewa

Definicja 1.22 Spójny i acykliczny (bez cykli) graf to drzewo.

Rysunek 1.3: Przykład drzewa

a b c

d

e f g

Z rozwa˙za´n z poprzedniego podrozdziału wynika:

Lemat 1.23 Graf jest drzewem wtedy i tylko wtedy, gdy ka˙zde dwa jego wierzchołki

mo˙z-na poł¸aczy´c dokładnie jedn¸a prost¸a drog¸a.

1.10

Drzewa ukorzenione

Definicja 1.24 Drzewo ukorzenione to drzewo z wyró˙znionym jednym wierzchołkiem.

Wyró˙zniony wierzchołek nazywamy korzeniem drzewa.

Ka˙zdy wierzchołekv ró˙zny od korzenia jest z nim poł ˛aczony dokładnie jedn ˛a drog ˛a prost ˛a. S ˛asiad le˙z ˛acy na drodze do korzenia nazywamy ojcem wierzchołkav. Pozastali

s ˛asiedzi s ˛a synami wierzchołkav. Korze ´n drzewa nie ma ojca, wszyscy jego s ˛asiedzi s ˛a jego synami. Wierzchołek, który nie posiada syna nazywamy li´sciem.

Przykład 1.25 Je˙zeli w drzewie z rysunku 1.3 wyró˙znimy wierzchołeka jako korze´n, to ojcem wierzchołkad jest wierzchołek a, synem wierzchołka d jest wierzchołek f . Wierz-chołkic, e, f oraz g s ˛a li´sciami.

Zwykle drzewo ukorzenione rysujemy w ten sposób, ˙ze korze ´n jest na górze, poni-˙zej le˙z ˛a jego synowie i ogólnie ka˙zdy wierzchołek le˙zy poni˙zej swojego ojca i powy˙zej swoich synów.

(17)

1.11. Grafy skierowane 17

1.11

Grafy skierowane

Definicja 1.26 Graf skierowany (zorientowany) to dowolna paraG = (V, E), ze sko´n-czonym zbiorem wierzchołkówV i zbiorem kraw¸edzi E ⊆ V × V .

Rysunek 1.4: Graf skierowany

a b c

d e

W grafie skierowanym kraw¸ed´ze = (u, v) jest skierowana od wierzchołka u do

wierz-chołkav. Wierzchołek u nazywamy pocz¸atkiem kraw¸edzi, a wierzchołek v ko ´ncem. Na

rysunkach kraw¸edzie skierowane b¸edziemy przedstawia ´c jako strzałki. Droga w grafie skierowanym jest to ci¸ag wierzchołkówv0, v1, . . . , vk, taki, ˙ze dla ka˙zdegoi, 1 ≤ i ≤ k,

wierzchołkivi−1,vis¸a poł¸aczone kraw¸edzi¸a, czyli(vi−1, vi) ∈ E. Kraw¸ed´z typu (u, u),

w której pocz¸atek i koniec pokrywaj¸a si¸e, nazywamy p¸etl¸a.

1.12

Słowa

Słowa s ˛a to ci ˛agi liter lub symboli z jakiego´s sko´nczonego zbioruΣ. Zbiór Σ nazywamy

wtedy alfabetem. Zbiór wszystkich słów nad alfabetemΣ oznaczamy przez Σ∗.

W´sród słów wyró˙zniamy słowo pusteλ, które nie zawiera ˙zadnych liter.

Przykład 1.27 Na przykład, je˙zeliΣ = {a, b}, to Σzawiera słowo pusteλ, dwa słowa

jednoliterowea i b, cztery słowa dwuliterowe aa, ab, ba i bb, osiem słów trzyliterowych aaa, aab, aba i abb, baa, bab, bba i bbb, i tak dalej.

Długo´s´c słowaw ∈ Σ jest to liczba jego liter, b˛edziemy j ˛a oznacza ´c przez|w|.

Dłu-go´s´c słowa pustego|λ| = 0. Zbiór wszystkich słów długo´sci n nad alfabetem Σ

oznacza-my przez

Σn.

Dla słów mo˙zemy okre´sli´c operacj˛e konkatenacji, lub składania słów. Konkatenacja (lub

zło˙zenie) dwóch słówu, v ∈ Σ, oznaczana przez uv, jest to sklejenie słów u i v. Do słowa u dopisujemy na ko´ncu słowo v. Dla dowolnego słowa v ∈ Σ∗zachodziλv = vλ = v.

(18)

Słowou jest prefiksem lub przedrostkiem słowa v, je˙zeli istnieje takie słowo w, ˙ze v = uw. Podobnie, słowo u jest sufiksem lub przyrostkiem słowa v, je˙zeli istnieje takie

słowow, ˙ze v = wu.

Przykład 1.29 Na przykładaba jest prefiksem słowa abaaab, a słowo ab jest sufiksem słowaabaaab. Słowo puste jest prefixem i sufiksem dowolnego słowa v. Ka˙zde słowo v jest swoim własnym prefiksem i sufiksem.

Zwykle alfabet jest zbiorem uporz ˛adkowanym, lub mówi ˛ac inaczej mamy pewn ˛a ko-lejno´s´c liter w alfabecie. Na przykład w zbiorzeΣ = {a, b} litera a stoi przed b. Mo˙zemy

wtedy uporz ˛adkowa´c zbiór słów nad alfabetemΣ.

Jeden porz ˛adek nazywa si˛e porz ˛adkiem leksykograficznym. Jest to porz ˛adek słów w słownikach. Aby porówna´c dwa słowau, v ∈ Σ, szukamy pierwszej pozycji, na której te

dwa słowa si˛e ró˙zni ˛a. Słowo, które ma na tej pozycji wcze´sniejsz ˛a liter˛e, jest wcze´sniejsze w porz ˛adku leksykograficznym. Je˙zeli takiej pozycji nie ma, to albou = v, albo jedno

ze słów jest prefiksem drugiego, wtedy wcze´sniejszy w porz ˛adku leksykograficznym jest prefiks.

Przykład 1.30 W porz ˛adku leksykograficznym słowoab jest wcze´sniejsze od słowa ababa, a to jest wcze´sniejsze odabb.

Porz ˛adek leksykograficzny jest wygodny, je˙zeli zbiór słów jest sko ´nczony. Zauwa˙zmy, ˙ze w zbiorze wszystkich słów{a, b}∗ niesko´nczenie wiele słów (wszystkie słowa zło˙zone

tylko z literya) poprzedza słowo b. Dlatego czasami stosuje si˛e inny porz ˛adek, tak zwany

porz ˛adek kanoniczny.

Słowou poprzedza słowo v w porz ˛adku kanonicznym, je˙zeli:

• albo |u| < |v|,

• albo |u| = |v| i u poprzedza v w porz ˛adku leksykograficznym.

Przykład 1.31 Pocz ˛atkowe słowa zbioru{a, b}∗uporz ˛adkowane według porz ˛adku

kano-nicznego to:

λ, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb, aaaa, . . .

1.13

Zaokr¸aglenia

Wprowad´zmy dwa oznaczenia na zaokr¸aglenie liczby rzeczywistej. Dla dowolnej liczby rzeczywistejx

dxe oznacza zaokr¸aglenie x w gór¸e do najbli˙zszej liczby całkowitej. bxc oznacza zaokr¸aglenie x w dół do najbli˙zszej liczby całkowitej.

Zaokr ˛agleniedxe nazywamy sufitem z x, a zaokr ˛agleniebxc nazywamy podłog ˛a zx.

Przykład 1.32

d4e = 4, d4.3e = 5, d−4e = −4, d−4.3e = −4. b4c = 4, b4.3c = 4, b−4c = −4, b−4.3c = −5.

(19)

1.14. Przedrostki 19

1.14

Przedrostki

W przypadku bardzo du˙zych lub bardzo małych warto´sci u˙zywa si¸e czasami jednostek miar b¸ed¸acych wielokrotno´sciami lub podwielokrotno´sciami podstawowych jednostek. Takie jednostki wyra˙za si¸e przez dodanie do nazwy jednostki odpowiedniego przedrostka, a do oznaczenia tej jednostki dodaje si¸e oznaczenie przedrostka. W nast¸epuj¸acej tabeli zebrano te przedrostki.

Przedrostek Oznaczenie Wielokrotno´s´c

exa E 1018 peta P 1015 tera T 1012 giga G 109 mega M 106 kilo k 103 hekto h 102 deka da 10

Przedrostek Oznaczenie Podwielokrotno´s´c

decy d 10−1 centy c 10−2 mili m 10−3 mikro µ 10−6 nano n 10−9 piko p 10−12 femto f 10−15 atto a 10−18

Przykładami tak utworzonych jednostek s¸a: centymetr (cm), milimetr (mm), hehtopa-skal, hektolitr, kilogram (kg), kilowat (kW). Do mierzenia pr¸edko´sci (zegara) procesora u˙zywa si¸e megahertzów. Jeden megahertz (MHz) to jednostka cz¸esto´sci równa miliono-wi impulsów na sekund¸e. Kilobajtów, megabajtów i gigabajtów u˙zywa si¸e do mierzenia liczby komórek pami¸eci. Cz¸esto przyjmuje si¸e, ˙ze kilobajt ma 1024 bajtów, megabajt 1024 × 1024 bajtów, a gigabajt 1024 × 1024 × 1024 bajtów.

1.15

Notacja asymptotyczna

W analizie jakiego´s algorytmu (programu) wa˙zne jest oszacowanie jego czasu działania. Jako przykład we´zmy algorytm sortowania b ˛abelkowego, który ustawia elementy ci ˛agu wej´sciowego w porz ˛adku niemalej ˛acym.

Algorytm sortowania b ˛abelkowego.

Aby posortowa´c ci ˛ag długo´scin:

(1) wykonujemy co nast˛epujen − 1 razy:

(20)

(1b) wykonujemy co nast˛epujen − 1 razy:

porównujemy wskazany element z elementem nast˛epnym,

je˙zeli porównane elementy s ˛a w niewła´sciwej kolejno´sci, to zamieniamy je miejscami,

wskazujemy na nast˛epny element.

W poni˙zszej tabeli zilustrowano zastosowanie algorytmu dla ci ˛agu(3, 4, 1, 2). ˆ 3 4 1 2 3 ˆ4 1 2 3 1 ˆ4 2 ˆ 3 1 2 4 1 ˆ3 2 4 1 2 ˆ3 4 ˆ 1 2 3 4 1 ˆ2 3 4 1 2 ˆ3 4

Kolejne wiersze przedstawiaj ˛a ci ˛ag po kolejnych porównaniach. Element aktualnie wska-zany jest zaznaczony daszkiem.

Poprawno´s´c powy˙zszego algorytmu wynika z faktu, ˙ze po pierwszym wykonaniu ze-wn˛etrznej p˛etli (1) najwi˛ekszy element ci ˛agu znajdzie si˛e na ko ´ncu, po drugim wykonaniu p˛etli drugi najwi˛ekszy element ci ˛agu znajdzie si˛e na przedostatniej pozycji, i tak dalej. Po ka˙zdym kolejnym wykonaniu p˛etli (1) kolejny najwi˛ekszy element znajdzie swoj ˛a wła-´sciw ˛a pozycj˛e.

Czas działania algorytmu zale˙zy odn — liczby elementów w ci ˛agu. P˛etla zewn˛etrzna (1) jest wykowywanan−1 razy. W ka˙zdej iteracji p˛etli zewn˛etrznej p˛etla wewn˛etrzna (1b)

równie˙z jest wykonywanan − 1 razy. W ka˙zdym kolejnym wykonaniu p˛etli wewn˛etrznej

algorytm wykonuje kilka kroków. Tak wi˛ec, aby posortowa ´c ci ˛ag długo´scin algorytm w

sumie wykonujec(n − 1)2kroków, gdziec jest pewn ˛a stał ˛a.

Czas pracy powy˙zszego algorytmu został oszacowany z dokładno´sci ˛a do stałej. Jest to powszechna praktyka i b˛edziemy tak post˛epowa´c w tej ksi ˛a˙zce.

Do szacowania czasu pracy algorytmu (jego zło˙zono´sci czasowej) i do porównywania algorytmów pod wzgl˛edem czasu działania b˛edziemy u˙zywa ´c notacji asymptotycznej.

Niechf i g b˛ed ˛a dwiema funkcjami okre´slonymi na zbiorze liczb naturalnych o war-to´sciach w zbiorze dodatnich liczb rzeczywistych

f, g : N → {x|x ∈ R, x > 0}.

Wtedy:

• g(n) = O(f (n)), je˙zeli istnieje dodatnia stała c > 0 taka, ˙ze g(n) ≤ c · f (n)

dla prawie wszystkichn ∈ N, to znaczy istnieje n0, takie, ˙zeg(n) ≤ c · f (n) dla

(21)

1.15. Notacja asymptotyczna 21

• g(n) = o(f (n)), je˙zeli limn→∞g(n)f(n) = 0. W takim przypadku mówimy, ˙ze

funk-cjag jest o małe od f .

• g(n) = Ω(f (n)), je˙zeli istnieje dodatnia stała c > 0 taka, ˙ze g(n) ≥ c · f (n) dla

prawie wszystkichn ∈ N. W takim przypadku mówimy, ˙ze funkcja g jest Omega du˙ze odf .

• g(n) = Θ(f (n)), je˙zeli istniej ˛a dwie dodatnie stałec1, c2> 0 takie, ˙ze c1· f (n) ≤

g(n) ≤ c2· f (n) dla prawie wszystkich n ∈ N. W takim przypadku mówimy, ˙ze

funkcjag jest Theta du˙ze od f .

Je˙zelig(n) = O(f (n)), to mówimy, ˙ze funkcja f ogranicza z góry funkcj˛e g(n) (z

dokładno´sci ˛a do stałej), albo, ˙ze rz ˛ad funkcjig jest nie wi˛ekszy od rz˛edu funkcji f .

Przykład 1.33

• Czas działania algorytmu sortowania b ˛abelkowego jestO(n2).

• n = O(3n − 2). • 3n − 2 = O(n). • n3+ n2− n = O(n3).

• n3= O(2n).

• n2log n = O(n3).

B˛edziemy dopuszcza´c notacj˛e asymptotyczn ˛a tak˙ze wobec funkcji, które s ˛a dodatnie dla prawie wszystkich liczb naturalnych. Na przykładn2− 3n = O(n2).

Je˙zelig(n) = o(f (n)), to mówimy, ˙ze g jest ni˙zszego rz˛edu ni˙z f .

Przykład 1.34

• n2= o(n3).

• n = o(n log n). • n3= o(2n).

Je˙zelig(n) = Θ(f (n)), to g i f s ˛a tego samego rz˛edu, czylig(n) = O(f (n)) oraz f (n) = O(g(n)).

Przykład 1.35

• n2= Θ(n2+ n).

• n = Θ(n + log n).

Nast˛epuj ˛acy lemat jest bardzo u˙zyteczny przy szacowaniu asymptotycznym. Jego do-wód zostawiamy jako ´cwiczenie.

(22)

Lemat 1.36 Je˙zeli granicalimg(n)f(n)istnieje i jest wła´sciwa (nie jest równa∞), to g(n) = O(f (n)).

Wniosek 1.37 Je˙zelig(n) = o(f (n)), to g(n) = O(f (n)).

Nast˛epuj ˛acy przykład pokazuje, ˙ze oszacowanie asymptotyczne mo˙ze by ´c zawodne.

Przykład 1.38 We´zmy dwie funkcjef (n) = 300n oraz g(n) = n log2n. Mamy f (n) =

o(g(n)), ale f (n) ≥ g(n) dla wszystkich n ≤ 2300, czyli dla wszystkich liczb mniejszych

od liczby atomów w naszej galaktyce (porównaj podrozdział du˙ze liczby w rozdziale o arytmetyce).

Z drugiej jednak strony oszacowanie asymptotyczne wystarczy do naszych celów i jest łatwiejsze do uzyskania.

Przykład 1.39 Rozwa˙zmy trzy algorytmy: pierwszy działaj ˛acy w czasief1(n) = c1n,

drugi w czasief2(n) = c2n3 i trzeci w czasief3(n) = c32n. Funkcje te okre´slaj ˛a czas

działania na pewnym konkretnym komputerze. Niech n1, n2 i n3 oznazczaj ˛a długo´sci

wej´s´c, dla których algorytmy daj ˛a odpowied´z w ci ˛agu jednej sekundy, to znaczyf1(n1) =

f2(n2) = f3(n3) = 1s.

Przypu´s´cmy teraz, ˙ze mamy 1000 razy szybszy komputer i pytamy jakie wej´scia teraz mog ˛a by´c policzone przez te algorytmy w ci ˛agu jednej sekundy.

Dla pierwszego algorytmu działaj ˛acego w czasie liniowym mo˙zemy teraz oblicza´c 1000 razy dłu˙zsze dane wej´sciowe, poniewa˙zf1(1000n1) = 1000f1(n1). Dla

drugie-go aldrugie-gorytmu działaj ˛acego w czasie sze´sciennym mo˙zemy teraz oblicza´c 10 razy dłu˙zsze dane wej´sciowe, poniewa˙zf2(10n2) = 1000f2(n2). Dla trzeciego algorytmu działaj ˛

a-cego w czasie wykładniczym mo˙zemy teraz oblicza´c tylko dane wej´sciowe o 10 dłu˙zsze, poniewa˙zf3(n3+ 10) = 1024f3(n3).

1.16

Zadania

1. Oblicz: a)P4 i=1i2i, b) P3 k=1k3, c) P4 n=1(n2−1), d) P3 i=1 P2 j=1ij2, e) P2 k=1 P4 n=1(k − n), 2. Oblicz: a)Q5 i=1(i + 1), b) Q4 k=1(2k + 1), c) Q4 n=1(n2− 1). 3. NiechA = {1, 2, 3, 4, 5}, B = {1, 3, 5, 7} i C = {4, 5, 6, 7, 8}. Oblicz A ∪ B ∪ C, A ∩ B ∩ C, A − B, A ∩ (B − C), A ⊕ B, A ⊕ B ⊕ C.

4. Dane s ˛a dwa wielomianyU (x) = 4x3+ 3x + 2 oraz V (x) = 2x4+ x2+ 3x. Oblicz

ich sum˛e oraz iloczyn. Oblicz według schematu Horna warto´sciU (1) oraz V (1).

5. Podziel wielomianU (x) = 4x4+ 3x2+ x − 2 przez V (x) = x2+ x.

6. NiechI = {1, 2, 3, 4, 5} b¸edzie zbiorem indeksów. Dla ka˙zdego i ∈ I okre´slamy

zbórBi = {x ∈ N | i ≤ x ≤ 2i}. ObliczSi∈IBi,Ti∈IBi,A1⊕ A3⊕ A5oraz

(23)

1.16. Zadania 23

7. NiechI = {1, 2, 3, 4, 5} b¸edzie zbiorem indeksów. Dla ka˙zdego i ∈ I okre´slamy

zbórCi= {x ∈ N | 1 ≤ x ≤ 30 oraz i dzieli x}. ObliczSi∈ICiorazTi∈ICi.

8. NiechA = {1, 2, 3, 4}, B = {1, 2, 3}. Wypisz elementy A × B, B × A oraz {(a, b) ∈ A × B | a < b}.

9. NiechX = {a, b, c}. Wypisz elementy X2,X3oraz{(x, y) ∈ X2| x 6= y}.

10. Narysuj wszystkie grafy ze zbiorem wierzchołkówV = {a, b, c}. Które z nich s ˛a spójne?

11. Narysuj wszystkie drzewa ze zbiorem wierzchołkówV = {a, b, c}.

12. Narysuj wszystkie grafy skierowane ze zbiorem wierzchołkówV = {a, b}.

13. Narysuj grafG = (V, E), ze zbiorem wierzchołków V = {a, b, c, d, e} i zbiorem

kraw˛edziE = {{a, b}, {a, c}, {b, c}, {a, d}, {d, e}}. Czy graf G jest spójny? Czy

posiada cykle?

14. Narysuj graf skierowanyG = (V, E), ze zbiorem wierzchołków V = {a, b, c, d} i

zbiorem kraw˛edziE = {(a, b), (b, c), (c, b), (c, d), (d, d)}.

15. Wypisz 10 pierwszych słów zbioru{a, b, c}∗według porz ˛adku leksykograficznego

i kanonicznego.

16. Wypisz wszystkie prefiksy i sufiksy słowaaaba.

17. Uporz ˛adkuj nast˛epuj ˛acy zbiór słów według porz ˛adku leksykograficznego i kano-nicznego: słowik, wróbel, kos, jaskółka, kogut, dzi˛ecioł, gil, kukułka, szczygieł, sowa, kruk, czubatka, drozd, sikora i dzierlatka, kaczka, g ˛aska, jemiołuszka, dudek, trznadel, po´smieciuszka, wilga, zi˛eba, bocian, szpak. [Fragment wiersza Ptasie

ra-dio Juliana Tuwima]

18. Udowodnij wzóry (1.1), (1.2), (1.3), (1.4).

19. Udowodnij lemat 1.36,

20. Udowodnij zale˙zno´sci z przykładów 1.33, 1.34, 1.35.

21. Niechx, y b˛ed ˛a dowolnymi liczbami rzeczywistymi, ak dowoln ˛a liczb ˛a całkowit ˛a. Udowodnij nast˛epuj ˛ace zale˙zno´sci:

bx + yc ≥ bxc + byc. bx + kc = bxc + k. dx + ye ≤ dxe + dye. dx + ke = dxe + k.

(24)

23. Podaj przykład liczbx i y, dla których zachodzi dx + ye < dxe + dye.

24. Za pomoc ˛a algorytmu sortowania b ˛abelkowego posortuj ci ˛agi: a) 1,3,5,4,2; b) 8,1,6,3,4,5,2,7.

Obraz

Graf przedstawiamy na rysunku jako zbiór punktów (lub kółek) poł¸aczonych odcin- odcin-kami (lub łuodcin-kami).
Rysunek 1.2: Graf pełny K 6 .
Rysunek 1.3: Przykład drzewa
Rysunek 1.4: Graf skierowany

Cytaty

Powiązane dokumenty

Jeśli więc ograniczymy ją do zbiorów, które spełniają względem niej warunek Carathéodory’ego, dostaniemy miarę nazywaną dwuwymiarową miarą Lebesgue’a – i to jest

Dodawanie jest działaniem dwuargumentowym, w jednym kroku umiemy dodać tylko dwie liczby, więc aby dodać nieskończenie wiele liczb, trzeba by wykonać nieskończenie wiele kroków,

przykładem jest relacja koloru zdefiniowana na zbiorze wszystkich samochodów, gdzie dwa samochody są w tej relacji, jeśli są tego samego koloru.. Jeszcze inny przykład to

nierozsądnie jest ustawić się dziobem żaglówki w stronę wiatru – wtedy na pewno nie popłyniemy we właściwą stronę – ale jak pokazuje teoria (i praktyka), rozwiązaniem

Spoglądając z różnych stron na przykład na boisko piłkarskie, możemy stwierdzić, że raz wydaje nam się bliżej nieokreślonym czworokątem, raz trapezem, a z lotu ptaka

Następujące przestrzenie metryczne z metryką prostej euklidesowej są spójne dla dowolnych a, b ∈ R: odcinek otwarty (a, b), odcinek domknięty [a, b], domknięty jednostronnie [a,

nierozsądnie jest ustawić się dziobem żaglówki w stronę wiatru – wtedy na pewno nie popłyniemy we właściwą stronę – ale jak pokazuje teoria (i praktyka), rozwiązaniem

W przestrzeni dyskretnej w szczególności każdy jednopunktowy podzbiór jest otwarty – dla każdego punktu możemy więc znaleźć taką kulę, że nie ma w niej punktów innych niż