background image

Matematyka Dyskretna

Andrzej Szepietowski

25 marca 2004 roku

background image
background image

Rozdział 1

Podstawowe poj˛ecia, oznaczenia

1.1

Sumy

Maj ˛

ac dany sko ´nczony ci ˛

ag

a

1

,

a

2

,...

a

k

, sum˛e jego elementów zapisujemy jako

k

X

i

=1

a

i

.

Niezbyt formalnie mo˙zemy to zapisa´c

k

X

i

=1

a

i

= a

1

+ a

2

+ · · · + a

k

.

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

x

i

= 1 + x + x

2

+ · · · + x

k

=

x

k

+1

− 1

x − 1

,

(1.2)

(wzór (1.2) jest słuszny dla ka˙zdego

x 6= 1)

B˛edziemy te˙z u˙zywa´c zapisu typu

X

1≤i≤6

a

i

= a

1

+ a

2

+ a

3

+ a

4

+ a

5

+ a

6

.

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

a

i

= a

2

+ a

4

+ a

6

.

3

background image

4

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

Stosowa´c b˛edziemy tak˙ze zapis

X

i∈I

a

i

oznaczaj ˛

acy sum˛e tych elementów

a

i

, których indeksy nale˙z ˛

a do sko ´nczonego zbioru

indeksów

I. Na przykład, je˙zeli I = {1, 3, 5, 7}, to

X

i∈I

a

i

= a

1

+ a

3

+ a

5

+ a

7

.

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

a

ij

=

X

1≤i≤3

X

2≤j≤3

a

ij

a

12

+ a

13

+ a

22

+ a

23

+ a

32

+ a

33

.

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

a

i

·

X

1≤j≤n

b

j

=

X

1

≤i≤m

1

≤j≤n

a

i

b

j

(1.3)

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

X

1≤i≤m

a

i

2

=

X

1≤i≤m

a

2

i

+

X

1≤i<j≤m

2a

i

a

j

(1.4)

1.2

Iloczyny

Aby zapisa´c iloczyn elementów ci ˛

agu

a

1

,

a

2

,...,

a

k

, stosujemy zapis

k

Y

i

=1

a

i

.

Znów niezbyt formalnie mo˙zemy to zapisa´c jako

k

Y

i

=1

a

i

= a

1

· a

2

· · · · · a

k

.

1.3

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.

background image

1.3. Zbiory

5

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

zbioru

A. 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 zawieraj ˛

acy elementy, które nale˙z ˛

a do

A lub do

B:

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

A zatem suma

A ∪ 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 do

B.

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

∈ B}.

Przykład 1.1 Dla

A = {1, 2, 4} 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 inaczej

A = B wtedy i tylko

wtedy gdy

A ⊆ 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.

Lemat 1.2

• A ∪ B = B ∪ A

(przemienno´s´c sumy).

• A ∩ B = B ∩ A

(przemienno´s´c iloczynu).

background image

6

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

• 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ów

A 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 zawieranie

A ∩ 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ów

A 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.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 czytelnikowi

jako ´cwiczenie.

background image

1.5. Iloczyn kartezja ´nski

7

Aby pokaza´c, ˙ze ró˙znica symetryczna jest ł ˛

aczna wystarczy zauwa˙zy ´c, ˙ze zbiór

A ⊕

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

A, B lub C, plus te, które nale˙z ˛

a do przekroju

A ∩ B ∩ C.

Udowodnimy teraz ostatni ˛

a implikacj˛e. Je˙zeli

A ⊕ B = ∅, to

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

2

Twierdzenie 1.5 Ró˙znica symetryczna

zbiorów:

A

1

⊕ A

2

⊕ . . . ⊕ A

n

zawiera elementy, które nale˙z ˛

a do nieparzystej liczby spo´sród zbiorów

A

1

,

A

2

, . . . , A

n

.

Dowód przez indukcj˛e ze wzgl˛edu na

nTwierdzenie jest oczywiste dla n = 1 lub

n = 2. Załó˙zmy teraz, ˙ze jest ono prawdziwe dla n i rozpatrzmy:

A

1

⊕ . . . ⊕ A

n

⊕ A

n

+1

= (A

1

⊕ . . . ⊕ A

n

) ⊕ A

n

+1

.

Zbiór ten zawiera te elementy, które nale˙z ˛

a do

(A

1

⊕ . . . ⊕ A

n

) i nie nale˙z ˛

a do

A

n

+1

,

oraz te, które nie nale˙z ˛

a do

(A

1

⊕ . . . ⊕ A

n

) i nale˙z ˛

a do

A

n

+1

. W pierwszym przypad-

ku s ˛

a to elementy, które nie nale˙z ˛

a do

A

n

+1

i na mocy zało˙zenia indukcyjnego nale˙z ˛

a

do jakiej´s nieparzystej liczby zbiorów spo´sród

A

1

, . . . , A

n

. W drugim przypadku s ˛

a to

elementy, które nale˙z ˛

a do

A

n

+1

, a tak˙ze do pewnej parzystej liczby zbiorów spo´sród

A

1

, . . . , A

n

. Razem mamy wszystkie elementy nale˙z ˛

ace do nieparzystej liczby zbiorów

spo´sród

A

1

, . . . , A

n

+1

.

2

1.5

Iloczyn kartezja ´nski

Para uporz ˛

adkowana jest to dwuelementowy ci ˛

ag

(x, y). Mamy (x, y) = (u, v) wtedy i

tylko wtedy gdy

x = 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 Dla

A = {1, 3, 5} 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|.

background image

8

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

1.6

Rodzina zbiorów

Czasami b˛edziemy mieli do czynienia ze zbiorem, którego elementami s ˛

a zbiory. Przez

P(A)

lub

2

A

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

A.

Przykład 1.7 Dla

A = {a, b}

P(A) = {∅, {a}, {b}, {a, b}}.

Zbiór zbiorów nazywamy czasami rodzin ˛

a zbiorów. Na przykład

A = {A

1

, A

2

, A

3

, A

4

}

jest rodzin ˛

a zawieraj ˛

ac ˛

a cztery zbiory

A

1

,

A

2

,

A

3

i

A

4

, s ˛

a to elementy zbioru

A. Mo˙zemy

te˙z zapisa´c

A = {A

i

| 1 ≤ i ≤ 4}.

Mo˙zemy sumowa´c zbiory z rodziny. Suma

k

[

i

=1

A

i

zawiera te elementy, które nale˙z ˛

a do którego´s ze zbiorów

A

1

,

A

2

, ... ,

A

k

, czyli

k

[

i

=1

A

i

= {x | ∃

i

1≤i≤k

x ∈ A

i

}.

Inaczej mo˙zemy to zapisa´c:

k

[

i

=1

A

i

= A

1

∪ A

2

∪ . . . ∪ A

k

.

B˛edziemy te˙z u˙zywa´c zapisu

[

i∈I

A

i

na oznaczenie sumy wszystkich zbiorów

A

i

, których indeksy nale˙z ˛

a do zbioru

I. Zacho-

dzi wtedy

[

i∈I

A

i

= {x | ∃

i∈I

x ∈ A

i

}.

Zbiór indeksów sumowania mo˙ze by´c okre´slony za pomoc ˛

a warunku.

[

1<i<6

A

i

= A

2

∪ A

3

∪ A

4

∪ A

5

.

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

Lemat 1.8

C ∩

[

i∈I

A

i

=

[

i∈I

(C ∩ A

i

)

background image

1.6. Rodzina zbiorów

9

Dowód: We´zmy dowolny element

x ∈ C ∩

S

i∈I

A

i

. Wtedy

x nale˙zy do C i do którego´s

ze zbiorów

A

i

, czyli dla jakiego´s

i ∈ I, x nale˙zy do C ∩A

i

, a to znaczy, ˙ze

x ∈

S

i∈I

(C ∩

A

i

).

We´zmy z kolei dowolny element

x ∈

S

i∈I

(C ∩ A

i

). Wtedy x nale˙zy do C ∩ A

i

dla jakiego´s

i ∈ I, czyli x nale´zy do C i do sumy

S

i∈I

A

i

, czyli nale˙zy do przekroju

C ∩

S

i∈I

A

i

.

2

Mo˙zemy te˙z bra´c przekroje zbiorów z rodziny. Przekrój

k

\

i

=1

A

i

zawiera te elementy, które nale˙z ˛

a do wszystkich zbiorów

A

1

,

A

2

, ... ,

A

k

, czyli

k

\

i

=1

A

i

= {x | ∀

i

1≤i≤k

x ∈ A

i

}.

Inaczej mo˙zemy to zapisa´c:

k

\

i

=1

A

i

= A

1

∩ A

2

∩ . . . ∩ A

k

.

B˛edziemy te˙z u˙zywa´c zapisu

\

i∈I

A

i

na oznaczenie przekroju wszystkich zbiorów

A

i

, których indeksy nale˙z ˛

a do zbioru

I.

Zachodzi wtedy

\

i∈I

A

i

= {x | ∀

i∈I

x ∈ A

i

}.

Zbiór indeksów przekroju mo˙ze by´c okre´slony za pomoc ˛

a warunku:

\

1<i<6

A

i

= A

2

∩ A

3

∩ A

4

∩ A

5

.

Przykład 1.9 We´zmy rodzin˛e zło˙zon ˛

a z trzech zbiorów

A

1

= {4, 6, 8}A

2

= {4, 5, 6},

A

3

= {4, 5, 8, 9}.

3

[

i

=1

A

i

= {4, 5, 6, 8, 9},

3

\

i

=1

A

i

= {4}.

Przykład 1.10 Niech

I = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} b˛edzie zbiorem indeksów. Dla ka˙z-

dego

i ∈ I okre´slamy zbór A

i

= {x ∈ N | 1 ≤ x ≤ i}. Mamy:

[

i∈I

A

i

= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10},

\

i∈I

A

i

= {1},

[

1<i<7

A

i

= {1, 2, 3, 4, 5, 6},

\

1<i<7

A

i

= {1, 2}.

background image

10

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

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ów

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˛edzi

e = {u, v} mówimy, ˙ze ł ˛

aczy wierzchołki

u i v, a o wierzchołkach u i v, ˙ze

s ˛

a ko´ncami kraw˛edzi

e. Wierzchołki poł ˛

aczone kraw˛edzi ˛

a nazywamy s ˛

asiednimi. Stopie´n

wierzchołka

v, 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 łukami).

Rysunek 1.1: Przykład grafu

a

b

c

d

e

f

g

Przykład 1.12 Rysunek 1.1 przedstawia graf

G = (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ów

wynosi 4, wierzchołki s ˛

a stopnia 3, wierzchołki

be

stopnia 2.

Graf

H = (V

H

, E

H

) nazywamy podgrafem grafu G = (V

G

, E

G

), je˙zeli V

H

⊆ V

G

oraz

E

H

⊆ E

G

.

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

Graf pełny o

n wierzchołkach, oznaczany przez K

n

, jest to graf z

n wierzchołkami,

w którym ka˙zde dwa wierzchołki poł ˛

aczone s ˛

a kraw˛edzi ˛

a.

Droga lub ´scie˙zka w grafie

G = (V

G

, E

G

) jest to ci ˛

ag wierzchołków

v

0

, v

1

, . . . , v

k

,

taki, ˙ze dla ka˙zdego

i, 1 ≤ i ≤ k, wierzchołki v

i−

1

,

v

i

s ˛

a poł ˛

aczone kraw˛edzi ˛

a, czyli

{v

i−

1

, v

i

} ∈ E

G

. O drodze

v

0

, v

1

, . . . , v

k

mówimy, ˙ze ł ˛

aczy wierzchołki

v

0

i

v

k

. Mówi-

my tak˙ze, ˙ze wierzchołek

v

k

jest osi ˛

agalny z wierzchołka

v

0

. Droga jest zamkni˛eta je˙zeli

background image

1.7. Grafy (nieskierowane)

11

Rysunek 1.2: Graf pełny

K

6

.

a

b

c

d

e

f

v

0

= v

k

. Droga jest prosta, je˙zeli wszystkie wyst˛epuj ˛

ace w niej wierzchołki s ˛

a ró˙zne.

Drog˛e

v

0

, v

1

, . . . , v

k

nazywamy cyklem je˙zeli

v

0

= v

k

,

k ≥ 3 oraz wszystkie wierzchołki

v

1

, . . . , v

k

s ˛

a ró˙zne.

Przykład 1.14 W grafie z rysunku 1.1 ci ˛

ag

eadabcjest drog ˛

a, a ci ˛

ag

ae,

djest cyklem. Ci ˛

ag

a, e, f, d, a, b, c, g, a jest drog ˛

a zamkni˛et ˛

a, ale nie jest cyklem.

Graf

G jest spójny, je˙zeli dla ka˙zdych dwóch wierzchołków u, v ∈ V

G

istnieje ´scie˙zka

ł ˛

acz ˛

aca

u i v.

Lemat 1.15 Je˙zeli istnieje droga ł ˛

acz ˛

aca wierzchołki

vu 6= v, to istnieje te˙z droga

prosta ł ˛

acz ˛

aca

v.

Dowód: Niech

u = v

0

, v

1

, . . . , v

k

= v, b˛edzie najkrótsz ˛

a drog˛e ł ˛

acz ˛

ac ˛

a

u i v. Droga

ta jest prosta. Przypu´s´cmy bowiem, ˙ze

v

i

= v

j

, dla jakiego´s

i < j; mieliby´smy wtedy

krótsz ˛

a drog˛e

u = v

0

, . . . , v

i

, v

j

+1

, . . . , v

k

= 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 cyklu

a, b, c, g, a na rysunku 1.1, wierzchołki a i c ł ˛

aczy droga

a, b, c oraz

droga

a, 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.16 Je˙zeli w grafie istniej ˛

a dwa wierzchołki

vu 6= v które mo˙zna poł ˛

aczy´c

dwoma ró˙znymi drogami prostymi, to w grafie istnieje cykl.

Dowód: Niech

u = v

0

, v

1

, . . . , v

k

= v oraz u = w

0

, w

1

, . . . , w

l

= v, b˛ed ˛

a dwoma

ro˙znymi prostymi drogami ł ˛

acz ˛

acymi

u i v. Mo˙zemy zało˙zy´c, ˙ze v

1

6= w

1

(w przeciw-

nym przypadku mo˙zemy usun ˛

a´c wspólny pocz ˛

atek obu dróg). Niech

v

i

b˛edzie pierw-

szym wierzchołkiem po

v

0

, który wyst˛epuje w drodze

w

0

, w

1

, . . . , w

m

, i niech

v

i

= w

j

.

background image

12

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

Wierzchołki

v

1

, . . . , v

i−

1

nie wyst˛epuj ˛

a w drodze

w

0

, w

1

, . . . , w

m

i droga

v

0

, . . . , v

i

=

w

j

, w

j−

1

, . . . , w

1

, w

0

= v

0

tworzy cykl (w drodze tej wyst˛epuj ˛

a conajmniej trzy ró˙zne

wierzchołki

v

0

,

v

1

oraz

w

1

).

2

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

Drzewa

Definicja 1.17 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.18 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.9

Drzewa ukorzenione

Definicja 1.19 Drzewo ukorzenione to drzewo z wyró˙znionym jednym wierzchołkiem.
Wyró˙zniony wierzchołek nazywamy korzeniem drzewa.

Ka˙zdy wierzchołek

v 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łka

v. Pozastali

s ˛

asiedzi s ˛

a synami wierzchołka

v. 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.20 Je˙zeli w drzewie z rysunku 1.3 wyró˙znimy wierzchołek

jako korze´n, to

ojcem wierzchołka

jest wierzchołek d, synami wierzchołka s ˛

a wierzchołki

eb.

Wierzchołki

eoraz s ˛

a li´sciami.

background image

1.10. Grafy skierowane

13

Rysunek 1.4: Drzewo ukorzenione

d

f

a

e

g

b

c

Zwykle drzewo ukorzenione rysujemy tak jak na rysunku 1.4. 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.

1.10

Grafy skierowane

Definicja 1.21 Graf skierowany (zorientowany) to dowolna para

G = (V, E), ze sko´n-

czonym zbiorem wierzchołków

i zbiorem kraw˛edzi E ⊆ V × V .

Rysunek 1.5: Graf skierowany

a

b

c

d

e

W grafie skierowanym kraw˛ed´z

e = (u, v) jest skierowana od wierzchołka u do wierz-

chołka

v. 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ów

v

0

, v

1

, . . . , v

k

, taki, ˙ze dla ka˙zdego

i, 1 ≤ i ≤ k,

background image

14

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

wierzchołki

v

i−

1

,

v

i

s ˛

a poł ˛

aczone kraw˛edzi ˛

a, czyli

(v

i−

1

, v

i

) ∈ E. Kraw˛ed´z typu (u, u),

w której pocz ˛

atek i koniec pokrywaj ˛

a si˛e, nazywamy p˛etl ˛

a.

1.11

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.22 Na przykład, je˙zeli

Σ = {a, b}, to Σ

zawiera słowo puste

λ, dwa słowa

jednoliterowe

b, cztery słowa dwuliterowe aaabba bb, osiem słów trzyliterowych

aaaaababa abbbaababbba bbb, i tak dalej.

Długo´s´c słowa

w ∈ Σ 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łów

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

Przykład 1.23 Konkatenacja słów

u = aaba v = abba to sówo uv = aabaabba.

Słowo

u 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łowo

w, ˙ze v = wu.

Przykład 1.24 Na przykład

aba jest prefiksem słowa abaaab, a słowo ab jest sufiksem

słowa

abaaab. 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łowa

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

u = v, albo jedno

ze słów jest prefiksem drugiego, wtedy wcze´sniejszy w porz ˛

adku leksykograficznym jest

prefiks.

Przykład 1.25 W porz ˛

adku leksykograficznym słowo

ab jest wcze´sniejsze od słowa ababa,

a to jest wcze´sniejsze od

abb.

background image

1.12. Zaokr ˛

aglenia

15

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 litery

a) poprzedza słowo b. Dlatego czasami stosuje si˛e inny porz ˛

adek, tak zwany

porz ˛

adek kanoniczny.

Słowo

u 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.26 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.12

Zaokr ˛

aglenia

Wprowad´zmy dwa oznaczenia na zaokr ˛

aglenie liczby rzeczywistej. Dla dowolnej liczby

rzeczywistej

x

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 ˛

aglenie

dxe nazywamy sufitem z x, a zaokr ˛

aglenie

bxc nazywamy podłog ˛

z

x.

Przykład 1.27

d4e = 4,

d4.3e = 5,

d−4e = −4,

d−4.3e = −4.

b4c = 4,

b4.3c = 4,

b−4c = −4,

b−4.3c = −5.

1.13

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.

background image

16

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

Przedrostek

Oznaczenie

Wielokrotno´s´c

exa

E

10

18

peta

P

10

15

tera

T

10

12

giga

G

10

9

mega

M

10

6

kilo

k

10

3

hekto

h

10

2

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

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.

Dane wej´sciowe: ci ˛

ag

a

1

,

a

2

, ... ,

a

n

.

Dane wyj´sciowe: elementy ci ˛

agu w porz ˛

adku niemalej ˛

acym.

n − 1 razy wykonuj

(1) wska˙z na pierwszy element,
(2)

n − 1 razy wykonuj:

(2a) porównaj wskazany element z elementem nast˛epnym,
(2b) je˙zeli porównane elementy s ˛

a w niewła´sciwej kolejno´sci,

to zamie´n je miejscami,

(2c) wska˙z na nast˛epny element.

W poni˙zszej tabeli zilustrowano zastosowanie algorytmu dla ci ˛

agu

(3, 4, 1, 2).

background image

1.14. Notacja asymptotyczna

17

ˆ

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 (instrukcje (1) i (2)) 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 kolejny najwi˛ekszy element
znajdzie swoj ˛

a wła´sciw ˛

a pozycj˛e. Czas działania algorytmu zale˙zy od

n — liczby ele-

mentów w ci ˛

agu. P˛etla zewn˛etrzna (instrukcje (1) i (2)) jest wykowywana

n − 1 razy.

W ka˙zdej iteracji p˛etli zewn˛etrznej p˛etla wewn˛etrzna (instrukcje (2a), (2b) i (2c)) rów-
nie˙z jest wykonywana

n − 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´sci

n algorytm w

sumie wykonuje

c(n − 1)

2

kroków, gdzie

c 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˛e-
dem czasu działania b˛edziemy u˙zywa´c notacji asymptotycznej. Niech

f i g b˛ed ˛

a dwiema

funkcjami okre´slonymi na zbiorze liczb naturalnych o warto´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 wszystkich

n ∈ N, to znaczy istnieje n

0

, takie, ˙ze

g(n) ≤ c · f (n) dla

ka˙zdego

n ≥ n

0

. W takim przypadku mówimy, ˙ze funkcja

g jest O du˙ze od f .

• g(n) = o(f (n)), je˙zeli lim

n→∞

g

(n)

f

(n)

= 0. W takim przypadku mówimy, ˙ze funk-

cja

g 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 wszystkich

n ∈ N. W takim przypadku mówimy, ˙ze funkcja g jest Omega

du˙ze od

f .

• g(n) = Θ(f (n)), je˙zeli istniej ˛

a dwie dodatnie stałe

c

1

, c

2

> 0 takie, ˙ze c

1

· f (n) ≤

g(n) ≤ c

2

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

funkcja

g jest Theta du˙ze od f .

background image

18

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

Je˙zeli

g(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 funkcji

g jest nie wi˛ekszy od rz˛edu funkcji f .

Przykład 1.28

• Czas działania algorytmu sortowania b ˛

abelkowego jest

O(n

2

).

• n = O(3n − 2).

• 3n − 2 = O(n).

• n

3

+ n

2

− n = O(n

3

).

• n

3

= O(2

n

).

• n

2

log n = O(n

3

).

B˛edziemy dopuszcza´c notacj˛e asymptotyczn ˛

a tak˙ze wobec funkcji, które s ˛

a dodatnie

dla prawie wszystkich liczb naturalnych. Na przykład

n

2

− 3n = O(n

2

).

Je˙zeli

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

Przykład 1.29

• n

2

= o(n

3

).

• n = o(n log n).

• n

3

= o(2

n

).

Je˙zeli

g(n) = Θ(f (n)), to g i f s ˛

a tego samego rz˛edu, czyli

g(n) = O(f (n)) oraz

f (n) = O(g(n)).

Przykład 1.30

• n

2

= Θ(n

2

+ n).

• n = Θ(n + log n).

Nast˛epuj ˛

acy lemat jest bardzo u˙zyteczny przy szacowaniu asymptotycznym. Jego do-

wód zostawiamy jako ´cwiczenie.

Lemat 1.31 Je˙zeli granica

lim

g

(n)

f

(n)

istnieje i jest wła´sciwa (nie jest równa

), to g(n) =

O(f (n)).

Wniosek 1.32 Je˙zeli

g(n) = o(f (n)), to g(n) = O(f (n)).

Nast˛epuj ˛

acy przykład pokazuje, ˙ze oszacowanie asymptotyczne mo˙ze by ´c czasem zawod-

ne.

Przykład 1.33 We´zmy dwie funkcje

f (n) = 300n oraz g(n) = n log

2

n. Mamy f (n) =

o(g(n)), ale f (n) ≥ g(n) dla wszystkich n ≤ 2

300

, czyli dla wszystkich liczb mniejszych

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

background image

1.15. Wielomiany

19

Z drugiej jednak strony oszacowanie asymptotyczne wystarczy do naszych celów i

jest łatwiejsze do uzyskania.

Przykład 1.34 Rozwa˙zmy trzy algorytmy: pierwszy działaj ˛

acy w czasie

f

1

(n) = c

1

n,

drugi w czasie

f

2

(n) = c

2

n

3

i trzeci w czasie

f

3

(n) = c

3

2

n

. Funkcje te okre´slaj ˛

a czas

działania na pewnym konkretnym komputerze. Niech

n

1

,

n

2

i

n

3

oznazczaj ˛

a długo´sci

wej´s´c, dla których algorytmy daj ˛

a odpowied´z w ci ˛

agu jednej sekundy, to znaczy

f

1

(n

1

) =

f

2

(n

2

) = f

3

(n

3

) = 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˙z

f

1

(1000n

1

) = 1000f

1

(n

1

). Dla drugie-

go algorytmu działaj ˛

acego w czasie sze´sciennym mo˙zemy teraz oblicza´c 10 razy dłu˙zsze

dane wej´sciowe, poniewa˙z

f

2

(10n

2

) = 1000f

2

(n

2

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

f

3

(n

3

+ 10) = 1024f

3

(n

3

).

1.15

Wielomiany

Wielomian jest to funkcja postaci

P (x) = a

n

· x

n

+ · · · + a

0

,

gdzie

x jest zmienn ˛

a rzeczywist ˛

a, a

a

0

,

a

1

, ... ,

a

n

s ˛

a stałymi rzeczywistymi, nazywanymi

współczynnikami wielomianu. Stopniem wielomianu

P (x) jest najwi˛eksze takie k, ˙ze

a

k

6= 0, stopie´n oznaczamy, przez st(W (x)). Zwykle pisz ˛

ac

P (x) = a

n

· x

n

+ · · · + a

0

b˛edziemy zakłada´c, ˙ze

a

n

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

a

i

x

i

.

Wielomian, którego wszystkie współczynniki s ˛

a równe zeru nazywamy wielomianem ze-

rowym. Dwa wielomiany

P (x) =

P

n
i

=0

a

i

x

i

oraz

Q(x) =

P

n
i

=0

b

i

x

i

s ˛

a równe je˙zeli

maj ˛

a takie same wspólczynniki, to znaczy je˙zeli

a

i

= b

i

dla ka˙zdego

i.

Wielomiany mo˙zna dodawa´c, odejmowa´c lub mno˙zy´c. Suma, ró˙znica i iloczyn wie-

lomianów

P (x) i Q(x) okre´slone s ˛

a nast˛epuj ˛

aco:

• P (x) + Q(x) =

P

n
i

=0

(a

i

+ b

i

)x

i

,

• P (x) − Q(x) =

P

n
i

=0

(a

i

− b

i

)x

i

,

• P (x) · Q(x) =

P

2n
i

=0

c

i

x

i

,

gdzie

c

i

=

P

i
k

=0

a

k

· b

i−k

oraz

a

k

= 0 i b

k

= 0

dla wszystkich

k > n.

background image

20

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

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

P (x) mo˙zna pomno˙zy´c przez stał ˛

a

a

a · P (x) =

n

X

i

=0

a · a

i

x

i

.

Przykład 1.35 Niech

P (x) = x

2

+ 2x + 1 oraz Q(x) = 2x

2

+ x. Wtedy

P (x) + Q(x) = 3x

2

+ 3x + 1

P (x) · Q(x) = 2x

4

+ 5x

3

+ 4x

2

+ x

3 · P (x) = 3x

2

+ 6x + 3

1.15.1

Dzielenie wielomianów

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

Twierdzenie 1.36 Dla dowolnych dwóch wielomianów

W (x) V (x) istniej ˛

a dwa wielo-

miany

Q(x) R(x) takie ˙ze

(a)

W (x) = V (x) · Q(x) + R(x)

(b)

st(R(x)) < st(V (x))

Wielomian

Q(x) nazywamy ilorazem a R(x) reszt ˛

a z dzielenia

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

Dowód: Najpierw przedstawimy

Algorytm dzielenia wielomianów

Dane wej´sciowe: Dwa wielomiany

W (x) = a

n

x

n

+· · ·+a

0

oraz

V (x) = b

m

x

m

+· · ·+b

0

.

Zakładamy przy tym, ˙ze

a

n

6= 0 i b

m

6= 0, czyli ˙ze W (x) jest stopnia n, a V (x) jest

stopnia

m.

Dane wyj´sciowe: iloraz

Q(x) oraz reszta R(x)

Podstaw

Q(x) := 0 oraz R(x) := W (x);

dopóki

st(R(x)) = k ≥ m wykonuj:
Niech

c

k

x

k

b˛edzie składnikiem

R(x) z najwy˙zszym wykładnikiem.

Podziel

c

k

x

k

przez

b

m

x

m

.

Podstaw

Q(x) := Q(x) +

c

k

b

m

x

k−m

Podstaw

R(x) := R(x) −

c

k

b

m

x

k−m

· V (x)

Je˙zeli

st(R(x)) < m, to
koniec, para

Q(x), R(x) spełnia warunki (a) i (b).

background image

1.15. Wielomiany

21

Aby udowodni´c, ˙ze przedstawiony algorytm poprawnie oblicza iloraz i reszt˛e, poka-

˙zemy, przez indukcj˛e, ˙ze warunek (a) jest spełniony po ka˙zdym kolejnym wykonaniu p˛etli

dopóki. Na pocz ˛

atku welomiany

Q(x) = 0 oraz R(x) = W (x) spełniaj ˛

a warunek (a).

Oznaczmy warto´sci wielomianów

Q(x) i R(x) przed i -tym wykonaniem p˛etli dopóki

przez

Q

1

(x) i R

1

(x), a warto´sci po i -tym wykonanu p˛etli przez Q

2

(x) i R

2

(x). Zakła-

damy przy tym, ˙ze

W (x) = V (x) · Q

1

(x) + R

1

(x), ˙ze stopie´n st(R

1

(x)) ≥ m, oraz ˙ze

c

k

x

k

jest składnikiem

R

1

(x) z najwie˛ekszym wykładnikiem. W trakcie i-tego wykonania

p˛etli nast ˛

api ˛

a podstawienia

Q

2

(x) := Q

1

(x) +

c

k

b

m

x

k−m

oraz

R

2

(x) := R

1

(x) −

c

k

b

m

x

k−m

· V (x).

Mamy teraz

R

1

(x) :=

c

k

b

m

x

k−m

· V (x) + R

2

(x)

oraz

W (x) = Q

1

(x)·V (x)+R

1

(x) = (Q

1

(x)+

c

k

b

m

x

k−m

)·V (x)+R

2

(x) = Q

2

(x)·V (x)+R

2

(x),

czyli

Q(x) oraz R(x) spełniaj ˛

a warunek (a) po

i tym wykonaniu p˛etli.

Zauwa˙zmy, ˙ze stopie ´n wielomianu

R

2

(x) jest mniejszy od stopnia wielomianu R

1

(x),

poniewa˙z w wielomianie

R

2

(x) = R

1

(x) −

c

k

b

m

x

k−m

· V (x). współczynnik przy x

k

jest

równy

0 i stopie´n st(R

2

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

Pokazali´smy wi˛ec, ˙ze wielomian

W (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) = Q

1

(x)V (x) + R

1

(x)

oraz

W (x) = Q

2

(x)V (x) + R

2

(x)

i ˙ze

st(R

1

(x)), st(R

2

(x)) < st(V (x)). Po odj˛eciu tych równo´sci stronami otrzymamy

0 = (Q

1

(x) − Q

2

(x))V (x) + (R

1

(x) − R

2

(x)).

Je˙zeli wielomiany

Q

1

(x) 6= Q

2

(x), to wielomian (Q

1

(x) − Q

2

(x))V (x) ma stopie´n

wi˛ekszy lub równy od

st(V (x)), a wielomian R

1

(x) − R

2

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

Q

1

(x) = Q

2

(x), z tego za´s wynika, ˙ze R

1

(x) = R

2

(x).

Przykład 1.37 Podzielmy wielomian

W (x) = 8x

3

+ 6x

2

+ 3x + 2 przez wielomian

V (x) = 2x − 1 według opisanego wy˙zej algorytmu.

background image

22

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

Najpierw podstawiamy

Q(x) := 0 oraz R(x) := 8x

3

+ 6x

2

+ 3x + 2. Poniewa˙z

st(R(x)) = 3 > 1 = st(V (x)) przechodzimy do p˛etli dopóki Dzielimy składnik 8x

3

przez

2x otrzymuj ˛

ac

4x

2

i podstawiamy

R(x) := R(x) − 4x

2

V (x) = 8x

3

+ 6x

2

+ 3x + 2 − 4x

2

(2x − 1) = 10x

2

+ 3x + 2.

oraz

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

2

= 4x

2

.

Zauwa˙zmy, ˙ze spełniony jest warunek

W (x) = Q(x) · V (x) + R(x).

Poniewa˙z

st(R(x)) jest wi˛ekszy od wykonujemy ponownie instrukcje p˛etli. Dzielimy

składnik

10x

2

przez

2x otrzymuj ˛

ac

5x i podstawiamy

R(x) := R(x) − 5xV (x) = 10x

2

+ 3x + 2 − 5x(2x − 1) = 8x + 2.

oraz

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

2

+ 5x.

(warunek

W (x) = Q(x) · V (x) + R(x) jest spełniony).

Stopie´n

st(R(x)) jest równy 1, wi˛ec wykonujemy ponownie instrukcje p˛etli. Dzielimy

składnik

8x przez 2x otrzymuj ˛

ac

i podstawiamy

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

oraz

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

2

+ 5x + 4.

Warunek

W (x) = Q(x) · V (x) + R(x) jest spełniony i teraz stopie´n st(R(x)) = 0 < 1

wi˛ec algorytm ko´nczy prac˛e. Wielomian

Q(x) = 4x

2

+ 5x + 2 jest ilorazem a wielomian

R(x) = 6 reszt ˛

a.

1.15.2

Schemat Horna

Aby obliczy´c warto´s´c wielomianu

P (x) w jakim´s konkretnym punkcie x

0

mogliby´smy

bezpo´srednio skorzysta´c ze wzoru

P (x

0

) =

P

n
i

=0

a

i

x

i

0

. W ten sposób potrzebujemy, w

najgorszym przypadku, około

n

2

mno˙ze´n. Istnieje jednak sposób wymagaj ˛

acy tylko

n

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

P (x

0

) = ((. . . (a

n

· x

0

+ a

n−

1

) · x

0

+ a

n−

2

) · x

0

+ · · · a

1

) · x

0

+ a

0

.

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ółczynniki

a

0

,

a

1

, ... ,

a

n

wielomianu

P (x) = a

n

· x

n

+ · · · + a

0

oraz argument

x

0

.

Dane wyj´sciowe: warto´s´c wielomianu

y

0

= P (x

0

) = a

n

x

n

0

+ · · · + a

1

x

0

+ a

0

.

y

0

:= a

n

;

dla kolejnych

od do wykonuj

y

0

:= y

0

· x

0

+ a

n−i

background image

1.16. Zadania

23

1.15.3

Pierwiastki wielomianu

Pierwiastkiem wielomianu

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

wielomianu da warto´s´c

W (a) = 0. Zachodzi

Twierdzenie 1.38 (Bézout) Liczba

jest pierwiastkiem wielomianu W (x) wtedy i tylko

wtedy, gdy

W (x) dzieli si˛e przez x−a, czyli, gdy istnieje wielomian Q(x) taki, ˙ze W (x) =

Q(x)(x − a).

Dowód: Je˙zeli

W (x) = Q(x)(x − a), to W (a) = Q(a)(a − a) = 0.

Niech teraz

W (a) = 0. Podzielmy W (x) przez x − a, otrzymamy

W (x) = Q(x)(x − a) + R(x)

przy czym stopie ´n

R(x) jest mniejszy od 1, czyli jest stał ˛

a

R(x) = r. Wstawiaj ˛

ac teraz

a

do obu stron otrzymamy

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

czyli

r = 0 i W (x) = Q(x)(x − a).

2

Wniosek 1.39 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: Niech

a

1

,...,

a

k

b˛ed ˛

a ró˙znymi pierwiastkami wielomianu

W (x). Z twierdzenia

Bézout mamy

W (x) = Q

1

(x)(x − a

1

). Po podstawieniu a

2

mamy

0 = W (a

2

) =

Q

1

(a

2

)(a

2

− a

1

), czyli a

2

, jest pierwiastkiem wielomianu

Q

1

(x). Korzystaj ˛

ac znowu

z twierdzenia Bézout otrzymamy

W (x) = Q

2

(x)(x − a

2

)(x − a

1

), i tak dalej. W ko´ncu

otrzymamy, ˙ze

W (x) jest postaci W (x) = Q(x)(x − a

k

) · · · (x − a

2

)(x − a

1

), czyli

stopie´n

W (x) musi by´c wi˛ekszy od k.

1.16

Zadania

1. Oblicz: a)

P

4
i

=1

i2

i

,

b)

P

3
k

=1

k

3

,

c)

P

4
n

=1

(n

2

−1), d)

P

3
i

=1

P

2
j

=1

ij

2

,

e)

P

2
k

=1

P

4
n

=1

(k − n),

2. Oblicz: a)

Q

5
i

=1

(i + 1), b)

Q

4
k

=1

(2k + 1), c)

Q

4
n

=1

(n

2

− 1).

3. Niech

A = {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. Niech

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

zbór

B

i

= {x ∈ N | i ≤ x ≤ 2i}. Oblicz

S

i∈I

B

i

,

T

i∈I

B

i

,

B

1

⊕ B

3

⊕ B

5

oraz

B1 ⊕ B

2

⊕ B

3

⊕ B

4

⊕ B

5

.

5. Niech

I = {1, 2, 3, 4, 5}. Dla ka˙zdego i ∈ I mamy A

i

= {3i − 3, 3i, 3i + 3}.

Oblicz

S

i∈I

A

i

,

T

i∈I

A

i

, oraz

A

1

⊕ A

2

⊕ B

3

⊕ B

4

⊕ A

5

.

background image

24

Rozdział 1. Podstawowe poj˛ecia, oznaczenia

6. Niech

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

zbór

C

i

= {x ∈ N | 1 ≤ x ≤ 30 oraz i dzieli x}. Oblicz

S

i∈I

C

i

oraz

T

i∈I

C

i

.

7. Niech

A = {1, 2, 3, 4}, B = {1, 2, 3}. Wypisz elementy A × B, B × A oraz

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

8. Niech

X = {a, b, c}. Wypisz elementy X

2

,

X

3

oraz

{(x, y) ∈ X

2

| x 6= y}.

9. Wypisz wszystkie podzbiory: a) zbioru pustego

∅, b) zbioru {a}, c) zbioru {a, b, c, d}.

10. Udowodnij, ˙ze

A ⊂ B wtedy i tylko wtedy gdy A ∩ B = A.

11. Narysuj wszystkie grafy ze zbiorem wierzchołków

V = {a, b, c}. Które z nich s ˛

a

spójne?

12. Narysuj wszystkie drzewa ze zbiorem wierzchołków

V = {a, b, c}.

13. Narysuj wszystkie grafy skierowane ze zbiorem wierzchołków

V = {a, b}.

14. Narysuj graf

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

kraw˛edzi

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

posiada cykle?

15. Narysuj graf skierowany

G = (V, E), ze zbiorem wierzchołków V = {a, b, c, d} i

zbiorem kraw˛edzi

E = {(a, b), (b, c), (c, b), (c, d), (d, d)}.

16. Wypisz 10 pierwszych słów zbioru

{a, b, c}

według porz ˛

adku leksykograficznego

i kanonicznego.

17. Wypisz wszystkie prefiksy i sufiksy słowa

aaba.

18. 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]

19. Udowodnij wzory (1.1), (1.2), (1.3), (1.4).

20. Udowodnij lemat 1.31,

21. Udowodnij zale˙zno´sci z przykładów 1.28, 1.29, 1.30.

22. Niech

x, y b˛ed ˛

a dowolnymi liczbami rzeczywistymi, a

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

background image

1.16. Zadania

25

23. Podaj przykład liczb rzeczywistych

x i y, dla których zachodzi a) bx + yc > bxc +

byc, b) dx + ye < dxe + dye.

24. Podaj przykład liczby rzeczywistej

x i liczby całkowitej k, dla których zachodzi

dk · xe < k · dxe.

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

26. Dane s ˛

a dwa wielomiany

U (x) = 4x

3

+ 3x + 2 oraz V (x) = 2x

4

+ x

2

+ 3x. Oblicz

ich sum˛e oraz iloczyn. Oblicz według schematu Horna warto´sci

U (1) oraz V (1).

27. Podziel wielomian

U (x) = 4x

4

+ 3x

2

+ x − 2 przez V (x) = x

2

+ x.