You are on page 1of 120

Sveuilite u Dubrovniku

Odjel za elektrotehniku i raunarstvo

LOGIKA, SKUPOVI
I
DISKRETNA MATEMATIKA

SKRIPTA

Nagovor na ljepote matematike


predstavljen na zanimljiv i pouan nain

ANDREJ NOVAK
ANDRIJA TAJDUHAR

Dubrovnik, 2013.

Predgovor
Ova skripta je pisana za kolegij Logika, skupovi i diskretna matematika

koji se odrava u zimskom semestru druge godine na studiju primi-

jenjenog/poslovnog raunarstva na Sveuilitu u Dubrovniku.


prilagoena satnici od

2+2

Skripta je

sata tjedno (30 sati predavanja i 30 sati vjebi).

Tekst je pisan tako da od studenata oekuje poznavanje osnova matematike analize i linearne algebre. Osim teorijskih rezultata, tekst sadri puno
primjera koji mogu doprinijeti razumijevanju izloene materije.
zahvaljuju recenzentima prof.dr.sc.

Sanji Varoanec i prof.dr.sc.

Autori se
Mladenu

Vukoviu na detaljnom itanju rukopisa i mnogim korisnim savjetima.


Autori

Sadraj
1

Logika

1.1

Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Propozicionalna logika . . . . . . . . . . . . . . . . . . . . . .

1.2.1

Jezik propozicionalne logike . . . . . . . . . . . . . . .

1.2.2

Interpretacije . . . . . . . . . . . . . . . . . . . . . . .

Predikatna logika . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Jezik predikatne logike . . . . . . . . . . . . . . . . . .

1.3.2

Kvantikatori . . . . . . . . . . . . . . . . . . . . . . .

10

1.3.3

Poredak i negacije

12

. . . . . . . . . . . . . . . . . . . .

Skupovi i funkcije
2.1

1.3.1

15

Osnovni pojmovi

. . . . . . . . . . . . . . . . . . . . . . . . .

15

2.1.1

Skupovi

. . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.1.2

Relacije

. . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.1.3

Funkcije . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.2

Konani i prebrojivi skupovi . . . . . . . . . . . . . . . . . . .

23

2.3

Neprebrojivi skupovi . . . . . . . . . . . . . . . . . . . . . . .

25

2.4

Naelo matematike indukcije . . . . . . . . . . . . . . . . . .

28

Prebrojavanja

33

3.1

Osnovna naela . . . . . . . . . . . . . . . . . . . . . . . . . .

33

3.2

Dirichletovo naelo . . . . . . . . . . . . . . . . . . . . . . . .

35

3.3

Permutacije . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

3.4

Kombinacije . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

3.5

Generalizacije binomnog teorema . . . . . . . . . . . . . . . .

44

3.6

Formula ukljuivanja-iskljuivanja . . . . . . . . . . . . . . . .

47

Funkcije izvodnice i primjene


4.1

55

Obine i eksponencijalne funkcije izvodnice


4.1.1

Obine funkcije izvodnice

4.1.2

Eksponencijalne funkcije izvodnice

. . . . . . . . . .

. . . . . . . . . . . . . . . .

55
56

. . . . . . . . . . .

60

4.2

Rekurzivne relacije . . . . . . . . . . . . . . . . . . . . . . . .

63

4.3

Catalanovi brojevi

69

. . . . . . . . . . . . . . . . . . . . . . . .
i

ii

SADRAJ

Sloenost algoritama

75

5.1

Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

5.1.1

Osnovni pojmovi . . . . . . . . . . . . . . . . . . . . .

76

5.1.2

Asimptotsko ponaanje, veliko O

5.2

Algoritmi

. . . . . . . . . . . .

78

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

5.2.1

Pretraivanje

. . . . . . . . . . . . . . . . . . . . . . .

82

5.2.2

Sortiranje . . . . . . . . . . . . . . . . . . . . . . . . .

84

Kriptograja
6.1

6.2

6.3

6.4

91

Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

6.1.1

Osnovni pojmovi . . . . . . . . . . . . . . . . . . . . .

91

6.1.2

Sigurnost i vrste napada . . . . . . . . . . . . . . . . .

93

6.1.3

Jednokratna biljenica . . . . . . . . . . . . . . . . . .

Blokovni kriptosustavi

96

. . . . . . . . . . . . . . . . . . . . . .

98

. . . . . . . . . . . . . . . . . . . . .

98

6.2.1

Osnovni principi

6.2.2

Data Encryption Standard (DES) . . . . . . . . . . . . 101

6.2.3

Advanced Encryption Standard (AES) . . . . . . . . . 106

Kriptograja javnog kljua . . . . . . . . . . . . . . . . . . . . 108


6.3.1

RSA kriptosustav . . . . . . . . . . . . . . . . . . . . . 108

6.3.2

Die-Hellmanov protokol

Primjena kriptograje

. . . . . . . . . . . . . . . . 110

. . . . . . . . . . . . . . . . . . . . . . 111

6.4.1

Cryptocat . . . . . . . . . . . . . . . . . . . . . . . . . 111

6.4.2

Tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

6.4.3

TrueCrypt . . . . . . . . . . . . . . . . . . . . . . . . . 112

Literatura

114

Poglavlje 1

Logika
Tradicionalno kroz povijest matematiari i lozo razvijali su i prouavali
znanstvenu disciplinu nazvanu matematika logika. Posebice su to bili oni
koje su zanimala fundamentalna pitanja u brojnim znanostima.

Logika je

danas razvijena i vrlo vana u matematici i drugim znanostima, a pogotovo


u raunarstvu.

1.1 Uvod
Matematika se razlikuje od drugih znanstvenih disciplina u tome to rezultati poivaju na preciznom zakljuivanju, dok drugdje u znanosti do njih
dolazimo iskustvom i paljivim promatranjem svijeta. Matematika logika
bavi se formaliziranjem i analizom tih procesa kojima u matematici dolazimo
do rezultata.
Temelji logike postavljeni su u antikoj Grkoj. Prvim logiarima smatraju se Parmenid, Zenon, Sokrat, Platon, Euklid iz Megare, a vrhunac stvaranja u tom razdoblju postie Aristotel. On je prvi uspio sistematizirati do
tada poznate metode rasuivanja te pokuao sustavno opisati sva logika
rasuivanja pomou nevelikog broja pravila. Mogli bismo rei da je otkrio
formalnu prirodu logikog zakljuivanja.

Primjer takvog zakljuivanja je

sljedei:
Ako pada kia, ulice su mokre. Danas pada kia.
Prema tome ulice su mokre.
Primijetimo da prilikom zakljuivanja nije potrebno razumijevati pojmove
kia, mokre i pada. Zapis ovakvog zakljuivanja moemo izvesti i koristei simbole
Ako A onda B. Vrijedi A.
Prema tome vrijedi B.
1

POGLAVLJE 1.

LOGIKA

Postupak moemo i automatizirati i on se danas uvelike koristi u podruju


umjetne inteligencije. Disciplina u kojoj prouavamo odnose izmeu formi
na ovakav nain nazivamo propozicionalna logika ili logika sudova.
Prisjetimo se nekih osnovnih pojmova vanih za daljnja razmatranja.
Jedan od sredinjih pojmova u ovom udbeniku je skup. Skup je pojam koji
ne deniramo, ve ga intuitivno poimamo kao bilo koju mnoinu elemenata.
Skup ne ovisi o poretku elemenata u njegovu zapisu, a pri zadavanju skupa
iste elemente ne navodimo vie puta.
onda to biljeimo s

Ako se element

nalazi u skupu

a A.

Navedimo nekoliko dobro poznatih primjera skupova:


1. Skup prirodnih brojeva
2. Skup cijelih brojeva

N = {1, 2, 3, . . .};

Z = {. . . , 2, 1, 0, 1, 2, . . .};

3. Skup racionalnih brojeva

Q = { ab : a Z, b N};

4. Skup iracionalnih brojeva

I koji sadri brojeve koje ne moemo


napisati

, e, 2, ...

u obliku razlomka cijelih brojeva, njemu pripadaju


5. Skup realnih brojeva

R koji sadri sve racionalne i iracionalne brojeve;

6. Skup kompleksnih brojeva

C = {z = x + iy : x, y R},
i2 = 1.

pri emu je

imaginarna jedinica odnosno

Odmah moemo primijetiti da smo u prethodnim primjerima skupove zadali na dva naina:

navoenjem njegovih elemenata kao to je to bilo u

primjerima 1. i 2. ili pravilom koje zadovoljavaju njegovi elementi, kao u


primjerima 3. i 6. Pretpostavimo da postoji pravilo
mente

skupa

ili vrijedi ili ne vrijedi.

P (x)

koje za sve ele-

Moemo denirati novi skup

piui sljedee

B = {x A : vrijedi P (x)}.
B sastoji od svih elemenata x koji su u skupu
P (x). O detaljima ovakve karakterizacije bavimo

Ovime elimo rei da se skup

i za koje vrijedi pravilo

se u ovom poglavlju.
Skup koji sadri sve elemente skupova
i

B.

Tako je skup

AiB

u primjeru 5. unija skupova

nazivamo unija skupova

Q i I.

1.2 Propozicionalna logika


Reenice moemo promatrati i kao logike forme te ispitivati njihovu istinitost, identicirajui u njima atomarne dijelove povezane veznicima. Pritom
takve reenice nazivamo sudovima. Mogli bismo rei da je sud svaka izjavna
reenica kojoj moemo ispitati istinitost i koja nije istovremeno istinita i
neistinita. Neki primjeri su

1.2.

PROPOZICIONALNA LOGIKA

1. Broj 7 je prirodan broj. (istinit sud)


2. Broj

je cijeli broj. (laan sud)

3. Koliko je sati? (nije sud)


4. Ova reenica je lana. (nije sud)
Promotrimo detaljnije etvrti primjer. Kada bismo pretpostavili da je istinit,
onda bi bio laan i obratno. Prema tome ne moemo ustanoviti je li istinit
ili laan.

1.2.1 Jezik propozicionalne logike


Kako bismo mogli precizno prouavati logike forme, potrebno je denirati
osnovne pojmove, od kojih emo kasnije graditi teoriju. Za poetak, ustanovimo sve simbole kojima emo se koristiti, a koji nazivamo alfabet. Jezikom
smatramo sve konane nizove dobivene koritenjem simbola zadanog alfabeta, koje zovemo rijei.

Denicija 1.1. Alfabet propozicionalne logike je unija sljedeih skupova

{P0 , P1 , P2 , . . .}

skup ije elemente nazivamo


propozicionalne varijable,

{, , , , }
{(, )}

skup logikih veznika,


skup pomonih simbola (zagrade).

Moemo zamisliti da se propozicionalnim varijablama predstavljaju sudovi, no mogu posojati i druge interpretacije, npr.

elektronikih logikih

sklopova. Logike veznike koje smo naveli nazivamo redom:

konjunkcija (i),

kondicional

disjunkcija (ili),
(ako i samo ako).

negacija (ne),
bi-

kondicional (ako-onda) i

Ne zanimaju nas sve rijei deniranog alfabeta, ve samo one koje nazivamo formule.

Denicija 1.2. Atomarna formula je svaka propozicionalna varijabla. Pojam formule deniramo rekurzivno:
1. svaka atomarna formula je formula;

A i B formule, tada su i rijei (A), (AB), (AB), (A B)


(A B) takoer formule;

2. ako su
i

3. rije alfabeta propozicionalne logike je formula ako je nastala primjenom konano mnogo koraka pravila 1. i 2.

POGLAVLJE 1.

Primijetimo da u deniciji

AiB

LOGIKA

nisu formule nego oznake za formule, tj.

to nisu simboli jezika ve metasimboli. Po dogovoru emo velikim slovima

(A, B, C, . . .)

(P, Q, R, S, . . .) propozicionalne varijaA propozicionalne logike u kojoj se pojavljuju varijable


oznaavamo s A(P, Q, R) je
oznaavati formule, a s

ble. Primjer formule

P, Q i R,

to

((P (Q)) (Q R)).


Zbog jednostavnosti i itljivosti uvodimo neke dogovorne pokrate u pisanju
zagrada:

Obino emo ispustiti vanjske zagrade oko formule.


primjer pisati

AB

umjesto

Tako emo na

(A B).

Uvodimo prioritete logikih veznika. Na primjer, rei emo da


prioritet nad

A B .

pa emo formulu

((A) B)

ima

krae zapisivati kao

Redoslijed prioriteta logikih veznika od najveeg do naj-

manjeg je



U isti redak su stavljeni simboli koji imaju isti prioritet.

Prilikom ponavljanja istih veznika


tj.

ABC

je skraeni zapis za

Sada prethodno navedenu formulu

, , , , grupiramo
(A (B C))

A(P, Q, R)

ih udesno,

moemo krae zapisati kao

P Q Q R,
no ponekad je bolje zbog preglednosti pisati (barem neke) zagrade.
Propozicionalne varijable koristimo kao pomo prilikom zakljuivanja,
ba kao to su ih koristili i prvi logiari. One pojednostavljuju zapis i doputaju nam da prouavamo odnose meu njima bez optereenja s razumijevanjem pojmova koje one predstavljaju. Kao atomarne formule zapisujemo
sudove koje ne moemo dodatno rastaviti koristei logike veznike i druge
atomarne formule.

Primjer 1.1. Diplomatskom ataeu dodijeljen je zadatak organizacije veleposlanskog bala. Zbog vrlo sloenih dravnikih odnosa, nastupili su sljedei
zahtjevi:
1. Ambasador nalae da se pozove Peru ili da se ne pozove Qatar.
2. Konzul eli pozvati Qatar ili Rumunjsku ili oboje.
3. Zbog nedavnog diplomatskog incidenta ne bi bilo primjereno pozvati istovremeno i Peru i Rumunjsku.

1.2.

PROPOZICIONALNA LOGIKA

Koga e atae pozvati?


Prethodne zahtjeve moemo zapisati i pomou simbola. Propozicionalnu
varijablu koja predstavlja je li neka drava pozvana ili nije oznaavat emo
s poetnim slovom te drave. Na taj nain dobivamo uvjete:
1.

P Q

2.

QR

3.

(P R)

Svaki od ovih uvjeta treba biti zadovoljen istovremeno. To znai njihovu konjunkciju, odnosno da sve uvjete koji su postavljeni moemo zapisati jednom
formulom

(P Q) (Q R) ((P R)).
No kako emo provjeriti za koju kombinaciju pozivanja i nepozivanja drava
e ova formula biti ispunjena? Vidimo da istinitost formule ovisi o interpre-

taciji atomarnih formula koje se u njoj pojavljuju.

1.2.2 Interpretacije
Denicija 1.3. Svako preslikavanje sa skupa svih propozicionalnih varijabli
u skup

{0, 1},

tj.

I : {P0 , P1 , . . .} {0, 1}

Denicija 1.4. Neka je

nazivamo interpretacijom.

interpretacija. Tada vrijednost interpretacije

na proizvoljnoj formuli deniramo rekurzivno:

I(A) = 1

ako i samo ako

I(A) = 0;

I(A B) = 1

ako i samo ako

I(A) = 1

I(A B) = 1

ako i samo ako

I(A) = 1

ili

I(B) = 1;

I(A B) = 1

ako i samo ako

I(A) = 0

ili

I(B) = 1;

I(A B) = 1

ako i samo ako

I(A) = I(B);

I(B) = 1;

Denicija 1.5. Neka su

A i B formule. Kaemo da formula B logiki


A i oznaavamo s A = B ako za svaku interpretaciju I , za koju
je I(A) = 1 vrijedi I(B) = 1.
Kaemo da su formule A i B logiki ekvivalentne i oznaavamo A
B ako za svaku interpretaciju I vrijedi I(A) = I(B).
slijedi iz

Primjer 1.2. Sljedei parovi formula su logiki ekvivalentni

A A
(A (B C)) ((A B) (A C))
(A (B A)) A
(A B) (A B)
(A B) (A B)
(A B) ((A B) (A B))

POGLAVLJE 1.

Ako je vrijednost interpretacije


tada kaemo da je

F jednaka 1, tj. I(F ) = 1,


I . Ako je I(F ) = 0, tada
interpretaciju I .
na formuli

istinita za interpretaciju

kaemo da je formula neistinita za

Primjer 1.3. Formula

0,

LOGIKA

P Q istinita je za interpretaciju I1 (P ) = 1, I1 (P ) =
I1 (P ) = 0, I1 (P ) = 0.

a neistinita za interpretaciju

Denicija 1.6. Za formulu


postoji interpretacija
Za formulu

kaemo da je ispunjiva, odnosno oboriva ako

takva da vrijedi

I(F ) = 1,

odnosno

I(F ) = 0.

kaemo da je tautologija (valjana ili identiki istinita) ako

je istinita za svaku interpretaciju.


Za formulu

kaemo da je antitautologija (identiki neistinita) ako je

neistinita za svaku interpretaciju.


Trivijalni primjeri su

A A

za tautologiju i

A A

za antitautologiju.

Primjer 1.4. Sljedee dvije formule su tautologije.

(P Q) P Q
(P Q) P Q
Ove formule nazivamo De Morganov princip.
Nije teko vidjeti da za proizvoljne formule

AiB

vrijedi

A B

ako i samo ako je

AB

valjana formula.

A = B

ako i samo ako je

AB

valjana formula.

A B , odnosno A = B
A B , odnosno A B valjana.

To znai da je za ispitivanje vrijedi li


vidjeti je li formula

dovoljno

Vrijednosti interpretacije moemo preglednije prikazati i pomou seman-

tike tablice. Na taj nain moemo denirati vrijednosti i za sloenije formule.

P
0
0
1
1

Q
0
1
0
1

Q P Q P Q P Q P Q
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1

Napomena 1. Primijetimo da smo interpretaciju logikog veznika

deni-

rali inkluzivno. U prirodnom jeziku on je deniran ekskluzivno, to znai da


ako kaemo da trebamo kupiti banane ili jagode podrazumijevamo da emo
kupiti jedno od toga, ne i oboje.
Pokuajmo napisati formulu koja e biti istinita samo onda kada je tono
jedna od dvije propozicionalne varijable istinita, odnosno ili u prirodnom
jeziku.

Dobro je poeti od formule

istovremeno istinite.

P Q

te dodati uvjet da

nisu

1.3.

PREDIKATNA LOGIKA

P
0
0
1
1

Q
0
1
0
1

P Q (P Q) (P Q) (P Q)
0
1
0
1
1
1
1
1
1
1
0
0

Kratko emo ekskluzivno ili oznaavati s

Ova operacija vrlo je korisna,

primjerice u kriptograji, kao to emo vidjeti u posljednjem poglavlju.


Prisjetimo se formule iz primjera (1.1),

(P Q) (Q R) ((P R)),
koju sada zapisujemo u semantikoj tablici i ispitujemo istinitost za sve interpretacije.

P
0
0
0
0
1
1
1
1

Q R
0 0
0 1
1 0
1 1
0 0
0 1
1 0
1 1

P Q Q R (P R) (P Q) (Q R) ((P R))
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0

Atae sada moe konano iz tablice zakljuiti da postoje dvije interpretacije


za koje je njegova formula istinita.

Na primjer, jedan nain na koji on

moe zadovoljiti sve dane mu uvjete je pozvati Peru i Qatar, a izostaviti


Rumunjsku.

1.3 Predikatna logika


Logika koju smo upoznali u prethodnom poglavlju ustanovljuje odnose izmeu propozicionalnih varijabli koristei logike veznike koje koristimo u
prirodnom jeziku, poput ne, ili, ako ... onda. Iako moe biti korisna, propozicionalna logika nije dovoljno snana da se pomou nje formalizira veina
matematikog zakljuivanja. Na primjer, ona ne poznaje kvantikatore za

svaki i postoji. Predikatna logika, ponekad nazivana i logika prvog reda uvodi
te kvantikatore i dovoljna je za veinu zakljuivanja u matematici.
Prije formalnosti koje nas oekuju kao i prilikom deniranja propozicionalne logike, dajemo neformalni uvod u predikatnu logiku. U matematici
esto koristimo strukture koje se sastoje od skupa elemenata, kao i nekih
operacija na njima ili odnosa meu njima. Na primjer, grupa je skup elemenata s binarnom operacijom deniranom na tim elementima koja zadovoljava

POGLAVLJE 1.

LOGIKA

neke uvjete. U veini sluajeva koristimo simbole kako bi oznaili operacije


ili odnose meu elementima skupova, varijable, logike veznike poput ne
ili postoji te koristimo dodatne simbole poput zagrada kako bismo zapisali
neke injenice o strukturi koju prouavamo. Primjerice, ako je

(G, )

grupa,

svojstvo asocijativnosti moemo zapisati kao

xyz x (y z) = (x y) z,
gdje pretpostavljamo da su

x, y

varijable koje predstavljaju elemente

grupe. Vidimo da e naa logika trebati sadravati te simbole. Takoer e,


kao i prije, biti potrebno zadati pravila prema kojima emo iz alfabeta slagati
formule.

1.3.1 Jezik predikatne logike


Denicija 1.7. Alfabet predikatne logike je unija sljedeih skupova

{x0 , x1 , x2 , . . .}

prebrojiv skup ije elemente nazivamo individualne varijable;

{, , , , , , }
{(, )}
{ck : k N}

skup logikih simbola;


skup pomonih simbola (zagrade);
skup ije elemente nazivamo konstantskim simbolima;

{Rknk : k N}

skup ije elemente nazivamo relacijskim simbolima. Prirodan broj

nk

naziva se mjesnost rela-

cijskog simbola;

{fkmk : k N}

skup ije elemente nazivamo funkcijskim simbolima. Prirodan broj

mk

naziva se mjesnost funk-

cijskog simbola;
Individualne varijable poprimaju vrijednosti nekih objekata, to mogu
biti brojevi, vektori, pravci, rijei nekog alfabeta... Logike simbole nazivamo
isto kao i u propozicionalnoj logici, uz dodatak univerzalnog kvantikatora

i egzistencijalnog kvantikatora

Obino se unija relacijskih, funkcijskih

i konstantskih simbola naziva skup nelogikih simbola.


Za razliku od propozicionalne logike, prije uvoenja pojma formule predikatne logike, uvodimo pojam terma.

Denicija 1.8. Term je rije denirana sljedeom rekurzivnom denicijom:


1. svaka individualna varijabla i svaki konstantski simbol koji pripada
skupu nelogikih simbola jesu termi;

1.3.

PREDIKATNA LOGIKA

f neki n-mjesni funkcijski simbol iz skupa


t1 , . . . , tn termi, tada je rije f (t1 , . . . , tn ) term;

2. ako je

nelogikih simbola i

3. rije je term ako i samo ako je nastala s pomou konano mnogo primjena pravila 1. i 2.
Sada dajemo deniciju formule.

Denicija 1.9. Ako je

neki

n-mjesni

simbola, te su t1 , . . . , tn termi, tada rije

relacijski simbol iz skupa nelogikih

R(t1 , . . . , tn )

nazivamo atomarnom

formulom

Pojam formule deniran je sljedeom rekurzivnom denicijom:


1. svaka atomarna formula je formula;

A i B formule, tada
(A B) takoer formule;

2. ako su

su

(A), (A B), (A B), (A B)

3. Ako je A formula, a x varijabla, tada su rijei

(xA)

xA

takoer

formule;
4. rije je formula ako i samo ako je nastala primjenom konano mnogo
puta pravila 1., 2. i 3.
U uvjetu 3.

ne zahtijevamo da formula

x(P (y, z) Q(y))

sadri

x.

Na primjer, rije

je formula.

Ovdje takoer upotrebljavamo dogovorne pokrate u pisanju zagrada kao


kod propozicionalne logike.

Prioritet logikih veznika od najveeg do naj-

manjeg moemo prikazati slino kao kod propozicionalne logike,




U isti redak su stavljeni simboli koji imaju isti prioritet. Zagrade emo koristiti u svrhu preglednosti i izbjegavanja zabuna. Kod formula oblika

xA
jabla

formulu

nazivamo dosegom kvantikatora

lei u dosegu kvantikatora

ili

x,

x,

odnosno

x.

xA

Ako vari-

kaemo da je nastup varijable

vezan - inae je slobodan. U svakoj atomarnoj formuli svaki je nastup va-

rijable slobodan. Ako varijabla

ima slobodan (vezan) nastup u formuli

A,

tada je taj nastup varijable slobodan (vezan) i u svim formulama dobivenim


primjenom logikih veznika i drugih proizvoljnih formula te formulama oblika

yA

yA,

gdje je

varijabla razliita od

da je slobodna varijabla u formuli

x.

Za neku varijablu

kaemo

ako postoji barem jedan njezin nastup

u toj formuli koji je slobodan. Inae kaemo da je to vezana varijabla.


Formula koja ne sadri slobodne varijable naziva se zatvorena formula ili

reenica. Formula koja ne sadri kvantikatore naziva se otvorena formula.


Neki primjeri su

10

POGLAVLJE 1.

P (x, y) Q(x)

xiy

je otvorena formula, a

x(Q(x, y) R(y)), x

je vezana varijabla, a

x(yR(x, y) zP (x, z))

LOGIKA

su slobodne varijable.

je slobodna.

je zatvorena formula, a

x, y

su vezane

varijable.
Nakon to smo dali potrebne denicije za opis predikatne logike, istaknimo glavne razlike izmeu propozicionalne i predikane logike. U propozicionalnoj logici prouavamo sudove, koji su ili istiniti ili lani. U predikatnoj
logici prouavamo objekte i relacije meu njima. Promatramo formule koje
se sastoje od relacija izmeu objekata, a formule koje su reenice mogu biti
istinite ili lane.
Veznike koristimo kako bismo dobili sloenije formule i pritom semantika odgovara onoj propozicionalne logike.

Primjer dviju istinitih formula

dobivenih koritenjem veznika su

Pozitivan(17) ManjiOd(17, 40)


Beskonaan(Q)

Realan(1 + i).

Istinitost prethodnih formula moemo odrediti budui da su one reenice.


Svaku formulu moemo pretvoriti u reenicu (i odrediti istinitost) ako svim
varijablama pridruimo konstantnu vrijednost ili ih kvanticiramo, odnosno
stavimo u doseg nekog kvantikatora.

1.3.2 Kvantikatori
Kao jedna od kljunih ideja u predikatnoj logici, kvantikatori nam omoguavaju da govorimo ne samo o pojedinanim objektima, nego o skupinama
objekata i time pruaju vie mogunosti nego to smo imali u predikatnoj
logici. Kad varijabla

svoje vrijednosti poprima iz skupine elemenata, rei

emo da je ta klasa opseg varijable

x.

Na primjer, kada elimo istaknuti da

govorimo o prirodnim brojevima, pisat emo

x N.

Ve nasluujemo kako e takve konstrukcije biti nemogue zapisati u


propozicionalnoj logici, budui da opseg varijable moe biti neki beskonaan
skup. Primjerice, kada bismo eljeli rei da je svaki prirodan broj pozitivan,
to emo oznaiti s Poz(x), pokuali bi to zapisati kao
Poz(1)

Poz(2) Poz(3) . . . ,

to je, naravno, nemogue. Predikatna logika prua elegantno rjeenje. Simbol

nazivamo univerzalni kvantikator. Pomou njega izraavamo da svi

x i itamo
P (x) istinita za sve
xP (x).

objekti u opsegu neke varijable imaju odreeno svojstvo. Piemo


za svaki

x.

Kada bismo eljeli istaknuti da je formula

vrijednosti u opsegu varijable

x,

to bismo zapisali sa

1.3.

PREDIKATNA LOGIKA

Neka je

xP (x)

{x1 , x2 , . . . , xn }

11

opseg varijable

x.

Vidimo da je tada zapis

ekvivalentan s

P (x1 ) P (x2 ) . . . P (xn ).


Zapiimo neke reenice prirodnog jezika pomou formula koje sadre univerzalni kvantikator. Promotrimo primjer iz ivotinjskog svijeta.

Primjer 1.5. Reenicu Svaka ivotinja koja je ptica nese jaja

zapiite

koristei formule predikatne logike i odredite njenu istinitost.


Rjeenje.

x(Ptica(x) NeseJaja(x)).
Budui da znamo da svaka ptica nese jaja, vidimo da je prethodna reenica
istinita.

Primijetimo da ako za

uzmemo neku ivotinju koja nije ptica,

reenica je i dalje istinita. esta greka prilikom prevoenja prirodnog jezika


u formule je na primjer

x(Ptica(x) NeseJaja(x)).
Prethodna formula znai Svaka ivotinja je ptica i nese jaja.
Primijetimo da kako bismo pokazali da je reenica koja sadri univerzalni

xP (x) lana, trebamo nai jednu vrijednost iz opsega varijable


x za koju je P (x) lana. Takvu vrijednost x nazivamo protuprimjer. Da
bismo pokazali da je xP (x) istinita, trebamo pokazati da je P (x) istinita
za svaku moguu vrijednost iz opsega varijable x.
kvantikator

Primjer 1.6. Oznaimo s


opseg varijable

skup

P (x)
{1, 2, 3, 4}.

reenicu  x

2 je manje od

10

te neka je

Odredite istinitost formule

xP (x).
Rjeenje. Ova formula nije istinita, a kao protuprimjer navodimo broj

4.

Neke matematike tvrdnje govore da u opsegu razmatranja postoji neka


vrijednost za koju je neko svojstvo istinito.

Neka je to svojstvo Broj x

pomnoen sam sa sobom jednak je 25, u zapisu


varijable

P (x, 25)

te neka je opseg

skup prirodnih brojeva. Moemo se pitati postoji li takav broj, a

eljeli bismo to moi zapisati i pomou jezika predikatne logike. Upravo to


nam omoguuje simbol

kojeg nazivamo egzistencijalni kvantikator. Po-

mou njega izraavamo da barem jedan objekt u opsegu neke varijable ima
odreeno svojstvo. Piemo

i itamo postoji x. Kada bismo eljeli is-

taknuti da postoji barem jedna vrijednost u opsegu varijable

P (x) istinita, to bismo zapisali sa xP (x).


Neka je {x1 , x2 , . . . , xn } opseg varijable x.
Vidimo
xP (x) ekvivalentan s

za koju je

formula

P (x1 ) P (x2 ) . . . P (xn ).


Nastavimo s primjerima iz ivotinjskog svijeta.

da je tada zapis

12

POGLAVLJE 1.

LOGIKA

Primjer 1.7. Reenicu Postoji ivotinja koja je sisavac i nese jaja zapiite
koristei formule predikatne logike i odredite njenu istinitost.
Danu reenicu zapisujemo kao

x(Sisavac(x) NeseJaja(x)).
Vidimo da je ona istinita (prisjetimo se udnovatog kljunaa). esta greka
prilikom prevoenja prirodnog jezika koristei egzistenicijalni kvantikator
je na primjer

x(Sisavac(x) NeseJaja(x)).
Ova reenica prevedena u prirodni jezik glasi Postoji ivotinja koja ako je
sisavac nese jaja.. Ona je ekvivalentna reenici Postoji ivotinja koja nije
sisavac ili koja nese jaja.
Da bismo pokazali da je reenica koja sadri egzistencijalni kvantikator

xP (x)

istinita, dovoljno je pronai jednu vrijednost iz opsega varijable

P (x) istinita.
da je P (x) lana

xP (x)

za koju je

Kako bismo pokazali da je

pokazati

za sve mogue vrijednosti iz opsega varijable

lana, treba

x.

Ponekad u istoj reenici nalazimo i univerzalni i egzistencijalni kvantikator. Vrijedi

xP (x) xP (x),
no ne i obratno. Prethodna formula nam govori da ako neko svojstvo vrijedi
za sve

x,

tada postoji

za koji to svojstvo vrijedi, to je oito.

1.3.3 Poredak i negacije


Valja naglasiti da je poredak kojim navodimo kvantikatore bitan. Promotrimo reenicu Za svaki broj
je opseg varijabli

xiy

skup

R.

y takav da je x + y = 5 i neka
P (x, y) relaciju x + y = 5. Tada

postoji broj
Oznaimo s

piemo

xyP (x, y).


Vidimo da je ova reenica istinita (za

moemo uzeti

x + 5).

Primijetimo

da kada bismo zamijenili poredak kvantikatora, dobili bismo

yxP (x, y),


to prevedeno na prirodni jezik znai Postoji broj
vrijedi

takav da za svaki broj

x+y = 5, to je oito lana reenica. Neka je y = 0.


x + 0 = 5. Uzimajui x = 2 dolazimo do

trebalo vrijediti

Tada bi za svaki
protuprimjera.

Kod propozicionalne logike spomenuli smo De Morganov princip. Slino


pravilo postoji i u predikatnoj logici.

Neka je

varijabla i

Tada su sljedei parovi formula logiki ekvivalentni.

xP (x) xP (x)

P (x)

relacija.

1.3.

PREDIKATNA LOGIKA

13

xP (x) xP (x)
x vrijedi P (x), to moemo izrei
P (x) nije istinita. Slino, ako elimo

Ako elimo rei da nije istina da za svaki


tako da kaemo da postoji

takav da

x takav da je P (x) istina, to moemo izrei tako da kaemo


x P (x) nije istinita.

rei da ne postoji
da za svaki

Opremljeni znanjem o konstrukciji reenica predikatne logike zapiimo


pomou njih neke vane matematike denicije. Ovdje uvodimo i neke dodatne pokrate koristei ograniene kvantikatore. Tako na primjer

(x R)P (x)

oznaava formulu

x(x R P (x)),

( > 0)Q()

oznaava formulu

( > 0 Q()).

Denicija konvergencije niza

(an )

realnih brojeva glasi:

(L R)( > 0)(n0 N)(n N)(n n0 |an L| < ).


Sada elimo negirati prethodnu formulu. Imajui u vidu navedena pravila
negacije, piemo:

(L R)( > 0)(n0 N)(n N)(n n0 |an L| < ).


Sada jo samo treba negirati izraz propozicionalne logike na kraju formule.
Prisjetimo se veznika

i vrijednosti u semantikoj tablici. Kondicional je

u tom
, negiramo desnu stranu i konano dobivamo

laan ako je lijeva strana istina i desna la. Prema tome veznik
izrazu zamjenjujemo veznikom

(L R)( > 0)(n0 N)(n N)(n n0 |an L| ).


U ovom poglavlju upoznali smo osnove matematike logike i vidjeli kako
je jezik logike vaan kada elimo zapisati i prouavati matematike tvrdnje.

Logika nam omoguuje i vrlo praktine i pregledne pokrate prilikom

zapisivanja.

Rezultati navedeni u ovom poglavlju od velike su vanosti za

razumijevanje sljedeih poglavlja u kojima ih nastavljamo koristiti.

14

POGLAVLJE 1.

LOGIKA

Poglavlje 2

Skupovi i funkcije
Poglavlje pred nama ima tri cilja.

Prvi je podsjetiti itatelja na osnovne

matematike pojmove obraene na niim godinama studija, pa ak i u srednjoj koli.

Drugi cilj je produbiti znanje i poimanje skupa kao osnovnog

matematikog objekta, a trei je pripremiti teren za teorijska i praktina


znanja iz diskretne matematike koja su izloena u ovom udbeniku. Naime,
u narednim poglavljima eljet emo rijeiti raznolike primijenjene i teorijske
probleme prilikom ije analize emo doi do pitanja odnosa izmeu dva ili
vie skupova.

Iz tog razloga je vano stvoriti kvalitetne temelje te ojaati

intuitivno poimanje pojma skupa.

2.1 Osnovni pojmovi


Pojam skupa nas prati tijekom cijelog kolovanja. S obzirom na to da e za
veinu itatelja ovo biti posljednji susret s elementima teorije skupova valja
napomenuti da; iako nas ambijent navodi na zakljuak da je ovo kulminacina, realnost je da je ovo tek uvod. Naime, osim naivnog

ili intuitivnog

poimanja skupova brojeva, postoji aksiomatska teorija skupova u kojoj se


oni preciznijo deniraju. Takva teorija je jednako zahtjevna koliko i lijepa,
ipak posve neprikladna za ovaj susret.

2.1.1 Skupovi
Moemo primijetiti da su svi elementi skupa

N ujedno i elementi skupa Z.


B ako je A sadran u B tj. ako za svaki
element x A vrijedi da je x B . Piemo A B . Oito je A A za bilo
koji skup A. Kad je A B i A 6= B , onda kaemo da je A pravi podskup od
B , piemo A B .
Vidimo da je N Z Q R.
Ako vrijedi da je A B i B A onda kaemo da su A i B jednaki. U tom
sluaju piemo A = B .
Kaemo da je

podskup skupa

15

16

POGLAVLJE 2.

SKUPOVI I FUNKCIJE

Skup koji ne sadri niti jedan element nazivamo prazan skup i oznaavamo
ga s

Smatramo da za svaki skup

vrijedi

A,

tj. prazan skup je sadr-

an u svakom skupu. Takoer smatramo da postoji samo jedan prazan skup.


eljeli bismo raditi operacije sa skupovima, kao to smo na to navikli u
sluaju realnih brojeva ili funkcija. Prisjetimo se

uniju skupova

AiB

u oznaci

AB

kao skup

A B = {x : x A x B};

presjek skupova

AiB

u oznaci

AB

kao skup

A B = {x : x A x B};

razlika skupova

AiB

u oznaci

A\B

kao skup

A\B = {x : x A x 6 B};

simetrinu razliku skupova

AiB

u oznaci

A4B

kao skup

A4B = (A\B) (B\A).


Pomou tih operacija moemo jednostavno zapisati neke tvrdnje iz uvodnog

Z = N {0} N ili I = R\Q ili


A i B kaemo da su disjunktni ako im

R = Q4I.

primjera, kao npr.

pak

Za dva skupa

je presjek prazan skup,

tj.

A B = .

Zadatak 2.1. Zadani su skupovi


i

C = {2, 3}.

emu je jednako

A = {x R : |x 1| < 1} i B = {0, 1, 2, 3}
A B , B N, B\C i B4N?

Rjeenje. Jednostavnim raunom se pokae da je

A B = [0, 2] {3}, skup B N = {1, 2, 3},


B4N = (B \ N) (N \ B) = {0, 4, 5, 6, . . .}.
Zadatak 2.2. Pokaite da vrijedi
1.

A (B C) = (A B) C.

2.

A (B C) = (A B) (A C).

3.

A \ (B C) = (A \ B) (A \ C).

x proizvoljan.
1. Tada je x A (B C)
x A ili (x B ili x C)
x A ili x B ili x C
Rjeenje. Neka je

A = h0, 2i. Tada


B\C = {0, 1}

a skup

je
te

2.1.

OSNOVNI POJMOVI

17

(x A ili x B) ili x C
x A B ili x C
x (A B) C.
2. Tada je x A (B C)
x A i (x B C)
x A i (x B ili x C)
(x A i x B) ili (x A i x C)
x A B ili x A C
x (A B) (A C).
3. Tada je x A \ (B C)
x A i x 6 B C
x A i ne (x B ili x C)
x A i (x 6 B i x 6 C )
x A i x 6 B i x 6 C
x A i x 6 B i x A i x 6 C
x A \ B i x A \ C
x (A \ B) (A \ C).

Ako su svi skupovi koje promatramo podskupovi nekog skupa


nazivamo univerzalni skup. Ako je
deniramo komplement skupa

podskup univerzalnog skupa

u skupu

kao

A = X\A.

onda

X,

Vano je pri-

mjetiti da komplement ovisi i o izboru univerzalnog skupa. Oito je


i

onda

A = A.

X = A A.

Kada bismo uzeli da je skup realnih brojeva


komplement skupa racionalnih brojeva

univerzalni skup, tada bi

bio skup iracionalnih brojeva

I,

Q = I.
Ako je zadan skup, moemo li koristei njega konstuirati nove skupove? Mogli bismo, primjerice, uzeti neki njegov podskup ili sve njegove podskupove.
Za dani skup

deniramo skup koji sadri sve njegove podskupove. Takav

A i oznaavamo s P(A).
A = {a, b, c}. Partitivni skup skupa A
{{}, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}}.

skup nazivamo partitivni skup od


Neka je zadan skup

Za neprazne skupove

A1 , A2 , . . . , An

je

P(A) =

deniramo Kartezijev produkt

A1 A2 An = {(a1 , a2 , . . . , an ) : ak Ak , k = 1, 2, . . . , n}.
Qn
Prethodni skup moemo krae oznaiti s
k=1 Ak .

2.1.2 Relacije
Osim svih elemenata Kartezijevog produkta skupova, moe nas zanimati
samo neki njegov podskup.

18

POGLAVLJE 2.

SKUPOVI I FUNKCIJE

A i B je podskup Kartezijevog produkta


(a, b) R itamo a je u relaciji R s b. Ako su A1 , . . . , An
skupovi tada je n-mjesna relacija proizvoljni podskup Kartezijevog produkta
Qn
k=1 Ak . Iako smo se s relacijama susreli ve u prvom poglavlju, u odjeljku

Binarna relacija R na skupovima

A B.

Ako je

o predikatnoj logici, u narednim recima emo eljeti produbiti razumijevanje


tog pojma te istraiti neka svojstva relacija.

Primjer 2.1. Primjeri


1. Je majka od

je binarna relacija na skupovima svih enskih osoba i

skupa svih ljudi. Sastoji se od ureenih parova

(a, b)

gdje je

majka od

b.
2.

R = {(0, 0), (1, 0), (2, 1)} je binarna relacija izmeu skupova A = {0, 1, 2}
B = {0, 1}.

3. Vee od

>

ili manje od

<

su binarne relacije na skupu

R.

A = {1, 2, 3, 4}. Na skupu A deniramo relaciju R s (a, b) R


a < b. Tada je R = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)}.

4. Neka je
ako

5. Neka je

skup, tada je je podskup

relacija na

P(A).

Primjer 2.2. Kao to smo ve spomenuli, racionalni brojevi su brojevi oblika

a/b,

a Z i b N. Meutim, racionalni broj q bismo mogli poistovje(a, b), gdje je a Z i b N za koji vrijedi q = a/b.
A = {(a, b) : a Z, b N}, moemo denirati relaciju Q na A
je ((a1 , b1 ), (a2 , b2 )) Q ako je a1 b2 = a2 b1 . Ova relacija ima tri

gdje je

titi i s ureenim parom


Neka je
tako da

zanimljiva svojstva:

Vrijedi

((a, b), (a, b)) Q

Ako je

(a1 , b1 ), (a2 , b2 ) Q

Ako je

(a1 , b1 ), (a2 , b2 ) Q i (a2 , b2 ), (a3 , b3 ) Q tada je (a1 , b1 ), (a3 , b3 )

za svaki

(a, b) A.

tada je i

((a2 , b2 ), (a1 , b1 )) Q.

R.
Iz primjera je jasno da je postoje neka vana svojstva relacija.

Denicija 2.1. Neka je R relacija na skupu

Relacija R je reeksivna ako za svaki

Relacija R je simetrina ako za svaki


vrijedi

aA

vrijedi

a, b A

(a, a) R.

za koje vrijedi

(a, b) R

(b, a) R.

Relacija R je tranzitivna ako za svaki

A.

(b, c) R

vrijedi

(a, c) R.

a, b, c A

za koje vrijedi

(a, b)

2.1.

OSNOVNI POJMOVI

19

Za relaciju koja je reeksivna, simetrina i tranzitivna kaemo da je relacija


ekvivalencije.
Sad je jasno da je relacija

Q iz prethodnog primjera relacija ekvivalencije.

Primjer 2.3. Relacija R denirana na

(a, b) R ako je a b je
(a, b) S ako je a < b, nije

R = {(1, 2), (2, 1), (1, 1), (2, 2)}

je simetrina i tranzitivna ali

reeksivna. No, relacija S denirana na

Z
Z

reeksivna.

Primjer 2.4. Neka je

Relacija

A = {1, 2, 3}.

nije reeksivna.

Relacija

R = {(1, 1), (2, 2), (3, 3)}

je reeksivna, simetrina i tranzi-

tivna.

Relacija

R = {(1, 1), (2, 2), (3, 3), (1, 2)}

je reeksivna i tranzitivna, ali

ne simetrina.
Promotrimo jo jedan primjer.

Primjer 2.5. Neka je T relacija na


djeljiv s

3.

tako da je

(a, b) T

ako je broj

ab

Tvrdimo da je T relacija ekvivalencije.

a Z, a a = 0 to je oito djeljivo s 3.
a, b Z. Ako je (a, b) T tada je a b
djeljivo s 3 odnosno a b = 3k , za neki k Z. No, onda je i b a = 3(k),
iz ega je oito da je i b a djeljivo s 3 pa je (b, a) T .
Tranzitivnost. Pretpostavimo sada da su a, b, c Z. Ako su (a, b), (b, c) T
tada su a b i b c djeljivi s 3. Odnosno a b = 3k te b c = 3m za neke
k, m Z , zbrajanjem tih jednakosti dobivamo da je a c = 3(k + m). Sad
je oito da je a c djeljivo s 3, pa je (a, c) T .
Reeksivnost. Za svaki

Simetrinost. Pretpostavimo da su

uoimo da su svi elementi skupa

T,

{. . . , 9, 6, 3, 03, 6, 9, . . .} u relaciji

ali nisu u relaciji ni s jednim drugim cijelim brojem izvan tog skupa. Isto

{. . . , 8, 5, 2, 1, 4, 7, . . .} i
{. . . , 7, 4, 1, 2, 5, 8, . . .}. Relacija T je razdijelila

vrijedi i za skupove

skup

na tri disjunk-

tna skupa. Preciznije, kaemo da smo nainili particiju skupa.

Denicija 2.2. Neka je


skupova

particija skupa

A 6= proizvoljan
A ako vrijedi:

1. Za svaki

XF

je

X A.

2. Za svaki

XF

je

X 6= .

X, Y F , X 6= Y
[
Vrijedi
X = A.

3. Za sve
4.

XF

vrijedi

skup.

X Y = .

Kaemo da je familija

20

POGLAVLJE 2.

SKUPOVI I FUNKCIJE

Moemo naslutiti da vrijedi sljedea propozicija.

Propozicija 1. Svaka relacija ekvivalencije denira jednu particiju skupa i

obratno.

U posljednjemo primjeru smo oito i nainili jednu particiju skupa cijelih


brojeva relacijom

T.

2.1.3 Funkcije
Za binarnu relaciju
postoji tono jedan

R na skupu A kaemo da je funkcija


b B tako da je (a, b) R, tj.

ako za svaki

aA

(a A)((a, b1 ) R (a, b2 ) R b1 = b2 ).
Osim u smislu posebnog sluaja relacije u nastavka emo vrlo brzo uoiti daje
ponekad puno praktinije o funkcijama razmiljati kao o preslikavanjima.

f iz A u B koje svakom elementu x iz A pridruuje tono


jedan element f (x) iz skupa B zovemo funkcija. Funkciju iz skupa A u skup
B oznaavamo s f : A B te pri tome skup A nazivamo domena, a skup B

Preslikavanje

kodomena funkcije. esto je vano i vizualizirati apstraktne pojmove te na


taj nain osigurati njihovo bolje razumijevanje. Deniramo graf funkcije kao
skup

= {(x, f (x)) : x A}. Iz

grafa moemo vidjeti mnoga vana svojstva

funkcije koja deniramo u nastavku. Slika funkcije


kao skup

f :AB

se denira

f (A) = {f (x) B : x A}.

Primjer 2.6. Neka je


te neka je zadan skup

f : h1, +] R zadana formulom f (x) = ln(x 1),


A = [2, e + 1i. Tada je f (A) = [0, 1i.

Ako smo zadali preslikavanje koje elemente iz

A preslikava u elemente od B ,

to moemo rei o postojanju preslikavanja koje e initi obratan

posao?

Prije nego to ponudimo odgovor na to pitanje morat emo uvesti jo tri


pojma. Za funkciju

f :AB

kaemo da je surjekcija ako je njena slika

jednaka itavoj kodomeni, tj. ako za svaki

yB

postoji

xA

takav da je

y = f (x).
f : A B kaemo da je injekcija ako za svaki x1 , x2 A za koji
je f (x1 ) = f (x2 ) slijedi x1 = x2 .
Za funkciju f : A B koja je istovremeno surjekcija i injekcija kaemo da je
1 : B A na
bijekcija. U tom sluaju moemo denirati inverznu funkciju f
1
sljedei nain: f
(y) = x onda i samo onda ako vrijedi f (x) = y . Inverzna

Za funkciju

funkcija je takoer bijekcija. Kompozicija dvije bijekcije je takoer bijekcija.


Za funkciju

f :AB

rastua na skupu

kaemo da je:

ako vrijedi

(x1 , x2 A)(x1 < x2 ) = (f (x1 ) f (x2 )).

2.1.

OSNOVNI POJMOVI

21

strogo rastua na skupu

ako vrijedi

(x1 , x2 A)(x1 < x2 ) = (f (x1 ) < f (x2 )).

padajua na skupu

ako vrijedi

(x1 , x2 A)(x1 < x2 ) = (f (x1 ) f (x2 )).

strogo padajua na skupu

ako vrijedi

(x1 , x2 A)(x1 < x2 ) = (f (x1 ) > f (x2 )).


Za takve funkcije kaemo da su monotone, odnosno strogo monotone.

Zadatak 2.3. Neka je

N0 = N {0}.

Deniramo funkciju

f : N0 Z

formulom

, x
f (x) = x2+ 1

,
2
Dokaite da je
Rjeenje.

x, y N0 .

paran
(2.1)

x neparan.

bijekcija.

Provjerimo prvo injektivnost.

Neka je

f (x) = f (y) za neke


x i y moraju

Zbog naina na koji je funkcija zadana vidimo da

onda istodobno biti parni ili neparni.

Ukoliko pretpostavimo da su parni

x
y
dobivamo
=
, odnosno x = y , ako pretpostavimo da su neparni
2
2
x+1
y+1
=
, odnosno x = y .
dobivamo
2
2
Preostalo je pokazati surjektivnost. Neka je x Z, x 1 proizvoljan, tada
(2x 1) + 1
je 2x 1 N0 i f (2x 1) =
= x.
2
(2x)
= x.
Neka je x Z, x 0 proizvoljan, tada je 2x N0 i f (2x) =
2

U oba suaja smo pokazali da za proizvoljni element iz kodomene postoji


element iz domene koji se u njega preslika.

Moemo zakljuiti da je dana

funkcija bijekcija.

Primjer 2.7. Lako se provjeri da je funkcija


pravilom f (x)
1
2 (ln x 1).

= e2x+1

Kaemo da je skup

f : R h0, +i zadana
f 1 (x) =

bijekcija, a njena inverzna funkcija je

ekvipotentan sa skupom

ako postoji bijekcija

f : A B.

Ako su skupovi ekvipotentni kaemo da imaju isti kardinalni

broj i piemo

|A| = |B|.

Oznaimo svojstvo da je skup

A ekvipotentan sa skupom B

Ekvipotentnost ima sljedea svojstva:

oznakom

A B.

22

POGLAVLJE 2.

Reeksivnost. Vrijedi da je

id : A A

za svaki skup

A. Naime, identiteta,
A u samog sebe.

je bijekcija koja preslikava svaki element iz

Simetrinost. Ako je
je

A A

SKUPOVI I FUNKCIJE

f : A B

A B,

onda je i

B A.

Ve smo spomenuli da ako

bijekcija, onda je i inverzna funkcija

f 1 : B A

takoer

bijekcija.

Tranzitivnost. Ako je

A B i B C , onda je A C . Ako su funkf : A B i g : B C bijekcije, onda je i njihova kompozicija


g f : A C takoer bijekcija.

cije

Iako smo prethodna svojstva nazvali reeksivnost, simetrinost i tranzitivnost to ne znai da je ekvipotentnost relacija ekvivalencije! Razmislite zato.

Primjer 2.8. Pokaimo da su skupovi parnih prirodnih brojeva i neparnih


prirodnih brojeva ekvipotentni.
Radi se o skupovima

A = 2N = {2, 4, 6, 8, . . .} i B = 2N 1 = {1, 3, 5, 7 . . .}.


A B potrebno je konstruirati bijekciju izmeu njih.
bijekcije je f (n) = n 1.

Da bismo pokazali da je
Primjer jedne takve

Primjer 2.9. Pokaimo da su skup prirodnih brojeva i skup parnih prirodnih


brojeva ekvipotentni.
Potrebno je konstuirati bijekciju izmeu
bijekcija

f :AB

je dana s

i skupa

2N = {2, 4, 6, . . .}.

Jedna

f (n) = 2n.

Primjer 2.10. Pokaimo da su skup prirodnih brojeva i skup cijelih brojeva

f : Z N je

2x
f (x) = 1

2x + 1

ekvipotentni. Jedna bijekcija

Uoite da smo ve pokazali da su

N0

dana s
,
,
,

x<0
x=0.
x>0

ekvipotentni.

Jedna bijekcija je

dana formulom (2.1).

Primjer 2.11. Pokaimo da su svi zatvoreni segmenti realnih brojeva meusobno ekvipotentni.
duina koja

Uzmimo dva proizvoljna segmenta [a, b], [c, d] R.


dc
ba (x a) + c. Njen graf je

f : [a, b] [c, d] je f (x) =


spaja toke (a, c) i (b, d).

Jedna bijekcija

Primjer 2.12. Pokaimo da su interval

h 2 , 2 i

i skup realnih brojeva

ekvipotentni.
Jedna bijekcija

f : h 2 , 2 i R

je dana s

f (x) = tg(x).

U prouavanju raznih naela prebrojavanja posebno e nam biti zanimljive

N. Niz u skupu A je funkcija f : N A. Vrijednosti


f (n) = an A, redom a1 , a2 , a3 , . . ., a sam niz oznaavamo s

funkcije ija je domena


te funkcije su

(an )n .
Ako nizu

(an )n pridruimo niz (sn )n deniran sa sn = a1 + a2 + . . . + an


((an )n , (sn )n ) zovemo red. Element an zovemo opi lan reda, a

ureeni par

sn

je

n-ta

parcijalna suma.

2.2.

KONANI I PREBROJIVI SKUPOVI

23

2.2 Konani i prebrojivi skupovi


U ovom dijelu predstavit emo neke osnovne rezultate iz naivne teorije skupova. Za dokaz dijela rezultata trebali bismo se posluiti jaom matematikom artiljerijom i posve neprimjerenom niim godinama inenjerskih studija
pa emo neke tvrdnje iznositi bez dokaza. Znatieljni itatelj dokaze moe
potraiti primjerice u [Vukovi] ili [Weiss].

A kaemo da je konaan ako postoji prirodan broj n i bif : {1, 2, . . . , n} A. Broj n zovemo kardinalni broj skupa A i oznaavamo ga s |A|. U sluaju konanih skupova kaemo da A ima n elemenata.
Zato to je A konaan skup moemo ga zapisati kao A = {a1 , a2 , . . . , an },
gdje je ak := f (k), k = 1, 2, . . . , n. Prazan skup smatramo konanim skupom
i deniramo || = 0.
Za neprazan skup
jekcija

Za skup

A kaemo da je beskonaan

ako nije konaan. Postoje dvije osnovne

vrste beskonanih skupova: prebrojivo i neprebrojivo beskonani skupovi.


Za beskonaan skup

A kaemo da je prebrojiv

ako je ekvipotentan s

N.

Pret-

hodnu tvrdnju moemo izrei i na sljedei nain: skup je prebrojiv ako njegove elemente moemo poredati u niz.
Zato to je kompozicija bijekcija takoer bijekcija, dovoljno je konstruirati
bijekciju izmeu

i proizvoljnog prebrojivog skup kako bismo dokazali pre-

brojivost.
Kardinalni broj skupa prirodnih brojeva oznaavamo s
prema prvom slovu

i zovemo alef nula,

hebrejskog pisma.

Primjer 2.13. Odmah iz denicije je jasno da je


toki smo pokazali da su

2N, 2N 1

prebrojiv. U prethodnoj

ekvipotentni s

pa su zato i oni

prebrojivi.

Propozicija 2. Svaki beskonaan podskup skupa prirodnih brojeva je prebrojiv.

A N proizvoljan beskonaan skup. Moemo odabrati


najmanji element skupa A i oznaiti ga s a1 . Potom promotrimo skup A\{a1 }
te odaberemo najmanji element tog skupa i oznaimo ga s a2 itd. Openito,
uzmimo da smo odabrali a1 , a2 , . . . , ak tada deniramo ak+1 kao najmanji
element skupa A\{a1 , a2 , . . . , ak }. Na ovaj nain smo konstruirali strogo rastui niz. Ukoliko deniramo funkciju f : N A tako da je f (n) = an ona
Dokaz. Neka je

e zbog stroge monotonosti biti injekcija.


No,

je i surjekcija! Kada ne bi bila, postojao bi

za svaki

kN

n N,

ali ako je

a 6= a1 , a2 , . . . , ak

a A takav da f (n) 6= a
a > f (k) k za svaki

onda je

to je nemogue.

Time smo pokazali da je

A N.

24

POGLAVLJE 2.

SKUPOVI I FUNKCIJE

Vano je napomenuti da nemaju svi beskonani skupovi jednaku kardinalnost!

Propozicija 3. Neka je

konaan, a

prebrojiv skup. Tada je skup

AB

prebrojiv.

A0 = A\B . Oito je tada A B = A0 B . Budui


0
0
da je A konaan tada je i A konaan skup. Neka je |A | = k te neka je
0
f1 : A {1, 2, . . . , k} neka bijekcija. Oznaimo s f2 jednu bijekciju izmeu
B i N. Deniramo funkciju f : A0 B N na sljedei nain:
(
0
f1 (x)
ako je x A
f (x) =
f2 (x) + k ako je x B.
Dokaz : Neka je

Funkcija

je oito bijekcija.

Propozicija 4. Unija prebrojivo mnogo prebrojivih skupova takoer je prebrojiv skup. Odnosno

i=1 Ai

je prebrojiva ako su

A1 , A2 , . . .

prebrojivi.

i N postoji beskonaan niz ai,1 , ai,2 , . . . koji sadrava


Ai . Onda je a1,1 , a1,2 , a2,1 , a1,3 , a2,2 , a3,1 , a1,4 , a2,3 , . . . be
skonani niz koji sadri svaki element od i=1 Ai . Elementi ai,j su poredani
tako da vrijedi: ako je i + j = r + s, onda ai,j stavljamo prije ar,s ako

je i < r . Zato to smo elemente unije poredali u niz vrijedi da je i=1 Ai


prebrojiv skup.

Dokaz. Za svaki

sve elemente skupa

Posljedica 5. Skup
Dokaz. Za svaki
skupova
Tada je

je prebrojiv.

k N

Qk = { k1 , k2 , k3 , . . .}. Svaki od
f : N Qk je dana s f (n) = nk .

deniramo skup

Qk je prebrojiv. Jedna bijekcija


Q+ = kN Qk prebrojiva unija prebrojivih

prebrojiv skup.

Q {0} Q+ ,

skupova, pa je i sama

Sada skup racionalnih brojeva moemo zapisati kao

Q =

unija dva prebrojiva skupa i konanog skupa, pa je to opet

prebrojiv skup.

Propozicija 6. Kartezijev produkt prebrojivih skupova je prebrojiv skup.


Dokaz. Neka su

A = {a1 , a2 , a3 , . . .} i B = {b1 , b2 , b3 , . . .} dva prebrojiva


A B moemo zapisati na sljedei nain

skupa. Sve elemente od

(a1 , b1 ) (a1 , b2 ) (a1 , b3 )


(a2 , b1 ) (a2 , b2 ) (a2 , b3 )
(a3 , b1 ) (a3 , b2 ) (a3 , b3 )
.
.
.

.
.
.

.
.
.

..

Sad dijagonalno deniramo traenu bijekciju tj.


u niz na sljedei nain:

(a1 , b3 ), (a2 , b2 ), (a3 , b1 )

prvo uzmemo

itd.

(a1 , b1 ),

sve elemente posloimo


zatim

(a1 , b2 ), (a2 , b1 )

pa

2.3.

NEPREBROJIVI SKUPOVI

25

Zadatak 2.4. Dokaite da je konaan Kartezijev produkt prebrojivih skupova


je opet prebrojiv skup.

Uputa. Prilagodite dokaz prethodne propozicije.

Primjer 2.14. Iz prethodnog zadatka vidimo da su

N Z, N Q Z

N N, N N . . . N,

i sl. prebrojivi skupovi.

Primjer 2.15. Pokaimo da je skup svih toaka u ravnini s racionalnim


koordinatama prebrojiv skup. Traeni skup moemo zapisati kao

{(p, q) : p, q Q}.

Pokazali samo da je

QQ =

prebrojiv, a prema prethodnoj

propoziciji Kartezijev produkt prebrojivih skupova je opet prebrojiv skup.

Zadatak 2.5. Pokaimo da je skup svih konanih nizova cijelih brojeva prebrojiv skup.
Rjeenje. Traeni skup moemo zapisati kao

k.

svih nizova duljine

k=1 Ak ,

gdje je

Ak

skup

S obzirom na to da je prebrojiva unija prebrojivih

skupova opet prebrojiva, da bismo dokazali traenu tvrdnju dovoljno je jo

Ak prebrojiv. Meutim, skup Ak = {(n1 , n2 , . . . , nk ) :


ni Z, i = 1, 2, . . . , k} = Z . . . Z, ali zato to je Z prebrojiv ovaj konani
Kartezijev produkt je opet prebrojiv skup, iz ega slijedi dokaz tvrdnje. 2

pokazati da je svaki

Sljedei rezultat navodimo bez dokaza.

Propozicija 7. Svaki beskonaan skup sadri prebrojiv podskup.


Osim male

beskonanosti, kako ponekad nazivamo prebrojivu besko-

nanost, postoji jo jedna vrsta beskonanosti koja je puno vea

od pre-

brojive.

2.3 Neprebrojivi skupovi


Za beskonaan skup

kaemo da je neprebrojiv ako nije prebrojiv.

Propozicija 8. Neka je
vrijedi

beskonaan i

BA

neki konaan podskup. Tada

A A\B .

Dokaz : Neka je

B = {b1 , b2 , . . . , bn }.

Primijetimo da je skup

A\B

be-

skonaan. Poto svaki beskonaan skup sadri prebrojiv podskup slijedi da


postoji

C = {c1 , c2 , . . .}

A\B . Na slici
A i A\B koju emo konstruirati.
funkciju f : A A\B :

ako je x = bi ;
ci ,
f (x) = cn+i , ako je x = ci ;

x,
ako je x A\(B C).
prebrojiv podskup od

je ilustracija

bijekcije izmeu skupova


Deniramo

Tada je funkcija

bijekcija. Time smo dokazali

A A\B .

26

POGLAVLJE 2.

SKUPOVI I FUNKCIJE

Slika 2.1: Denicija jedne bijekcije izmeu skupova

Posljedica 9. Za realne brojeve

b,

takve da je

a < b,

A i A\B .

vrijedi:

[a, b] ha, bi ha, b] [a, bi .

Posljedica 10. Svaki omeeni interval od


Dokaz.

Lako je provjeriti da je funkcija

x 0.5
f (x) =
x(x 1)

f : h0, 1i R

R.
denirana s

Znamo da je skup

h0, 1]

je neprebrojiv.

Dokaz. Pretpostavimo da je skup


elemente od

je ekvipotentan s

bijekcija. Sada iz prethodnog korolara slijedi tvrdnja.

Teorem 11. Skup realnih brojeva

u niz.

prebrojiv, tj. moemo ga poredati

h0, 1], pa se onda i


h0, 1] = {x1 , x2 , . . .}. Prikaimo

ekvipotentan s intervalom

moemo poredati u niz,

ove brojeve u decimalnom zapisu. Taj prikaz nije jednoznaan, jer se npr.

0.31 moe napisati i u obliku besko0.309999 . . . Za svaki broj iz h0, 1] koristit emo,

broj s konanim decimalnim prikazom


nanog decimalnog prikaza

radi jednoznanosti, njegov beskonaan decimalni prikaz. Onda vrijedi:

x1 = 0.a11 a12 a13 . . .


x2 = 0.a21 a22 a23 . . .
x3 = 0.a31 a32 a33 . . .
.
.
.
gdje su

aij

znamenke izmeu

na dijagonali

bn

iz skupa

0 i 9.

Pogledajmo sada niz znamenaka

a11 , a22 , a33 , . . .

u gornjem decimalnom prikazu. Odaberimo niz znamenaka

{1, . . . , 9}

na sljedei nain: znamenku

b1

odaberemo tako da

2.3.

NEPREBROJIVI SKUPOVI

b1 6= a11 , b2 6= a22 ,

27

b := 0.b1 b2 b3 . . . razliit od x1 (ne pob 6= x2 (ne podudaraju se u drugoj


decimali), itd. Prema tome b
/ {x1 , x2 , x3 , . . .} = h0, 1]. To je kontradikcija
jer decimalni prikaz od b pokazuje da je b h0, 1].

Kardinalni broj skupa R oznaavamo s c i zovemo kontinuum.


itd. Onda je broj

dudaraju se u prvoj decimali), isto tako

Propozicija 12. Neka je


Tada je

neprebrojiv skup i

BA

konaan ili prebrojiv.

A A\B .

Dokaz. Zato to je
je skup

A\B

B A

A = (A\B) B . Iz
bismo imali da je A unija

vrijedi

neprebrojiv (inae

toga slijedi da
dva prebrojiva

skupa, ili pak unija konanog i prebrojivog skupa, pa je skup

prebrojiv,

to je suprotno pretpostavci propozicije). Posebno imamo da je skup

A\B

beskonaan. Poto svaki beskonaan skup sadri prebrojiv podskup, slijedi


da postoji

C A\B

odreenosti promatramo sluaj kada je


Sada deniramo funkciju

f : A A\B

c2i ,
f (x) = c2i+1 ,

x,
Oito je funkcija

C = {c1 , c2 , c3 , . . .}.
B = {b1 , b2 , b3 , . . .} prebrojiv

koji je prebrojiv. Neka je

skup.

ovako:

ako je
ako je
ako je

bijekcija, pa imamo

Radi

x = bi ;
x = ci ;
x A\(B C).

A A\B .

Primjer 2.16. Skup iracionalnih brojeva je neprebrojiv. Naime, skup iracionalnih brojeva moemo zapisati kao
prema prethodnoj propoziciji

Teorem 13. Za bilo koji skup

I = R\Q,

no

je prebrojiv, pa je

neprebrojiv.

vrijedi:

|A| < |P (A)|.

Zadatak 2.6. Pokaite da je skup svih beskonanih binarnih nizova

B,

ne-

prebrojiv skup.
Rjeenje.

Pretpostavimo suprotno, da je konaan ili prebrojiv.

je da

B ne moe biti konaan. Pretpostavimo


x1 , x2 , x3 , . . . B svi binarni nizovi. Zapiimo,

da je prebrojiv.

Jasno

Neka su

x1 = (x11 , x12 , x13 , . . .)


x2 = (x21 , x22 , x23 , . . .)
x3 = (x31 , x32 , x33 , . . .)
.
.
.
Deniramo
je

xii = 1.

nemogue.

a = (a1 , a2 , . . .).
a B te

Oito je

tako da je

ai = 1

ako je

mora biti jednak nekom

xii = 0 te ai = 0 ako
xi , no ai =
6 xii , a to je
2

28

POGLAVLJE 2.

SKUPOVI I FUNKCIJE

Zadatak 2.7. Pokaite da je skup svih ishoda beskonano dugih bacanja


simetrinog novia neprebrojiv.
Rjeenje. Postoji bijekcija izmeu skupa ishoda bacanja novia i binarnih nizova. Jedna bijekcija moe biti funkcija koja biljei jedan ako je palo

pismo, a nula ako je pao grb.

Zadatak 2.8. Pokaite da je


Rjeenje.
kojem je

P(N)

Za dani podskup

ai = 1

ako je

i A,

neprebrojiv.

A N deniramo binarni niz (a1 , a2 , . . .)


ai = 0 ako je i 6 A. Time smo konstuirali

bijekciju izmeu svih podskupova prirodnih brojeva i beskonanih binarnih

nizova.

2.4 Naelo matematike indukcije

U prethodnom poglavlju smo prikazali kolika je preciznost potrebna prilikom


formiranja novih spoznaja u matematici. Svi zakljuci se dokazuju i to tako
da se polazi iz nekolicine aksioma i denicija. Sami dokazi su strogi i logiki
neupitni, a otvaraju put u stvaranje apstraknih i iznenaujuih rezultata.
Jednom dokazani teoremi su polazite za stvaranje novih. Eksperimentalno
provjeravanje tvrdnji nije prihvaemo kao dokaz, za razliku od primjerice
zike, kemije, biologije i sl. Koliko je takav eksperimentalni dokaz

opasan

svjedoi sljedei primjer.

an = n2 + n + 41. Uvrtavanjem prvih


nekoliko prirodnih brojeva dobivamo vrijednosti a1 = 43 , a2 = 47, a3 = 53,
a4 = 61, a5 = 71, a6 = 83, a7 = 97, a8 = 113,. . . Mogli bismo zakljuiti da

Primjer 2.17. Neka je zadan niz

su svi lanovi niza prosti brojevi. Meutim to nije istina, jer je primjerice
a40 = 1681 = 412 .
Ako smo sumnjali da je prethodna tvrdnja neistinita mogli smo je uzastopno
provjeravati za sve vei i vei

n.

Meutim, valja imati na umu da je puno

lake pokazati da neto ne vrijedi - dovoljno je nai jedan primjer za koji ne


vrijedi, nego dokazati da vrijedi - potrebno je provjeriti prethodnu tvrdnju
za svaki prirodan broj.
Prisjetimo se, naelo matematike indukcije moemo iskazati kroz sljedea
dva koraka:
1) Baza indukcije. Dokazati da tvrdnja vrijedi za najmanji broj
denirana. Kroz nae primjere e
2) Korak indukcije.
neki

esto biti

ili

za koji je

1.

Dokazati da iz pretpostavke da je tvrdnja istinita za

(pretpostavka indukcije) slijedi da je tvrdnja istinita za

n + 1.

Tada zakljuujemo da zadana tvrdnja vrijedi za sve prirodne brojeve

Primjer 2.18. Dokaimo matematikom indukcijom da je

1 + 2 + 3 + ... + n =

n(n + 1)
2

n.

2.4.

NAELO MATEMATIKE INDUKCIJE

za sve prirodne brojeve

29

n.

Provjerimo bazu indukcije. Ako je


vimo da je tvrdnja istinita za neki

n = 1, tada je 1 = 1(1 + 1)/2.


n N to jest da vrijedi

1 + 2 + 3 + ... + n =

Pretposta-

n(n + 1)
.
2

Pokaimo da je prethodna tvrdnja istinita i za

n + 1,

1 + 2 + 3 + ... + n + n + 1 =
(1 + 2 + 3 + . . . + n) + n + 1 =
n(n + 1)
+n+1=
2
n(n + 1) + 2(n + 1)
(n + 1)(n + 2)
=
.
2
2
Prema naelu matematike indukcije zakljuujemo da tvrdnja vrijedi za svaki

n N.
Zadatak 2.9. Dokaite da je

R
0

xn ex dx = n!,

za svaki

n N.

Rjeenje. Provjerimo tvrdnju za n = 1. Integral rjeavamo primjenom


R 1 x
x

0 x e dx = e (x + 1)|0 = 1 = 1!. Pretpostavimo

parcijalne integracije

da tvrdnja vrijedi za neki

n+1 x

nN

i pokaimo da tada vrijedi i za

n + 1.

Z
 n+1 x 
dx = x
e
|0 +
(n + 1)xn ex dx
0
Z
= 0 + (n + 1)
xex dx = (n + 1)n! = (n + 1)!.
0

Koristili smo parcijalnu integraciju i pretpostavku indukcije. Prema naelu


matematike indukcije zakljuujemo da tvrdnja vrijedi za svaki prirodan

broj.

Zadatak 2.10. Dokaite da je

5n + 5 n2

za sve prirodne brojeve

n 6.

n = 6. Vrijedi da je 5 6 + 5 62 .
2
Pretpostavimo da za neki prirodni broj n 6 vrijedi 5n + 5 n i pokaimo
2
da je 5(n + 1) + 5 (n + 1) .
Rjeenje. Provjerimo bazu indukcije,

Vrijedi

5(n + 1) + 5 = (5n + 5) + 5 n2 + 5 n2 + 2n + 1 = (n + 1)2 .


Pri emu smo u prvoj nejednakosti koristili pretpostavku indukcije, a u posljednoj nejednakosti injenicu da je

5 2n + 1

za svaki

n 2.

Prema

naelu matematike indukcije zakljuujemo da tvrdnja vrijedi za svaki prirodan broj.

30

POGLAVLJE 2.

SKUPOVI I FUNKCIJE

Zadatak 2.11. Broj dijagonala konveksnog poligona s


za

1
vrhova je 2 n(n 3)

n 4.
n = 4.

Rjeenje. Neka je

Skiciranjem emo se uvjeriti da konveksni e-

1
2 4(4 3) = 2. Pretpostavimo da
1
konveksni nterokut ima n(n 3) dijagonala, pri emu je n 4. Pokaimo
2
1
da tada (n + 1)terokut, ima (n + 1)(n 2) dijagonale.
2
tverokut ima dvije dijagonale. Vrijedi da je

Kada

n-terokutu

dodamo jo jedan vrh sve dijagonale koje smo imali prije i

dalje e ostati dijagonale, kojih je prema pretpostavci indukcije bilo

1
2 n(n3).

n2 dijagonala iz dodanog vrha i jo jednu dijan-tog vrha koja je prije bila stranica. Ukupno imamo
1
2 n(n 3) + (n 2) + 1 dijagonala. No,

Meutim, dobit emo novih


gonalu izmeu prvog i

1
1
n(n 3) + (n 2) + 1 = [n(n 3) + 2n 2]
2
2
1
= (n2 n 2)
2
1
= (n + 1)(n 2)
2
1
= (n + 1)[(n + 1) 3].
2
Prema naelu matematike indukcije zakljuujemo da tvrdnja vrijedi za svaki

n 4.

Moemo ponuditi jo jednu varijantu naela matematike indukcije.


1) Baza indukcije. Dokazati da je tvrdnja istinita za namanju vrijednost

za koju je denirana.
2) Korak indukcije.

Dokazati da iz injenice da je tvrdnja istinita za sve

prirodne brojeve strogo manje od


je tvrdnja istinita za

n+1

(pretpostavka indukcije), slijedi da

n + 1.

Tada zakljuujemo da zadana tvrdnja vrijedi za sve prirodne brojeve

n.

Ovu

varijantu matematike indukcije nazivamo naelo jake matematike indukcije. Ovo naelo je ekivalentno naelu slabe indukcije, koje smo iskazali na
poetku ove toke.

Zadatak 2.12. Neka je

ai + aj

i, j N.
prirodan broj n.

za svaki

za svaki

niz realnih brojeva koji zadovoljavaju ai+j


a1 + a22 + a33 + . . . + ann an

Dokaite da je tada

n = 1 tvrdnja se
k < n + 1 vrijedi tvrdnja.

Rjeenje. Za
za sve

(an )n

svodi na

a1 a1 .

Neka je

nN

takav da

Dokaimo da zadana tvrdnja vrijedi i za

2.4.

NAELO MATEMATIKE INDUKCIJE

n + 1.

31

Zbrajajui nejednakosti,

a1 a1
a2
a1 +
a2
2
a2 a3
a1 +
+
a3
2
3
.
.
.

a1 +

a2
an
+ ... +
an ,
2
n

ka1 + (n 1) a22 + . . . + ann a1 + a2 + . . . + an . Ako s obje strane


nejednakosti dodamo a1 + a2 + . . . + an dobit emo,

a2
an 
(n + 1) a1 +
+ ... +
2(a1 + a2 + . . . + an )
2
n
(a1 + an ) + (a2 + an1 ) + . . . + (an + a1 ) nan+1 .

dobivamo

Pogledajmo poetnu i krajnju nejednakost,


an 
a2
+ ... +
nan+1 .
(n + 1) a1 +
2
n
Dodajmo sada s obje strane nejednakosti

an+1 ,



a2
an
an+1
(n + 1) a1 +
+ ... +
+
(n + 1)an+1 .
2
n
n+1
Poslije dijeljenja s

n+1

slijedi traena tvrdnja.

Ovo uzbudljivo poglavlje zavravamo s teorijskim rezultatom koji e nam


posluiti kao poziv na druenje u sljedeem poglavlju o naelima prebrojavanja.

Zadatak 2.13. Skup od

elemenata ima

2n

podskupova.

n elemenata. Sa S(n) oznaimo broj


S(1) = 2 zato to je P({a}) = {, {a}}.
Iz danog skupa izdvojimo neki element, oznaimo ga sa s i promatrajmo
posebno podskupove koji sadre s i one koji ga ne sadre. Postoji S(n 1)
podskupova koji ne sadre s te S(n 1) podskupova koji sadre s, zato to
se podskup koji sadri s moe dobiti dodavanjem odabranog elementa s u
podskup koji ga ne sadri. Ukupno imamo S(n) = S(n 1) + S(n 1) =
2S(n 1) = . . . = 2n1 S(1) = 2n .
2
Rjeenje.

Neka je dan skup od

njegovih podskupova.

Oito je

32

POGLAVLJE 2.

SKUPOVI I FUNKCIJE

Poglavlje 3

Prebrojavanja
U ovom poglavlju upoznat emo se s osnovnim rezultatima iz kombinatorike.
To je velika grana matematike koja se neprekidno ispreplee s raunarstvom.
Zapoinjemo s intuitivno jasnim i oekivanim naelima, a onda postupno
iz njih gradimo put prema matematikom alatu ija primjena e nam dati
odgovore na mnoga netrivijalna pitanja postavljena u ovom poglavlju.

3.1 Osnovna naela


Promotrimo sljedeu situaciju: metu moemo gaati orujima koja su podijeljena u dvije kategorije: puke i pitolji. Ako imamo 3 puke i 4 pitolja, na
koliko naina moemo moemo odabrati oruje kojim emo gaati orujem?
Odgovor je oito 7. Zakljuak koji smo dobili je posljedica naela sume.

Naelo sume. Broj elemenata unije meusobno disjunktnih skupova jednak je sumi broja elemenata skupova.
Preciznije, neka su
za

i 6= j ,

A1 , A2 , . . . , An

konani skupovi takvi da je

Ai Aj =

tada vrijedi

n

n
[ X


A
=
|Ai | .

i


i=1

i=1

U nastavku navodimo nekoliko najvanijih naela.

Neelo produkta. Neka su

A1 , A2 , . . . , An

konani skupovi. Tada vrijedi

|A1 A2 . . . An | = |A1 | |A2 | . . . |An |.


Naelo razlike. Ukoliko je

konaan skup i

S X,

onda je

|X\S| =

|X| |S|.
Naelo dvostrukog prebrojavanja. Ukoliko isti skup prebrojimo na dva
naina, dobit emo jednake odgovore.
U nastavku dajemo primjenu prethodnih naela na primjerima.
33

34

POGLAVLJE 3.

PREBROJAVANJA

Primjer 3.1. Metu moemo gaati orujima koja su podjeljena u dvije kategorije: puke i pitolji. Ako imamo 3 puke i 4 pitolja, na koliko naina
moemo gaati metu razliitim orujem?
Odgovor na ovo pitanje smo ve dali, ali ponudimo sada i malo formalniji

A skup oruja koje imamo na raspolaganju. S A1 oznaimo


skup puaka, a s A2 skup pitolja s kojima raspolaemo. Budui da ne postoji
oruje koje spada u A1 i u A2 , zakljuujemo da su disjunktni. Prema naelu
sume, traeni broj je |A| = |A1 A2 | = |A1 | + |A2 | = 3 + 4 = 7.

odgovor. Neka je

Primjer 3.2. Da bismo doli iz grada Zagreba do Dubrovnika, moramo proi


kroz Gospi i Split. Iz grada Zagreba do Gospia vode dvije ceste, iz Gospia
do Splita tri ceste, a od Splita do Dubrovnika etiri ceste. Na koliko naina
moemo doi iz Zagreba do Dubrovnika?
Oznaimo sa

ZG

skup svih putova iz Zagreba do Gospia, s

GS

skup svih

SD skup putova koji vode iz Splita


|ZG| = 2, |GS| = 3, a |SD| = 4. Odredimo
tada i skup svih putova iz Zagreba u Dubrovnik. Deniramo ZD kao skup
svih ureenih trojki (a, b, c), gdje je a ZG, b GS , te c SD . Tada prema
naelu produkta broj elemenata skupa ZD iznosi |ZD| = |ZG GS SD| =
|ZG| |GS| |SD| = 2 3 4 = 24.
putova koji vode iz Gospia do Splita, a sa
do Dubrovnika. Znamo da je

Zadatak 3.1. Deniramo skup

kao skup svih prirodnih brojeva koji su

manji ili jednaki od 100. Zatimo deniramo skup

X}.

Odredite

S = {(a, b) : a < b, a, b

|S|.

a moe biti proizvoljan broj iz X osim broja 100. Tada


a < b za izbor broja b imamo 100 a mogunosti, tj. b
{a + 1, a + 2, . . . , 100}. To je ukupno
Rjeenje. Broj

zbog uvjeta

99
X
a=1

(100 a) =

99
X

a=

a=1

99 100
= 4950.
2

U predzadnjoj jednakosti smo primijenili formulu za zbroj prvih


prirodnih brojeva.

Zadatak 3.2. Koliko je djelitelja broja


Rjeenje.

n = 99
2

1822500000 koji su savreni kvadrati?

Prisjetimo se da je savren kvadrat prirodan broj

za koji

a2 .

a N takav da je b =
Kraim raunom zakljuujemo da je
1822500000 = 25 36 57 . Svaki djelitelj zadanog broja je oblika 2i 3j 5k gdje
su i {0, 1, . . . , 5}, j {0, 1, . . . , 6}, k {0, 1, . . . , 7}. Da bi djelitelj bio
savren kvadrat oito je da i, j, k moraju biti parni brojevi. Tada imamo
tri mogunosti za izbor potencije i te po 4 mogunosti za izbor j i k . U
konanici, broj djeljitelja koji su savreni kvadrati je 3 4 4 = 48.
2

postoji

Zadatak 3.3. Koliko ima prirodnih brojeva manjih od


menku 4?

10n

koji sadre zna-

3.2.

DIRICHLETOVO NAELO

35

X skup svih prirodnih brojeva strogo manjih od 10n .


Oito je |X| = 10 1. S obzirom na to da se u X nalaze brojevi koji imaju
najvie n znamenki, oni tada mogu imati najvie n znamenki 4. Jednostavn
nije je prebrojati koliko ima prirodnih brojeva manjih od 10 koji ne sadre
Rjeenje. Neka je
n

znamenku 4, a onda taj broj oduzeti od broja svih prirodnih brojeva manjih

10n .

X koji ne sadre 4 kao svoju zna9 preostalih znamenki, a jedini od


n
njih koji nije valjan je onaj koji sadri same nule. Dakle |S| = 9 1. Prema
od

Oznaimo sa

menku. Brojevi iz

skup svih brojeva iz

se mogu sastojati od

naelu razlike zakljuujemo da je broj svih brojeva koji sadre znamenku 4


jednak

|X\S| = |X| |S| = (10n 1) (9n 1) = 10n 9n .

3.2 Dirichletovo naelo

Ako se u nekom drutvu nalazi 13 ljudi, tada njih barem dvoje moraju biti
roeni u istom mjesecu. Prethodna tvrdnja je naravno istinita, a nain razmiljanja koji nas dovodi to potvrdnog odgovora formalizira sljedei teorem.

Teorem 14. (Dirichletovo naelo) Ako

n+1

objekt stavimo u

kutija, tada

e barem jedna kutija sadravati dva ili vie objekata.

Xi
Y konani skupovi takvi da je |X| > |Y | te neka je dana funkcija f : X Y .
Tada f ne moe biti injekcija. Iako je samo naelo vrlo jednostavno, u ovom
Dirichletovo naelo moemo zapisati i matematikim rjenikom. Neka su

odjeljku pokazat emo koliko netrivijalnih posljedica moe imati te emo


opravdati zato smo ga izdvojili iz prethodnog odjeljka.

Primjer 3.3. Pokaimo da u skupu od etiri cijela broja postoje barem dva
broja ija je razlika djeljiva s tri.
Kada cijeli broj dijelimo s tri mogui ostaci pri dijeljenju su

0, 1

ili

2.

Prema

Dirichletovom naelu dva od etiri broja pri dijeljenju s tri moraju imati isti
ostatak pri dijeljenju. Ta dva broja moemo zapisati kao

a = 3p + r

b = 3q + r.

Njihova je razlika tada

a b = (3p + r) (3q + r)
= 3(p q),
a to je broj djeljiv s tri.
Istim razmiljanjem moemo pokazati i openitiju tvrdnju: Ako je dano

n+1

brojeva, onda moemo nai dva ija je razlika djeljiva s

Zadatak 3.4. Pokaite da u proizvoljnoj grupi od

ljudi,

n.

n 2,

barem dvije osobe koje imaju jednak broj prijatelja iz te grupe.

postoje

36

POGLAVLJE 3.

y u grupi, te je x prijatelj s y , onda


x. Uzmimo sada osobu x iz grupe.
Ona moe imati k prijatelja, 0 k n 1. Ako postoji osoba y koja je
prijatelj sa svim preostalim ljudima u grupi, tada ona ima n 1 prijatelja,
odnosno, nitko u grupi nema nula prijatelja. To znai da nula i n 1 ne
Rjeenje. Ako su primjerice osobe

pretpostavljamo da je i

PREBROJAVANJA

prijatelj s

mogu istovremeno biti broj prijatelja nekog u grupi. Prema Dirichletovom


naelu slijedi da barem dvije osobe moraju imati jednak broj prijatelja.

Zadatak 3.5. Pokaite da 29 kvadrata stranice duljine jedan metar unutar


kruga radijusa tri metra moraju imati barem jednu zajedniku toku.
Rjeenje. Moramo pokazati da ukoliko se dva ili vie kvadrata ne preklope, neemo ih moi upisati u krug zadane povrine.

Ako se nikoja dva

kvadrata ne preklapaju, onda njih 29 ini ukupnu povrinu

2
danog kruga je 9m

28.16m2

<

29m2 .

Povrina

29m2 . Sad je jasno da se barem dva kva-

drata moraju preklopititj. imati zajedniku toku zato to ih u protivnom


ne bismo mogli upisati u krug radijusa

Zadatak 3.6. Ako iz skupa

3m.

S = {1, 2, . . . , 171}

odaberemo

87

brojeva, do-

kaite da e se meu njima nalaziti barem dva uzastopna broja.


Rjeenje. Pogledajmo sljedee podskupove

{1, 2}, {3, 4}, {5, 6}, . . . , {169, 170}, {171}.


Kada bismo iz svakog od tih
bismo ih uzeli najvie
ima

87.

86,

86 podskupova uzeli najvie jedan element, tada

ali to je protuslovlje sa injenicom da elemenata

Dakle, postoji barem jedan podskup iz kojeg su uzeta bar dva

elementa. Jednolani je podskup pri tome iskljuen, a kad se iz dvolanog


podskupa uzmu dva elementa oni su onda uzastopni.

Zadatak 3.7. Dokaite da postoji prirodna potencija broja tri koja zavrava

001,
001.
s

odnosno da postoji

tako da broj

3n

ima posljednje tri znamenke

3q , p, q N, p > q , takvi da daju isti ostatak pri


p
q
q pq 1) je djeljiva s 1000. S
dijeljenju s 1000. Njihova razlika 3 3 = 3 (3
obzirom na to da su prosti faktori od 1000 samo 2 i 5, oni ne mogu dijeliti
3q , preostaje da 3pq 1 mora biti djeljiv s 1000. To znai da 3pq ima
posljednje tri znamenke 001.
2
Rjeenje. Neka su

3p

nN
i

Gdje smo u prethodnom primjeru koristili Dirichletovo naelo?

3.3 Permutacije
Zamislimo da

studenata eka usmeni ispit kod nekog profesora. Neki stu-

denti e savjetovati da je bolje odgovarati prvi, neki moda vole neizvjesnost,

3.3.

PERMUTACIJE

37

a neki imaju neku treu taktiku. Koliko postoji razliitih redoslijeda na koje
profesor moe pitati studente?
Profesor ima

mogunosti za odabir prvog studenta. Nakon to ispita oda-

branog studenta sljedeeg moe odabrati izmeu


birati izmeu 6 preostalih, itd. Odgovor je dakako

Denicija 3.1. Neka je


bijekcija s
Ako s

7 preostalih, zatim
8 7 . . . 1 = 8!.

konaan skup. Permutacija skupa

moe

je bilo koja

X.

oznaimo skup svih studenata koji ekaju usmeni ispit, jasno da

pitanje iz uvodnog primjera moemo formulirati na sljedei nain:


ima permutacija skupa od

koliko

elemenata? Sljedei teorem daje odgovor na to

pitanje.

Teorem 15. Broj permutacija

nlanog

skupa je n!.

Dokaz. Bez smanjenja openitosti pretpostavimo da je n-lani skup


{1, 2, 3, . . . , n}. Tada je permutacija ureena n-torka elemenata iz {1, 2, 3, . . . , n}.
Postoji n mogunosti za izbor prvog elementa, n 1 mogunosti za izbor
drugog elementa, n 2 mogunosti za izbor treeg elementa, itd. Time smo
dokazali teorem.

Prisjetimo se da je dogovorno 0! = 1.

Primjer 3.4. Koliko razliitih rijei od est slova moemo napraviti koristei slova iz rijei logika?
Pitanje je zapravo: Koliko ima permutacija

6lanog

skupa? Za prvo slovo

rijei koju slaemo moemo odabrati bilo koje od est slova iz skupa

{l, o, g, i, k, a},

za drugo slovo je preostalo pet slova, za tree etiri, itd. U konanici dobivamo

6 5 4 3 2 1 = 6! = 720.

Zamislimo sada da smo u prethodnom primjeru eljeli od danih slova nainiti


rijei od tri slova, umjesto est. U tom sluaju bismo za izbor prvog slova
imali est mogunosti, za izbor drugog slova pet mogunosti te za izbor treeg
slova etiri mogunosti. Ukupno bismo imali

6 5 4 = 120 mogunosti.

Ovaj

primjer nas motivira za sljedeu deniciju.

Denicija 3.2. Neka je

neki

nlani skup. Za ureenu k -torku (x1 , x2 , . . . , xk )


X kaemo da je kpermutacija (k n),

meusobno razliitih elemenata iz


i biljeimo s

P (n, k).

U srednjoj koli smo


razreda u skupu s

kpermutaciju nlanog skupa nazivali varijacija ktog


elemenata. Oekivano, vrijedi i sljedei teorem.

Teorem 16. Broj svih

k -permutacija nlanog

skupa je

n!
.
(n k)!

38

POGLAVLJE 3.

Dokaz. Postoji

k -tog

n 1 mogunosti
n k + 1 mogunosti za

mogunosti za izbor prvog elementa,

za izbor drugog elementa, itd. U konanici imamo


izbor

PREBROJAVANJA

elementa. Tada je broj svih

kpermutacija

jednak

n (n 1) . . . (n k + 1) =
n (n 1) . . . (n k + 1) (n k)!
n!
=
.
(n k)!
(n k)!
Iz prethodnog razmiljanja nije teko vidjeti da je pitanje koliko ima
permutacija
u

nlani

k-

nlanog skupa ekvivalentno pitanju koliko ima injekcija s klanog

skup.

Zadatak 3.8. Na maturalnoj zabavi nalaze se dva smjera neke kole. Kako
bi istaknuli koji su smjer pohaali, uenici su odluili nositi bijeli odnosno
plavi al. Na zabavi je 20 uenika s bijelim alom te 15 s plavim alom. Dolo
je vrijeme za zajedniku fotograju. Na koliko naina se mogu posloiti u red
tako da
a) se uenici s bijelim alom nalaze prvi;
b) uenici s bijelim alom ine jedan blok;
c) uenici s bijelim alom se nalaze na prvom i posljednjem mjestu u redu te
u redu nema uenika s plavim alom koji stoje jedan do drugog.

20! naina, a
20! 15! naina.
b) Uenike s plavim alom moemo posloiti u red na 15! naina, a blok
uenika s bijelim alom tada moemo staviti na jedno od 16 mjesta izmeu,
Rjeenje. a) Uenici s bijelim alom mogu stati u red na

uenici s plavim alom na

15!

naina. Ukupno je to

na poetak ili na kraj reda uenika s plavim alom. Uenike s bijelim alom
unutar bloka moemo rasporediti na

20!

naina. Ukupno je to

16 15! 20!

naina.
c) Uenike s bijelim alom moemo rasporediti na

20!

naina u red. Zatim

prvog uenika s plavim alom moemo staviti izmeu prvog i drugog uenika
s bijelim alom ili drugog i treeg uenika s plavim alom itd.

19 mjesta na koja smije


20! 19 18 . . . 6 5 naina.
imamo

stati uenik s plavim alom.

Ukupno

Rjeenje je

Primjer 3.5. Neka je zadan

nlani skup X i prirodan broj k . Odredimo


koliko ima ureenih k -torki (X1 , X2 , . . . , Xk ) podskupova od X koji su disjunktni u parovima?
Za svaki od

elemenata od

podskupova ili ne. Imamo


n
u konanici daje (k + 1) .

trebamo odluiti hoe li pripasti jednom od

uzastopnih izbora izmeu

k+1

mogunosti to

Primjetite da su prethodni rauni bili poprilino lagani. Jedna od olakotnih


oklonosti je bila ta to smo sve objekte razlikovali, odnosno nismo imali vie
istih objekata. U nastavku uvodimo i taj sluaj.

3.4.

KOMBINACIJE

39

Primjer 3.6. Ispred zgrade Sveuilita vrtlar eli u nizu posaditi tri ljubiice, pet rua i etiri orhideje. Na koliko naina to moe uiniti?
Ovaj problem je razliit od prethodnih utoliko to razlikujemo, primjerice,
rue i ljubiice, ali ljubiice meusobno ne. Na raspolaganju imamo dvanaest cvjetova koje moemo posaditi na

12!

naina, meutim tu smo raunali

razliite poretke istih cvjetova koje ne razlikujemo, pa taj broj moramo podi-

3!4!5!, koliko iznosi broj jednakih rasporeda unutar iste vrste cvijea.
12!
Konaan rezultat je tada 3!4!5! .

jeliti s

Prilikom uvoenja pojma skupa napomenuli smo da ne brojimo kratnost njegovih elemenata, u tom sluaju bismo u prethodnom primjeru u skupovnoj
notaciji izgubili informaciju o tome koliko primjeraka pojedine vrste cvijea
imamo. Motivirani time uvodimo pojam multiskupa kao poopenje pojma
skupa. Jednostavno govorei, multiskup je skup u kojem je ponavljanje ele-

M = {lj 3 , r5 , o4 },
gdje lj, r, o, redom oznaava ljubiice, rue i orhideje, a brojevi 3, 5 i 4 njihove
menata dozvoljeno. U prethodnom primjeru bismo imali
kratnosti. Navodimo i preciznu deniciju.

Denicija 3.3. Multiskup na konanom skupu

X je ureeni par M = (X, m)


gdje je m : X N0 takva da je
xX m(x) < +. Kaemo da je m(x)
P
m(x)
kardinalnost multiskupa X .
kratnost elementa x X , a
xX
P

Primjer 3.7. Odredimo koliko se razliitih rijei moe nainiti od slova


iz rijei matematika? Rjeenje. Radi se o permutaciji multiskupa
10!
{m2 , a3 , t2 , e, i, k}. Takvih permutacija ima 3!2!2!
.

M =

U srednjoj koli ste permutacije multiskupa nazivali permutacije s ponavljanjem.

Zadatak 3.9. Odredite broj nizova duljine


nule,

jedinice i

15

u oktalnoj bazi koji sadre

sedmica te preostale brojeve iz oktalnog brojevnog sustava

tono jednom.
Rjeenje. Radi se permutaciji multiskupa
15!
Rjeenje je dano s
3!2!5! .

M = {03 , 12 , 2, 3, 4, 5, 6, 75 }.

3.4 Kombinacije
U dosadanjim problemima osim samih elemenata koji se pojavljuju vaan je
bio i poredak kojim se ti elementi pojavljuju. Preciznije govorei, brojali smo
koliko ima ureenih

k -torki n-lanog skupa.

Meutim esto nas zanima samo

koji su se elementi pojavili, ali ne i poredak kojim su se odabrani elementi


pojavili.

Preciznije govorei, zanima nas koliko ima

k -lanih

podskupova

n-lanog skupa. Jedan poznati primjer su loto brojevi. Uzmimo da se radi o


Lotu 7/39 u kojem se izvlai 7 kuglica s brojevima u rasponu od 1 do 39. U
tom sluaju razliite poretke kojim su kuglice izvlaene brojimo kao jedan.

40

POGLAVLJE 3.

Koliko ih ima? Za odabir prve kuglice imamo

38 itd.

Ukupno je to

3938. . .33 =

PREBROJAVANJA

39 mogunosti, za odabir druge

39!
(397)! . Meutim, u prethodnom raunu

smo uvaavali i poredak kojim su kuglice izvlaene. Sedam odabranih kuglica

7!

moemo meusobno izmijeati na


podijeliti sa

7!.

naina, pa prethodni iznos jo moramo

Traeni odgovor je tada

39!
(397)!7! .

Teorem 17. Neka je

X n-lani skup. Broj svih


n
n!
je
k!(nk)! . Taj broj oznaavamo s k

k -lanih

podskupova skupa

n mogunosti za izbor prvogelementa, n 1 mogunosti


n k + 1 mogunosti za
n!
 k -togelementa. To je ukupno
(nk)! . Meutim, pri izboru podsku-

Dokaz. Postoji

za izbor drugogelementa itd. U konanici imamo


izbor

pova, poredak kojim smo birali pripadne elemente je nevaan, zato smo i
stavljali navodnike na rijei prvi, drugi, itd. Stoga je potrebno dobiveni broj
podijeliti s brojem razliitih rasporeda

elemenata, a to je

k!.

Time smo

dokazali tvrdnju teorema.


Broj

n
k itamo n povrh k, a nazivamo binomni koecijent. Prvi put s njima

ste se susreli u etvrtom razredu srednje kole u tzv. binomnom teoremu.

Teorem 18. Neka je

n N0 , a x, y R, tada vrijedi (x+y)n =

Dokaz. Promotrimo umnoak

Pn

n
k=0 k

n zagrada, (x+y)(x+y). . .(x+y).

xnk y k .

Kada

raunamo taj umnoak uzimamo po jedan lan iz svake zagrade i mnoimo


ih, taj postupak ponavljamo

2n

puta. Kada iz

zagrada odaberemo

nk y k . Za ksni
preostalih x, dobit emo izraz obilka x

n
nk
yk .
biti
k to je upravo koecijent od x

Posljedica 19. Za sve

2n

n N0

Pn

n
k=0 k

vrijedi

y,

a iz

takvih lanova e

= 2n .

Dokaz. Ako uzemo x = y = 1 iz binomnog teorema slijedi




P
P
= k=0 nk 1nk 1k = k=0 nk , to je traena suma.

(1 + 1)n =

Prethodna posljedica je jo jedan dokaz ve spomenute tvrdnje da partitivni


skup

n-lanog

skupa ima

2n

elemenata.

Posljedica 20. Broj podskupova

n-lanog skupa s parnim i neparnim brojem

elemenata je jednak.
Dokaz. Pretpostavimo da je n paran. Broj podskupova s parnim brojem
 n n

n
n
elemenata ima P =
s neparnim
0 + 2 + 4 +. . . + n , a broj podskupova

n
n
n
n
brojem elemenata ima N =
+
+
+
.
.
.
+
. Da bismo dokazali
1
3
5
n1

P N = 0.
 Prema binomnom
n
+. . . n1
+ nn = (11)n = 0.
Za vjebu, prilagodite prethodni dokaz za sluaj kada je n neparan.

Pn
n
n1 .
Posljedica 21. Za sve n N vrijedi
k=1 k k = n2
da ih je jednako dovoljno je pokazati da je
teoremu slijedi da je

n
0

n
1

n
2

n
2

3.4.

KOMBINACIJE

41

Dokaz. Ovaj dokaz je posebno interesantan jer daje naznake da je ponekad diskretne probleme mogue rijeiti metodama koje primjenjujemo na
kontinuirane objekte. Ukoliko u binomnom teoremu uvrstimo

y =1

dobi-

vamo

(x + 1) =

n  
X
n
k=1

xk .

(3.1)

Ukoliko lijevu i desnu stranu shvatimo kao funkciju od


biti i derivabilne. Deriviranjem po

n(x + 1)

n1

x
=

x=1

jasno je da e one

slijedi

n
X
k=1

Uvrtavanjem

 
n k1
k
x .
k

(3.2)

dobivamo traenu tvrdnju.

Zadatak 3.10. Na koliko se naina iz grupe od 7 studenata i 6 studentica


druge godine moe nainiti trolana grupa koja e predstavljati drugu godinu
studija u studentskom zboru, ali tako da se u grupi nalazi barem jedna studentica.
Rjeenje. Moemo imati grupe sljedeeg sastava:

1
 6

tica,

7
0

student i

studentice te

 
 6 1 studen7 6
1 + 1 2 +
2

studenta i

studentice. Ukupno je to

= 251.

7
2

Budui da su binomni koecijenti praktian alat za raunanje problema


prebrojavanja korisno je istraiti njihova dodatna svojstva.

Propozicija
Neka su
   22. 
a)
b)
c)

d)

n, k N,
n
n
=
,
n k 
k 
n
n1
k
=n
,
k
k1   

 
n+1
n
n
=
+
.
k
k1
k


n  
X
m
n+1
=
.
k
m+1

takvi da je

k n.

Tada vrijedi:

m=k

Dokaz.

Sve tvrdnje je trivijalno dokazati algebarskim metodama, ali

mi emo se posluiti tzv. kombinatornom interpretacijom. U dokazu prve


tvrdnje ponudit emo dva dokaza - jedan matematikim jezikom, a drugi
korporativnim.

n
k je broj svih odabira

k -lanih podskupova n-lanog


skupa, a broj
je broj odabira (n k)-lanih podskupa n-lanog skupa.
Odabir podskupa s k elemenata je ekvivalentan odabiru nk elemenata koje
a) Binomni koecijent

n
nk

neemo staviti u taj podskup.

42

POGLAVLJE 3.

PREBROJAVANJA

a') Poznata programerska tvrtka DBit objavila je da eli zaposliti


mera. Na njihov natjeaj prijavilo se
brati

n ljudi.

progra-

Broj naina na koje mogu oda-

kandidata koje e zaposliti odgovara lijevoj strani jednakosti, a broj

naina na koji mogu odabrati

nk

kandidata koje nee zaposliti odgovara

desnoj strani. Naelo dvostrukog brojanja kae da dva raziita prebrojavanja


istog skupa moraju dovesti do istog rezultata, ime smo dokazali tvrdnju.
b) U DBitu iz

a0 )

od

zaposlenih ljudi upravitelji ele odabrati

k lanu

grupu strunjaka koji e otii u novootvorenu podrunicu u drugom gradu.

k odabranih strunjaka mora


 postati voditelj grupe.
k -lanu grupu strunjaka moemo odabrati na nk naina, a za svaki izbor
k strunjaka jedan od njih moe biti voditelj. Dakle, na k naina moemo
Takoer netko od tih

odabrati voditelja grupe. To je lijeva strana jednakosti. S druge strane, moemo prvo odabrati voditelja grupe, a onda jo

n 1.

k 1 strunjaka od preostalih

To odgovara desnoj strani jednakosti.

c) U DBit je doao mladi pripravnik. Upravitelji ele da i on bude ukljuen u program za izbor

drugom gradu iz b). Od

strunjaka koji e ii u novootvorenu poslovnicu u

n+1

strunjaka njih

moemo odabrati tako da

n biramo k 1 strunjaka
ili da ne ukljuimo pripravnika gdje od n strunjaka biramo njih k . To je
desna strana jednakosti. Lijeva strana je trivijalna - od n + 1 zaposlenika
biramo njih k .
d) Desna strana je broj (m + 1)-lanih podskupova skupa S = {1, 2, . . . , n +
1}. Kako bismo kombinatorno interpretirali lijevu stranu podijelimo S na
podskupove s obzirom na najvei broj u danom podskupu. Podskup s k + 1

m
elemenata s najveim elementom m + 1 se moe nainiti na
k naina. Budui da m + 1 ne moe biti manji od k + 1, a ni vei od n + 1, slijedi da se




k
k+1
podskup moe nainiti na
+ k+2
+ . . . + nk naina.

k +
k
k

ukljuimo pripravnika u nju, a onda od preostalih

Zadatak 3.11. Koliko ima najkraih putova kroz cjelobrojnu mreu od isho-

(9, 8)? Koliko


tokom (7, 8)?

dita do toke
a ne prolaze

takvih putova prolaze segmentom

[(3, 3), (4, 3)],

Rjeenje. S obzirom na to da nas zanimaju samo najkrai putovi, jasno


je da e svaki takav put biti sainjen samo od kretanja gore i desno. Ukoliko s doznaimo desno, a s ggore, jedan najkrai put od ishodita do
toke

(9, 8)

je odreen nizom kretnji dddggdgddgggdggdd. Uoimo da e

svaki najkrai put od ishodita do toke

kretanja gore. Kada odaberemo

na preostalih

(9, 8)

imati

kretanja u desno te

mjesta na koja emo staviti slovo d,

mjestima mora biti slovo g, a to moemo uraditi na

9+8
9

naina.
Da bismo odgovorili na drugo pitanje morat emo dosljedno primijeniti prethodnu taktiku i naelo komplementa. Naime, ako od ukupnog broja putova
koji prolaze kroz zadani segment oduzmemo broj putova koji prolaze kroz zadani segment i toku dobit emo traeni rezultat. Od ishodita do toke
ima

3+3
3

najkraih putova, kroz segment

[(3, 3), (4, 3)]

(3, 3)

moemo proi samo

3.4.

KOMBINACIJE

43

94+83
pu94  najkraih

6
10
teva. Putova koji prolaze zadanim segmentom ima ukupno
3 1 5 = 5040.
na jedan nain, a od toke

(4, 3) do toke (9, 8) ima

Kako bismo izraunali broj putova koji prolaze zadanim segmentom i zadanom tokom morat emo gledati sve putove koji kreu od ishodita te idu
do traenog segmenta, a tih ima kao i prije
a takvih putova ima


74+83

3+3
3 , zatim od toke

te u konanici broj putova od

(8, 8),
toke (7, 8)

74

(9, 8), a takvih putova ima 97+88
.
To je ukupno
97
 74+83
6
1 = 1120. Prema naelu komplementa puteva koji prolaze za3 1
74
danim segmentom i ne prolaze zadanom tokom ima 50401400 = 3920. 2

do zavrne toke

Primjer 3.8. Ako konveksni mnogokut ima 44 dijagonale, koliko ima stranica?
Pretpostavimo da mnogokut ima

stranica. Kada spojimo dva vrha mnogo


n
kuta dobit emo dijagonalu ili stranicu. Stoga od 2 , ukupnog broja dijagonala i stranica moramo oduzeti n stranica. Dobivamo jednadbu

 
n
n = 44
2
n(n 1)
n = 44
2
n2 3n 88 = 0.
Rjeenja te jednadbe su

n = 11 i n = 8,

a s obzirom na to da broj stranica

mora biti prirodan broj radi se o jedanaesterokutu.


Ve smo ustvrdili da su problemi poprilino lagani ukoliko nemamo ponavljanja objekata. to moemo rei o kombinacijama s ponavljanjima? Prvi
korak prema openitom zakljuku je odgovor na pitanje: na koliko naina
moemo zapisati nenegativni cijeli broj

kao sumu

nenegativnih cijelih

n = 3 i k = 2 traeni naini
3 = 0 + 3, 3 = 1 + 2, 3 = 2 + 1 i 3 = 3 + 0. Drugim rijeima, elimo
odrediti broj ureenih k -torki (x1 , . . . , xk ) nenegativnih cijelih brojeva koji

brojeva ako je poredak pribrojnika vaan? Za


bi bili

zadovoljavaju jednadbu

x1 + x2 + . . . + xk = n.
Odgovor na to pitanje je
sljedeu situaciju. Dano je

n+k1
k1

Da bismo opravdali tu tvrdnju zamislimo

n kuglica koje ne razlikujemo i k 1 tapia.

Ako

kuglice sloimo jednu pored druge, izmeu njih moemo stavljati tapie,
pa u tom sluaju svaki razmjetaj kuglica i tapia oznaava jedno rjeenje
prethodne jednadbe. Primjerice za

n = 7 i k = 6 rjeenju 0+1+3+1+0+2 =

pripada sljedeem rasporedu tapia i kuglica.

| | | ||

44

POGLAVLJE 3.

Imamo

n+k1

PREBROJAVANJA

kuglica i tapia te jednako toliko mjesta. Ako odaberemo

mjesta na koja emo staviti tapie implicitno smo odabrali i mjesta na koja
emo staviti kuglice. Takvih razmjetaja ima

n+k1
k1

n+k1
n

Zadatak 3.12. Odredite broj nenegativnih cjelobrojnih rjeenja jednadbe

x1 + x2 + x3 + x4 = 16,
uz uvjete

x1 3, x2 0, x3 > 3

2 x4 6.

Rjeenje. S obzirom na to da traimo nenegativna cjelobrojna rjeenja


jasno je da je uvjet

x3 > 3

x3 4. Prethodnu jednadbu
xi 0, i = 1, 2, 3, 4. Za prve tri neuvoenjem supstitucija y1 = x1 + 3, y2 = x2 ,

ekivalentan uvjetu

znamo rijeiti samo uz uvjete da su


poznanice to moemo postii

y3 = x 3 4 i y4 = x 4 2 .

Uvrtavanjem supstitucija u jednadbu dobivamo

y1 + y2 + y3 + y4 = 10,
uz uvjete

y1 , y2 , y3 0 i 0 y4 4.

Kada ne bismo imali dodatni uvjet na


iz naela kuglica i tapia .
uvjet

y4 4

y4 ,

rjeenje bismo izraunati direktno

Prema naelu komplementa, broj rjeenja uz

jednak je razlici rjeenja bez dodatnih uvjeta i broju nenega-

y4 >4 tj. y4 5. Rjeenja posljednje


10+41
, a kako bismo se rjeili dodatnog
10
uvjeta y4 5 uvodimo jo jednu supstituciju z1 = y1 , z2 = y2 , z3 = y3 ,

z4 = y4 5, jednadba tada postaje z1 + z2 + z3 + z4 = 5, a ona ima 5+41
5


10+41
= 230.
2
5+41
rjeenja. Traeni broj je tada
5
10
tivnih cjelobrojnih rjeenja uz uvjet
jednabe bez dodatnih uvjeta ima

3.5 Generalizacije binomnog teorema

U prethodnom odjeljku smo istraujui kombinatorne probleme doli i do


zanimljivog algebarskog pitanja.

Iskazali smo i dokazali vaan teorem za

raunanje potencija binoma i prikladno tome nazvali ga binomni teorem.

(x + y)n elimo izraunati (x + y + z)n ili (x + y + z + t)n ili


(x1 + . . . + xk )n ? Kao to je to na sljedeem primjeru prikazano, nain

to ako umjesto
pak

razmiljanja je isti kao i prije, ali su zakljuci malo sloeniji.

Primjer 3.9. Pokaimo da je

(a + b + c)3 = a3 + b3 + c3 + 3a2 b + 3a2 c + 3b2 a + 3b2 c + 3c2 a + 3c2 b + 6abc.


Kako bismo izraunati umnoak

(a+b+c)(a+b+c)(a+b+c) moramo uzeti

po jedan lan iz svake od tri zagrade i pomnoiti ih, taj postupak ponavljamo
33 = 27 puta. Lako je uoiti da e svih 27 umnoaka biti treeg stupnja.
2
Promotrimo kako jedan od umnoaka moe biti b c. To se dogaa kada iz
dvije zagrade odaberemo

b,

a iz preostale zagrade

c.

Sveukupno postoje tri

3.5.

GENERALIZACIJE BINOMNOG TEOREMA

naina na koja to moemo uiniti s obzirom na to da

45

biramo iz proizvoljne

zagrade od njih tri te b iz preostalih. Upravo zbog toga je kofecijent uz lan


b2 c u razvoju (a + b + c)3 upravo 3, tj. s desne strane jednakosti imamo 3b2 c.
Istim argumentom moemo opravdati koecijente u preostalim lanovima koji
sadre jedan faktor drugog stupnja i jedan prvog stupnja.
3
Postoji samo jedan nain da jedan od umnoaka bude a , a to se dogodi kad
3
3
iz sve tri zagrade odaberemo a. Isto vrijedi i za b i c .

abc moramo odabrati a iz jedne zagrade, to


moemo nainiti na tri naina, b iz preostale dvije zagrade, to pak moemo
nainiti na dva naina te c iz preostale zagrade. Postoji, dakle, sveukupno
3 2 = 6 naina na koji moemo dobiti lan abc, zato je 6abc na desnoj strani

U konanici, da bismo dobili

jednakosti.

Cilj nam je formalizirati prethodni zakljuak, ali prije toga uvodimo pogodne oznake.

Denicija 3.4. Neka su

Pk

i=1 ai

= n.

a1 , a2 , . . . , ak

nenegativni cijeli brojevi takvi da je

Deniramo multinomne koecijente

n
a1 , a2 , . . . , ak


=

n!
.
a1 ! a2 ! . . . ak !

Jednostavno je provjeriti da u sluaju

k = 2

multinomni koecijenti

postaju binomni koecijeniti.

Teorem 23. (Multinomni teorem) Za sve nenegativne cijele brojeve

vrijedi

(x1 + x2 + . . . + xk ) =

a1 +a2 +...+ak =n


n
xa1 xa22 . . . xakk .
a1 , a2 , . . . , ak 1

Dokaz. Dokaz provodimo indukcijom po


vanjem

k = 1.

k.

Baza se lako provjeri uvrta-

Pretpostavimo da multinomni teorem vrijedi za

k.

Za

k+1

dobivamo

(x1 + x2 + . . . + xk + xk+1 )n =
(x1 + x2 + . . . + (xk + xk+1 ))n =

X
n
a1 +a2 +...+ak1 +K=n

a1 , a2 , . . . , ak1 , K

k1
xa11 xa22 . . . xk1
(xk + xk+1 )K .

Gdje smo u prijelazu iz predzadnjeg u zadnji red koristili pretpostavku induk-

46

POGLAVLJE 3.

PREBROJAVANJA

cije. Ukoliko primijenimo binomni teorem na posljednji faktor dobit emo


n
xa1 xa22 . . .
a1 , a2 , . . . , ak1 , K 1
a1 +a2 +...+ak1 +K=n


X
K
ak1
am+1
=
xam xm+1
. . . xk1
km , km+1 m
am +am+1 =K


X
n
ak+1
ak1
.
xakk xk+1
xa11 xa22 . . . xk1
a
,
a
,
.
.
.
,
a
,
a
,
a
1
2
k1
k
k+1
+...+a
+a +a
=n
X

a1 +a2

k1

k+1

Gdje smo u prijelazu iz predzadnjeg u zadnji red koristili tvrdnju

n
a1 , a2 , . . . , ak1 , K



K
ak , ak+1

n
a1 , a2 , . . . , ak1 , ak , ak+1

koja se dokazuje direktno iz denicije multinomnih koecijenata.

Primjer 3.10. Odredimo koecijent uz

x14

u polinomu

(1 + x3 + x4 )13 .

Prema multinomnom teoremu

4 13

(1 + x + x )

X
i+j+k=13


13
1i x3j x4k =
i, j, k

i+j+k=13


13
x3j+4k .
i, j, k

14 moramo odrediti za koje


S obzirom na to da nas zanima koecijent uz x

j, k je 3j + 4k = 14. Lako
j = k = 2. Izraunajmo

nenegativne cijele brojeve

vidimo da je jednakost

zadovoljena sam kad je



13
13!
9,2,2 = 9!2!2! = 4290.

multinomni koecijent

Do jo jedne generalizacije binomnog teorema moemo doi ukoliko postavimo pitanje: koliko je

(x + y)m

gdje

nije, kao do sada, nenegativni

cijeli broj? U narednim poglavljima bit e nam potrebno raunati izraze kao
npr.

(1 + x) 5 .

I u ovom sluaju emo morati proiriti deniciju binomnih

koecijenata.

Denicija 3.5. Neka je

m realan broj, a k nenegativan cijeli


 
m
m(m 1) . . . (m k + 1)
=
.
k
k!

Takoer je

m
0

broj, tada je

= 1.

Zadatak 3.13. Neka su

n, k N.

Dokaite pravilo inverzije

Rjeenje. Po denicije binomnih koecijenata

 
n
(n)(n 1) . . . (n k + 1)
=
k
k!
k
(1) (n)(n + 1) . . . (n + k 1)
=
k!

n
+
k

1
= (1)k
.
k

n
k

= (1)k

n+k1
k

3.6.

FORMULA UKLJUIVANJA-ISKLJUIVANJA

47

2
(1 + x)m oko x = 0. U tom sluaju n-ta
m!
m!
mn to poprima vrijednosti
(mn)! (1 + x)
(mn)!

Promotrimo Taylorov red od


derivacija od
kad je

(1 + x)m

x = 0.

je

Dolazimo do sljedeeg teorema.

Teorem 24. Neka je

realan broj. Tada vrijedi

(1 + x)m =

X m
xn .
n

n0

S obzirom na to da je sumiramo po svim


jednakosti e biti red potencija.

m
n

= 0

za

n > m

Ako je

n 0

desna strana prethodne

nenegativan cijeli broj onda je

m+1

pa desna strana prethodne jednakosti suma s

pribrojnika, a prethodni teorem postaje binomni teorem.

Primjer 3.11. Odredimo red potencija za

1 2x.

Prema prethodnom teoremu

1 2x = (1 2x) 2 =

X 1
2 (2x)n .
n

n0

Kako bismo pojednostavnili prethodni izraz probat emo jednostavnije zapisati


1
2

koecijente

1
2

1
2

1
2

3
2

...
n!

2n+3
2

(2n 3)!! oznaili umnoak


2n 3. Izraunali smo

gdje smo s
jedan do

1 2x =

= (1)n1

(2n 3)!!
,
2n n!

svih neparnih prirodnih brojeva od

X 2n (2n 3)!!
n0

n!

xn .

3.6 Formula ukljuivanja-iskljuivanja


U uvodnom dijelu ovog poglavlja smo izrekli naelo sume, meutim vaan
preduvijet za primjenu tog naela bila je disjunktnost pripadnih skupova.
Ovo zanimljivo poglavlje zavravamo s izlaganjem formule za raunanje broja
elemenata unije konano mogo konanih skupova s potencijalno razliitim
meusobnim presjekom.
Neka su dani skupovi
skup

A = {1, 2, 3}

B = {2, 3, 4, 5},

koliko elemenata ima

A B?

Traeni skup mora sadravati sve elemente od

i sve elemente od

B , meA i B

utim na taj nain smo one elemente koji su zajedniki skupovima


brojali dva puta. Zakljuujemo da vrijedi:

48

POGLAVLJE 3.

PREBROJAVANJA

|A B| = |A| + |B| |A B|.


Ako taj zakljuak primijenimo na prethodni primjer dobit emo

|A B| =

3 + 4 2 = 5.
Slinim razmiljanjem u sluaju kada su dana tri skupa

A, B

dolazimo

do formule

|A B C| = |A| + |B| + |C| |A B| |B C| |A C| + |A B C|.

(3.3)

Taj jednostavan princip elimo poopiti zato to ne elimo biti ogranieni


skicama i malim brojem skupova.

Odgovor kako to uiniti daje sljedei

teorem, ali prije samog iskaza uvedimo pogodne oznake.

P
Sk =
1i1 <...<ik n |Ai1 . . . Aik |. Tako je na primjer za
k = 1, S1 = |A1 | + |A2 | + . . . + |An | a za k = n je Sn = |A1 A2 . . . An |.
Koristei uvedene oznake formulu (3.3) moemo zapisati kao |A1 A2 A3 | =
S1 S2 + S3 .
Deniramo

Teorem 25. (Formula ukljuivanja-iskljuivanja) Neka su

A1 , . . . , A n

ko-

nani skupovi. Tada vrijedi

|A1 . . . An | = S1 S2 + S3 + . . . + (1)n1 Sn .
Dokaz. Neka je

x A1 . . . An .

Element

je jednom brojen na lijevoj

strani, moramo pokazati da je jednom brojen i na desnoj strani. Pretposta-

x nalazi u skupovima
Aj1 , . . . , Ajm , 1 m n, ali ne i u preosta
m
lim skupovima. Postoji
k skupova za koje
P vrijedi da je x Ai1 . . . Aik .
m
Prema tome x je brojen
puta u sumi
1 . . . Aik |. Iz
n |Ai
k
 m 1i1 <...<ikm1
m
m
tog slijedi da je element x brojen
m puta
1 2  +. . .+(1)

 na desnoj
m
m
m m = (1 1)m
strani. Prema posljedici 20 slijedi 1
+
+
.
.
.
.(1)
1
2
m



m
m
m m = 1, to pokazuje da je x brojen jednom i
pa je
1 2 + . . . .(1)
m
na desnoj strani. Ako x nije A1 . . . An oito nije brojen ni u lijevoj ni u
desnoj strani.

vimo da se

Ilustrirajmo ovaj jednostavan ali jako koristan koncept na jo nekoliko


razliitih problema.

Primjer 3.12. Na nekom sveuilitu u zimskom semestru druge godine predaju se tri kolegija: linearna algebra, kombinatorika i programiranje. Barem
jedan od tri navedena kolegija upisalo je 55 studenata. Njih 28 upisalo je linearnu algebru, 24 programiranje, a 30 kombinatoriku. Nadalje, 8 studenata
je upisalo linearnu algebru i kombinatoriku, 16 kombinatoriku i programiranje te 5 linearnu algebru i programiranje. Odredimo koliko je studenata
upisalo sva tri kolegija.
Oznaimo redom s

L, K, P

skupove studenata koji su upisali linearnu

algebru, kombinatoriku te programiranje, respektivno. Studenti koji su upisali


barem jedan od navedenih kolegija pripadaju skupu

L K P,

studenti koji

3.6.

FORMULA UKLJUIVANJA-ISKLJUIVANJA

49

L K , oni koji
K P , oni studenti
koji su upisali linearnu algebru i programiranje pripadaju skupu L P . U
konanici oni koji su upisali sva tri kolegija nalaze se u skupu L K P .
Primijenit emo formulu ukljuivanja-iskljuivanja za n = 3,
su upisali linearnu algebru i kombinatoriku pripadaju skupu

su upisali kombinatoriku i programiranje pripadaju skupu

|L K P | = |L| + |K| + |P | |L K| |K P | |L P | + |L K P |.
Poznato je

55 = 28 + 30 + 24 8 16 5 + |L K P |.
Iz ega lako izraunamo da je sva tri kolegija upisalo samo dva studenta.

S skup, a A1 , . . . , An neki njegovi podskupovi.


A = A1 . . . An , tada moemo zapisati

Neka je
oznaku

Ako uvedemo

S = A A,
a zato to su

AiA

disjunktni vrijedi

|S| = |A| + |A|.


Prema DeMorganovom pravilu

A = A1 . . . An = A1 . . . An .
Sada formulu ukljuivanja-iskljuivanja moemo zapisati i kao

|A1 . . . An | = S| |A1 . . . An |
= |S| + S1 S2 + S3 + . . . + (1)n1 Sn .
Zadatak 3.14. Odredite koliko cjelobrojnih rjeenja ima jednadba

Slika 3.1: Skica presjeka tri skupa.

50

POGLAVLJE 3.

PREBROJAVANJA

x1 + x2 + x3 + x4 = 16
koji zadovoljavaju uvjete

2 x1 6, 2 x2 1, 0 x3 6, 3 x4 8.
Rjeenje. Sa slinim problemom, s manjim brojem uvjeta, susreli smo
se u odjeljku o kombinacijama.

Pristup koji smo tada koristili bilo bi te-

ko provesti za ovako sloene uvjete.

Koristit emo formulu ukljuivanja-

iskljuivanja. Kao i prije uvedimo supstitucije

x3 , y4 = x4 3

y1 = x1 2, y2 = x2 + 2, y3 =

te ih uvrstimo u zadanu jednadbu. Dolazimo do jednadbe

y1 + y2 + y3 + y4 = 13

(3.4)

uz uvjete

0 y1 4,

0 y2 3,

0 y3 6,

0 y4 5.

Denirajmo skupove

A1

kao skup svih rjeenja prethodne jednadbe koja zadovoljavaju

uvjet

y1 5 ,

A2

kao skup rjeenja jednadbe koja zadovoljavaju uvjet

y2 4,

A3

kao skup rjeenja jednadbe koja zadovoljavaju uvjet

y3 7,

A4

kao skup rjeenja jednadbe koja zadovoljavaju uvjet

y4 6 .

elimo odrediti

|A1 A2 A3 A4 |.

Broj rjeenja jednadbe (3.4) dan je sa


  
4 + 13 1
16
|S| =
=
= 560.
13
13
Slino,

  
4+81
11
|A1 | =
=
= 165,
8
8

  
4+91
12
|A2 | =
=
= 220,
9
9

  
4+61
9
|A3 | =
=
= 84,
6
6

  
4+71
10
|A4 | =
=
= 120.
7
7

3.6.

FORMULA UKLJUIVANJA-ISKLJUIVANJA

51

Nadalje imamo


  
4+41
7
|A1 A2 | =
=
= 35,
4
4

  
4+11
4
|A1 A3 | =
=
= 4,
1
1

  
4+21
5
|A1 A4 | =
=
= 10,
2
2

  
4+21
5
|A2 A3 | =
=
= 10,
2
2

  
4+31
6
|A2 A4 | =
=
= 20,
3
3

  
4+01
3
|A3 A4 | =
=
= 1.
0
0
Za presjeke triju ili vie skupova

|A1 A2 A3 | = |A1 A2 A4 | = |A2 A3 A4 |


= |A1 A3 A4 | = |A1 A2 A3 A4 | = 0.
Traeni broj rjeenja je

|A1 A2 A3 A4 | = 560 (165 + 220 + 84 + 120) + (35 + 4 + 10 + 10) 0 + 0 = 30.


2

Zadatak 3.15. Na blagdansku zabavu dolo je osmero uzvanika. Svaki gost


sa sobom je ponio i poklon. Na koliko naina se pokloni meusobno mogu
podijeliti ako nitko od uzvanika ne smije dobiti poklon koji je ponio.
Sa

oznaimo skup koji sadri sve naine podijela poklona, tako da svaki

uzvanik dobije jedan poklon, pa makar i svoj. Neka


razdioba poklona u kojima

i-ta

Ai

oznaava skup svih

osoba dobije svoj poklon. elimo izraunati

|A1 A2 . . . A8 | = |S| |A1 A2 . . . A8 |.


Jednom kad
dijeliti na

i-ti i j -ti

7!

i-toj

osoba vratimo njen poklon preostale poklone moemo po-

naina, tj.

|Ai | = 7!.

Skup

Ai Aj

sadri sve podijele u kojima

|Ai Aj | = 6!.
(8 k)!

poklon dobivaju osobe koje su ih i donijele, onda je

U sluaju kada

ljudi dobiva svoj poklon, raspodjela ima

Tada je

 
 
 
8
8
8
|A1 A2 . . . A8 | = 8!
7! +
6! . . . +
8! = 14833.
1
2
8

8
Pritom pribrojnik
1 7! interpretiramo; od osam ljudi odaberemo jednog i
njemu vratimo njegov polon, a onda na 7! podijelimo preostale poklone. 2
to moemo rei o openitom sluaju kada je na zabavu dolo n ljudi?

52

POGLAVLJE 3.

PREBROJAVANJA

Denicija 3.6. Deranman skupa A je bijekcija iz A u A koja nema ksnih


toaka.
Primjerice, permutacija 21453 je deranman od 12345, no 21543 nije
deranman zato to je ova permutacija ostavila broj etiri ksnim.

Primjer 3.13. (Problem deranmana) Odredimo broj deranmana

nlanog

skupa A.

Ai

Deniramo skup

i-ti

u kojem se nalaze sve permutacije skupa A u kojima je

element ksan.

 
 
 
 
n
n
n
n1 n
n!
(n 1)! +
(n 2)!
(n 3)! + . . . + (1)
(n n)! =
1
2
3
n


n
X
1
1
1
(1)k
n1 1
n! 1 + + . . . + (1)
= n!
.
1! 2! 3!
n!
k!
k=0

Mogli bismo se zapitati, kolika je vjerojatnost da je nasumino odabrana


permutacija i deranman? Ukoliko s

Dn oznaimo broj deranmana n-lanog

skupa, prema klasinoj deniciji vjerojatnosti potrebno je izraunati kvocijent

p =

Dn
n! .

tovie, moe se pokazati da je

Zamislimo da je

limn

Dn
n!

1
e

= 0.3679 . . .

n osoba dolo na poslovnu zabavu sa strogim kodeksom odi-

jevanja - odijelo i crni kaput. Na ulasku su domainu ostavili kapute. Kako


je veer tekla domain se sjetio da nije biljeio koji je kaput iji.

Tada je

vjerojatnost da domain nee niti jednoj osobi dati kaput s kojim dola na
zabavu iznenaujue velika,

p 1/e,

pa ak i za mali

Zadatak 3.16. Odredimo koliko ima surjekcija s


skup ako je

n.

n-lanog

skupa u

p-lani

p n?

Rjeenje. Neka je

A = {1, 2, . . . , n}

B = {1, 2, . . . , p}.

Bez smanjenja

openitosti moemo reformulirati pitanje u: koliko ima funkcija


takvih da je

f :AB

surjekcija?

Prisjetimo se da je ukupan broj funkcija s

dan s

pn .

Prebrojat emo sve funkcije, a onda tom broju oduzeti broj funkcija s

koje nisu surjekcije.

A u B koje nije surjekcija ima svojstvo da postoji eleB u koji se nije preslikao niti jedan element iz A. Deniramo
Ai = {f : A B : i nije u slici od f } Kako bimo prebrojali koliko postoji nesurjektivnih funkcija s A u B moramo odrediti |A1 A2 . . . Ap |.

Svaka funkcija s
ment iz

Prema formuli ukljuivanja-iskljuivanja slijedi

 
p1
X
k1 p
|A1 A2 . . . Ap | =
(1)
(p k)n ,
k
k=1

3.6.

FORMULA UKLJUIVANJA-ISKLJUIVANJA

53

pa je broj surjekcija

Sn,p = pn |A1 A2 . . . Ap |
 
p1
X
n
k1 p
(p k)n
=p
(1)
k
k=1
 
 


p
p
p
n
n
n
p1
=p
(p 1) +
(p 2) + . . . + (1)
.
1
2
p1
2

Kroz ovo poglavlje odgovorili smo na mnoga jednostavna i prirodna pitanja.

Alati koje smo razvili su s jedne strane dosta elegantni, a s druge

strane ograniene primjene. Sve skupa namee se dojam da naputamo ovo


poglavlje, kako to esto i biva, s puno vie pitanja nego to smo ih imali na
poetku. To naravno nije loe, ipak mata plodnog uma nikad ne dovodi do
razoaranja.

54

POGLAVLJE 3.

PREBROJAVANJA

Poglavlje 4

Funkcije izvodnice i primjene


Funkcije izvodnice je uveo Abraham de Moivre 1730. godine kao alat za rjeavanje linearnih rekurzija. Osim za rjeavanje linearnih rekurzija funkcije
izvodnice su alat kojim se mogu rjeiti mnogi netrivijalni problemi prebrojavanja.

Postoji mnogo vrsta funkcija izvodnica, a mi emo se kroz ovo

poglavlje fokusirati samo na primjene obinih i eksponencijalnih funkcija


izvodnica.

4.1 Obine i eksponencijalne funkcije izvodnice


Zamislimo da imamo etiri kovanice od jedne kune i dvije kovanice od dvije
kune. Na koliko naina moemo platiti iznos od

kuna? S obzirom na to

da su brojevi mali lako vidimo da je

5=1+1+1+2
5 = 1 + 2 + 2.
Prethodni problem moemo opisati i na drugi nain.
polinoma

Neka su dana dva

p(x) = 1 + x + x2 + x3 + x4 i q(x) = 1 + x2 + x4 ,

njihov umnoak

je

p(x)q(x) = (1 + x + x2 + x3 + x4 )(1 + x2 + x4 )
= x8 + x7 + 2x6 + 2x5 + 3x4 + 2x3 + 2x2 + x + 1.
Kada bi nas zanimao samo koecijent uz

x5 ,

produkt? Naravno da ne! Naime, potenciju

x3 iz prve zagrade s

bismo li trebali raunati cijeli

x5

moemo dobiti mnoenjem

x2 iz druge zagrade ili mnoenjem

x iz prve zagrade s x4

iz druge zagrade. Zbrajanjem ta dva lana dobivamo da je traeni koecijent

2.

Iz postupka kojim smo odredili traeni koecijent, vidljivo je da je upravo

on traeni broj naina na koji moemo izvriti uplatu od


kovanicama.
55

kuna s danim

56

POGLAVLJE 4.

FUNKCIJE IZVODNICE I PRIMJENE

4.1.1 Obine funkcije izvodnice


Vidimo kako na jednostavan nain moemo iskoristiti svojstva mnoenja potencija jednakih baza na problemima prebrojavanja. U nastavku ovog poglavlja elimo formalizirati ovu ideju to e otvoriti vrata zanimljivijim primjenama.

Denicija 4.1. Za niz


malni red potencija

P (an )nnpridruena
n0 an x .

obina funkcija izvodnica je for-

Napomenuli smo da se radi o formalnom redu potencija zato to nas


ne zanima pitanje konvergencije niti vrijednost funkcije u pojedinoj toki

zanimaju nas samo koecijenti.

P
n
f (x) =
n0 an x
ak = hxk if (x).

Ako je

k
izvodnica, koecijent uz x oznaavat emo s

Primjer 4.1. a) Obina funkcija izvodnica konstantnog niza

f (x) = 1 + x + x2 + . . . + xn + . . . =
b) Obina funkcija izvodnica niza

an = (1)n

funkcija

an = 1

je

1
1x

je

f (x) = 1 x + x2 . . . + (1)n xn + . . . =

1
1+x

c) Obina funkcija izvodnica niza 1,0,1,0,. . . je

f (x) = 1 + x2 + x4 . . . + x2n + . . . =

1
.
1 x2

U prethodnom primjeru smo koristili formulu za sumu geometrijskog


reda.

Ukoliko imamo dvije funkcije izvodnice, prirodno je pitati se kada

su one jednake te koje sve operacije moemo raditi s njima.

P
P
f (x) = n0 an xn i g(x) = n0 bn xn
f = g ako vrijedi an = bn , za svaki n 0.

Denicija 4.2. Neka su

funkcije

izvodnice. Kaemo da je

Takoer

deniramo

1. f (x) g(x) =

an xn

n0

cn =

an xn
ak bnk

X
d
f (x) =
nan xn1
dx
n1
Z
X an
4.
f (x)dx =
xn+1 .
n+1
n0

(an + bn )xn

bn xn =

n0
n
X
k=0

3.

n0


n0

gdje je

bn xn =

n0

2. f (x) g(x) =

za svaki

X
n0

n0

cn xn ,

4.1.

OBINE I EKSPONENCIJALNE FUNKCIJE IZVODNICE

57

Jednostavnim raunom itatelj se moe uvjeriti koliko su prethodne operacije prirodno denirane. Komentirajmo mnoenje funkcija izvodnica

f (x) g(x) = (a0 + a1 x + a2 x2 + . . .) (b0 + b1 x + b2 x2 + . . .)


= (a0 b0 ) + (a0 b1 + a1 b0 )x + (a0 b2 + a1 b1 + a2 b0 )x2 + . . .
U primjerima koji slijede dajemo primjene prethodne denicije.

Primjer 4.2. Dokaimo da je

n0 nx

x
.
(1x)2

Uoimo da vrijedi

1
d
=
(1 x)2
dx

1
1x


=

d
dx

xn =

n0

nxn1 .

n0

Mnoenjem poetnog i krajnjeg izraza prethodne jednakosti s

dobivamo tra-

enu tvrdnju, tj.

X
x
=
nxn .
(1 x)2
n0

Prethodni primjer daje odgovor i na pitanje odreivanja funkcije izvodnice niza

an = n.

Denicija mnoenja funkcija izvodnica plodno je tlo za

razne primjene, izmeu ostaloga i za otkrivanje formula za izraunavanje


zanimljivih suma.

Primjer 4.3. Neka je

f (x) =

Pm

n0 an x

n funkcija izvodnica. Izraunajmo

k=0 ak .
Uzmimo jo jednu funkciju izvodnicu g(x) =
P
n
dukt f (x) g(x) =
n0 cn x , pri emu je
vrijedilo da je

bk = 1

za svaki

cm =

n
n x te promotrimo pron0 bP
m
cm = k=0 ak bmk . Kada bi
0, dobili bismo

m
X

ak 1 =

k=0

m
X

to je traena suma. Ako je bk = 1, za svaki


1
formu g(x) = 1x . Zakljuujemo da je

m
X

ak = cm

ak ,

k=0

k 0,

onda


= hx i (f (x) g(x)) = hx i f (x)
m

k=0

ima zatvorenu

1
1x


.

Primijenimo prethodnu ideju na otkrivanju formule za sumu prvih


kvadrata.

Zadatak 4.1. Izraunajte

Pm

k=0 k

2.

58

POGLAVLJE 4.

FUNKCIJE IZVODNICE I PRIMJENE

Rjeenje. Ve smo pokazali da je


kost deriviramo i pomnoimo s

X
k0

x dobit

k0 kx

x
. Ukoliko tu jedna(1x)2

emo



X
x
x(1 + x)
d
k 2 xk = x
k 2 xk1 = x
=
.
dx (1 x)2
(1 x)3
k0

Iz prethodnog primjera vidimo da


 sumu prvihm koecijenata moemo izraunati tako da odredimo

hxm i

x(1+x)
(1x)3

1
1x .

Rastavljanjem brojnika i

primjenom generaliziranog binomnog teorema slijedi,

hx i

x + x2
(1 x)4




1
1
m2
= hx
i
+ hx
i
(1 x)4
(1 x)4

 

m1+41
m2+41
=
+
m1
m2
m(m 1)(2m + 1)
=
.
6
m1

Zanimljivu interpretaciju binomnog teorema moemo dati preko funkcija

S = {s1 , s2 , . . . , sn } n-lani skup te A = {si1 , si2 , . . . , sik }


S. U poglavlju o prebrojavanju zakljuili smo da A
n
moemo odabrati na
k naina. Prisjetimo se, element s1 moemo ne odabrati ili odabrati, element s2 moemo ne odabrati ili odabrati,. . . u konanici
element sn moemo ne odabrati ili odabrati. To moemo zapisati kao,

izvodnica. Neka je

S k -lani

podskup od

(1 + x) (1 + x) . . . (1 + x) = (1 + x)n .
Primjenom binomnog teorema vidimo da je

f (x) = (1 + x)n =

n  
X
n

k=0
funkcija izvodnica za broj kombinacija
odgovara broju

k -kombinacija n-lanog

n-lanog

xk

skupa.

Koecijent uz

skupa.

Primjer 4.4. Odredimo na koliko naina moemo platiti iznos od


imamo

kovanice od

kune,

xk

kovanica od

kune te

kovanice

Kovanicu od jedne kune moemo ne uzeti ili uzeti najvie


od dvije kune moemo ne uzeti ili uzeti najvie

10 kn, ako
od 5 kuna.

puta, kovanicu

puta te kovanicu od

kuna

moemo ne uzeti ili uzeti najvie tri puta. Pripadna funkcija izvodnica je

f (x) = (1 + x + x2 + x3 + x4 )(1 + x2 + x4 + x6 + x8 + x10 )(1 + x5 + x10 + x15 ).


Za sada, taj produkt moemo izraunati grubom silom te zakljuiti da je
hx10 if (x) = 6.

4.1.

OBINE I EKSPONENCIJALNE FUNKCIJE IZVODNICE

Ako je zadan multiskup


skupova od

S?

S = {s
1 , s2 , . . . , sn },

koliko ima

k -lanih

59

pod-

Svaki element moemo uzeti proizvoljno mnogo puta. Tra-

ena funkcija izvodnica je

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

...
1x 1x
1x
n

1
=
1x
= (1 x)n .
Primjenom generaliziranog binomnog teorema i pravila inverzije dobivamo,

f (x) = (1 x)n
X n
(x)k
=
k
k0


X
k n+k1
(1)k xk
=
(1)
k
k0
X n + k 1
xk .
=
k
k0

Vidimo da koecijent uz
ljanjem multiskupa

S.

xk

odgovara broju

k -lanih

kombinacija s ponav-

Sa sljedeim problemom smo se susreli ve dva puta.

Promotrimo jo jedan pristup kojim ga moemo rijeiti.

Primjer 4.5. Odredimo koliko nenegativnih cjelobrojnih rjeenja ima jednadbe

x1 + x2 + . . . + xk = n?

Pripadna funkcija izvodnica je

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

...
1x 1x
1x  
X k
X k + r 1
1
k
r
=
= (1 x) =
(x) =
xr .
r
r
(1 x)k
r0

Tada je

hxn if (x) =


k+r1
r

Zadatak 4.2. Na koliko naina


od

10

r0

100 glasaa moe glasovati tako da niti jedan


20 glasova?

kandidata ne dobije vie od

Rjeenje.

Uoite da je problem zapravo odrediti koliko nenegativnih

cjelobrojnih rjeenja ima jednadba

x1 + x2 + . . . + x10 = 100,

60

POGLAVLJE 4.

uz uvjete

FUNKCIJE IZVODNICE I PRIMJENE

0 xi 20, i = 1, . . . , 10.
20
X

!10

k=1

Moramo odrediti koecijent uz

1 x21
1x

10


=

1 x21
1x

x100

od

10

Primjenom binomnog i generaliziranog binomnog teorema dobivamo

1 x21
1x

10
=

!


10  
X
X
10
+
k

1
10
(x)k .
(x21 )k (1)k
k
k
k0

k=0

x100 imaju koecijente


              
10 109
10 88
10 67
10 46
10 25

+
.
0
100
1
79
2
58
3
37
4
16

Umnoci lanova iz prve i druge zagrade koji daju

Traeni broj naina je

342237634221.

4.1.2 Eksponencijalne funkcije izvodnice


Primijetimo da je veza permutacija i kombinacija

ak = P (n, k) =
Iz ega dobivamo da je

ak
k!

Denicija 4.3. Za niz

(aP
n )n

n
k

n-lanog

skupa dana s

 
n
k!
k

To je motivacija za sljedeu deniciju.

pridruena eksponencijalna funkcija izvodnica


an n
n0 n! x .

je formalni red potencija

Primjer 4.6. a) Eksponencijalna funkcija izvodnica konstantnog niza an


je

f (x) =

X an
n0

n!

xn =

X 1
xn = e x
n!

n0

b) Eksponencijalna funkcija izvodnica za niz

f (x) =

X an
n0

n!

xn =

X n!
n0

n!

c) Eksponencijalna funkcija izvodnica za niz

f (x) =

X an
n0

n!

an = n!

xn =

xn =

n0

1
1x

an = an

X an
n!

je

je

xn = eax

=1

4.1.

OBINE I EKSPONENCIJALNE FUNKCIJE IZVODNICE

d) Za ksan

kN

eksponencijalna funkcija izvodnica niza

an =

n
k

61

je

X xn X  n xn
an
f (x) =
=
n!
k n!
n0
n0
X
1
=
xn
k!(n k)!
=

n0
xk X

k!

nk

1
xnk
(n k)!

xk x
=
e .
k!
Kao i za obine funkcije izvodnice, analogno deniramo osnovne operacije
za eksponencijalne funkcije izvodnice.

an n
n0 n! x i
cijalne funkcije izvodnice. Deniramo,

Denicija 4.4. Neka su

f (x) =

1. f (x) g(x) =

an xn

n0

cn =

xn .

bn xn =

n0

cn xn ,

n0

n ak bnk
,
n!
k

k=0

n!

n0

an xn
n 
X

bn n
n0 n! x eksponen-

X an + bn

n0
gdje je

bn xn =

n0

2. f (x) g(x) =

g(x) =

za svaki

n 0.

X an
d
f (x) =
xn1 .
dx
(n 1)!
n1
Z
X an
an xn+1 .
4.
f (x)dx =
(n + 1)!

3.

n0

Primjer 4.7. Odredimo koliko ima

4permutacija

slova iz rijei matema-

tika .
Radi se od 4-permutaciji multiskupa

S = {m2 , a3 , t2 , e, i, k}.

emo ne uzeti, uzeti jednom ili dvaput, slovo a

Slovo m mo-

moemo ne uzeti, uzeti

jednom, dvaput ili tri puta, slino razmiljamo i za preostala slova. S obzirom na to da se radi o permutacijama konstuiramo eksponencijalnu funkciju
izvodnicu

x2
x2 x3
x2
)(1 + x +
+ )(1 + x + )(1 + x)(1 + x)(1 + x)
2!
2!
3!
2!
x10 5x9 25x8 27x7 371x6 155x5 379x4 83x3 33x2
=
+
+
+
+
+
+
+
+
+ 6x + 1.
24
12
12
4
24
6
12
3
2

f (x) = (1 + x +

Traeni koecijent je

hx4 if (x) =

a4
4!

379
12 pa je

a4 = 758.

62

POGLAVLJE 4.

FUNKCIJE IZVODNICE I PRIMJENE

Prisjetimo se da je,

ex = 1 + x +

x2 x3
+
+ ...
2!
3!

Lako uviamo da je tada,

ex = 1 x +

x2 x3

+ ...
2!
3!

Oduzimanjem ili zbrajanjem ta dva izraza dobivamo,

ex + ex
x2 x4
=1+
+
+ ...
2
2!
4!
ex ex
x3 x5
chx =
=x+
+
+ ...
2
3!
5!
shx

Upravo nainjeni zakljuci e nam pomoi u rjeavanju sljedeeg netrivijalnog kombinatornog problema.

Zadatak 4.3. Koliko ima ternarnih nizova duljine

n koji se sastoje od parnog

broja nula, neparnog broja jedinica i proizvoljno dvojki?


Rjeenje. Koristit emo eksponencijalnu funkciju izvodnicu zato to gledamo ureene

n-torke

x3 x5
x2
x2 x4
+
+ . . .) (x +
+
+ . . .) (1 + x +
+ . . .)
2!
4!
3!
5!
2!
ex + ex ex ex x
=

e
2
2
1
= (e3x ex )
4

1 X (3x)k X (x)k

=
4
k!
k!

f (x) = (1 +

k0

k0

X 1 3k (1)k
=

xk
4
k!
k0

Traeni broj je

hxn if (x) =

an
n!

n (1)n

= 14 3

n!

, odnosno

Zadatak 4.4. Na koliko naina moemo obojati

an =

3n (1)n
. 2
4

11 kvadrate na 1n ploi

crvenom,bijelom i plavom bojom, ako broj crvenih kvadrata mora biti paran
i barem jedan kvadrat je plave boje?
Rjeenje. Za

n = 5 jedno doputeno bojanje je npr.

CPCBB, gdje respek-

tivno C,P,B predstavljaju kvadrat obojen crvenom, plavom i bijelom bojom.

4.2.

REKURZIVNE RELACIJE

63

S obzirom na to da gledamo ureene

n-torke

koristit emo eksponencijalnu

funkciju izvodnicu.

x2 x4
x2 x3
x2 x3
+
+ . . .) (1 + x +
+
+ . . .) (x +
+
+ . . .)
2!
4!
2!
3!
2!
3!
ex + ex x
=
e (ex 1)
2
1
= (e3x ex )
4
1 X 3n 2n + 1 (x)n
= +

.
2
2
n!

f (x) = (1 +

n0

Slijedi da je

an =

3n 2n + 1
, n 1.
2

4.2 Rekurzivne relacije


Rekurzivne relacije su prirodni nain za opis mnogih problema. Ve u prethodnom poglavlju o prebrojavanjima smo se susreli s funkcijom faktorijel.

n! = n (n 1)!. Ukoliko oznaimo an = n!, a s


uvaimo da je a1 = 1, tada moemo spomenutu funkciju

Za tu funkciju vrijedi da je

an1 = (n 1)!

te

opisati rekurzivnom relacijom:

an = n an1 , n 2
a1 = 1.
Zapis opeg lana u obliku

an = n!,

koji nije opisan preko prethodnika

esto emo nazivati zatvorena forma ili rjeenje rekurzije. Openita linearna
rekurzija reda

s konstantnim koecijentima je sljedeeg oblika

0 xn + 1 xn1 + 2 xn2 + . . . + k xnk = (n), a0 6= 0, n k.


Rekurziji (4.1) zadajemo i
nost brojeva

xn , n > k .

(4.1)

poetnih uvjeta kako bismo osigurali jedinstve-

Ako su koecijenti

i = i (n)

funkcije ovisne o

onda govorimo o rekurziji s varijabilnim koecijentima. Niz brojeva

(xn )

koji zadovoljava rekurziju (4.1) nazivamo rjeenje rekurzije. U ovoj toki bavit emo se iskljuivo s linearnim rekurzijama i to uglavnom s konstantnim
koecijentima.

Primjer 4.8. Odredimo broj podruja koja tvore

krunica koje su postav-

ljene u ravnini tako da se svaki par krunica sijee u dvije razliite toke.
Dodatno pretpostavljamo da nikoje tri krunice ne prolaze kroz istu toku.
Skiciranjem lako moemo otkriti da vrijedi

a3 = 8.

Iako sam niz sugerira da je

a4 = 16,

a0 = 1, a1 = 2, a2 = 4,

to nije tono. Iz skice se lako

64

POGLAVLJE 4.

FUNKCIJE IZVODNICE I PRIMJENE

Slika 4.1: Primjer za tri krunice.

uvjeriti da je

a4 = 14.

Moemo li ponuditi openiti odgovor? Neka je dano

krunica koje zadovoljavaju zadane uvjete te dijele ravninu na


Kada bismo izbacili jednu krunicu, npr.
na

an1

podruja.

krunicu u

2(n 1)

Primijetimo da je

n-tu,

n-ta

an

podruja.

oni bi tada dijelili ravninu

krunica sjekla postojeu

n1

razliitih toaka. Iz toga slijedi rekurzivna relacija

an = an1 + 2(n 1), n 2.


Moemo zakljuiti da vrijedi,

an = an1 + 2(n 1)
= an2 + 2(n 1) + 2(n 2)
= an3 + 2(n 1) + 2(n 2) + 2(n 3)
.
.
.

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


(n 1)n
= a1 + 2
2
2
= n n + 2, n 2.
Rijetko smo u prilici pronai zatvorenu formu ovako jednostavnim algebarskim manipulacijama. Jednu ekasnu tehniku za rjeavanje linearnih rekurzija prikazat emo na poznatom problemu Hanojskih tornjeva.

Primjer 4.9. Neka je zadano

kolutova razliitih veliina koji se nalaze

poslagani na tapu, od najmanjeg prema najveem, tako da se najvei nalazi


na dnu.

Dana su jo dva tapa, a elimo sve kolutove prebaciti na trei

tap, jedan po jedan, tako da kolutovi budu u istom rasporedu. Ni u jednom


trenutku ni jedan kolut ne smije biti smjeten iznad manjeg koluta. Odredimo
koliko je minimalno koraka potrebno za rjeavanje ovog problema.

4.2.

REKURZIVNE RELACIJE

65

Slika 4.2: Modelni primjer igre za

an

Oznaimo s

traeni broj koraka za

n = 8.

kolutova. Ako imamo samo jedan

kolut, onda taj kolut prebacimo na traeni tap i gotovi smo tj.

a1 = 1.

Ukoliko imamo dva koluta prvo prebacimo manji kolut na drugi tap, vei
kolut na trei tap, a onda manji kolut prebacimo na vei tj.
koliko je

an

kada je

n proizvoljan prirodan broj?

a2 = 3.

No

Kako bismo mogli pomaknuti

najvei kolut, potreban nam je jedan prazan tap, to znai da smo svih

n1

manjih kolutova pomakli na drugi tap. Da bismo doli u ovu fazu trebamo
rijeiti problem Hanojskih tornjeva za

n1

kolut, a za to nam treba

an1

koraka. Tada pomaknemo najvei kolut na slobodni tap, a onda jo jednom


trebamo rijeiti problem Hanojskih tornjeva za
manjih kolutova stavili na najvei kolut.

an = 2an1 + 1. S obzirom
n = 0 te nismo denirali a0 ,

n1

kolut kako bismo

Iz navedenog zakljuujemo da je

na to da problem nismo razmatrali ukoliko je


promatramo problem

an+1 = 2an + 1
a1 = 1.
Oznaimo s

funkciju izvodnicu

h(x) =

X
n0

=1+

h(x) =
X

an+1 xn = a1 +

n
n0 an+1 x . Tada je

an+1 xn

n1

(2an + 1)x = 1 +

n1

= 1 + 2x

n1

2an+1 xn+1 +

n0
n

an+1 x +

n0

n+1

xn+1

n0

= 1 + 2xh(x) +

n0

Slijedi da je

h(x) =

1
.
(1 x)(1 2x)

x
.
1x

66

POGLAVLJE 4.

FUNKCIJE IZVODNICE I PRIMJENE

Rastavom na parcijalne razlomke lako dobivamo

h(x) =

X
1
2
(2n+1 1)xn .

=
1 2x 1 x
n0

Pa zakljuujemo da je

an = 2n 1.

Zadatak 4.5. Rijeite rekurziju

2(n 1)
1
xn1 + ,
n
n
x0 = 0.

xn =

Rjeenje. Radi se linearnoj rekurziji s varijabilnim koecijentima. Openito se takvim rekurzijama neemo baviti, meutim, ponekad je mogue vjetim algebarskim manipulacijama takav problem svesti na rjeavanje linearne
rekurzije s konstantnim koecijentima. Mnoenjem rekurzije s

dobivamo

nxn = 2(n 1)xn1 + 1.


Uvoenjem supstitucije

yn = nxn

slijedi rekurzivna relacija

yn = 2yn1 + 1,
y0 = 0.
To je rekurzija za hanojske tornjeve, za koju smo zakljuili da je
Uvravanjem u rekurziju za

xn

yn = 2n 1.

dobivamo

nxn = 2n 1,
2n 1
xn =
.
n
Neka je

f (x) =

n
n0 an x funkcija izvodnica, postupak za rjeavanje linear-

nih rekurzija s konstantnim koecijentima moemo saeti u etiri jednostavna


koraka.

1. Zapisanu rekurzivnu relaciju pomnoiti s

xn

i sumirati po svim

2. Na lijevoj strani se dobije funkcija izvodnica


namjestiti tako da dobijemo izraz koji sadri

f,
f.

3. Rijeiti jednadbu i dobiti zatvorenu formu za


4. Razviti

n 0.

a desnu stranu valja

f.

u red potencija i proitati koecijent uz

xn .

4.2.

REKURZIVNE RELACIJE

67

Primjer 4.10. Odredimo zatvorenu formu za brojeve

an

ako je poznato da

oni zadovoljavaju rekurzivnu relaciju an = 3an1 + 2n, za n


P
n
Neka je f (x) =
n0 an x funkcija izvodnica za niz (an ).

uz

a0 = 1.

Tada je

f (x) = a0 +

an xn

n1

=1+

(3an1 + 2n) xn

n1

= 3x

an1 xn1 + 2

nxn + 1

n1

n1

2x
= 3xf (x) +
+ 1.
(1 x)2
Rjeavanjem jednadbe po

dobivamo da je

f (x) =

1 + x2
.
(1 3x)(1 + x)2

Rastavom na parcijalne razlomke slijedi

1 + x2
5
1
1
1
1
=

.
2
(1 3x)(1 + x)
2 1 3x 2 1 x (1 x)2
to daje

3n

1
2

(n + 1) =

a0 = 0
n 2.

a1 = 6 ,

an = hxn if =

5
2

Zadatak 4.6. Ako je

10an2 + 3

2n , za

Rjeenje.

Neka je

f (x) =

5 3n 1
(n + 1).
2

rijeite rekurziju

n0 an x

an = 3an1 +

n funkcija izvodnica za niz

(an ).

Tada je

f (x) = a0 + a1 x +

an xn

n2

= 6x +

(3an1 + 10an2 + 3 2n ) xn

n2

= 6x 3

an1 xn + 10

n2

= 6x 3x

X
n2

an2 xn 3

n2

an1 x

n1

+ 10x

2n xn

n2
2

an2 xn2 3 4x2

n2

= 6x 3x(f (x) a0 ) + 10x2 f (x)

X
n2

12x2

1 2x
2
12x
= 6x 3xf (x) + 10x2 f (x)
.
1 2x

(2x)n2

68

POGLAVLJE 4.

Rijeavanjem jednadbe po

FUNKCIJE IZVODNICE I PRIMJENE

dobivamo

6x
12x2
+
1 + 3x 10x2 (1 2x)(1 + 3x 10x2 )
6x
12x2
=
+
.
(1 2x)(1 + 5x) (1 2x)2 (1 + 5x)

f (x) =

Rastavom na parcijalne razlomke slijedi

6x
2
1
5
1
=
+
(1 2x)(1 + 5x)
7 (1 2x) 7 1 + 5x
te

12x2
10
2
1
1
25
1
+
=

.
2
2
(1 2x) (1 + 5x)
7 (1 2x)
49 1 2x 49 1 + 5x
Tada je,


f (x) = 6x

1
5 1
2
+
7 (1 2x) 7 1 + 5x

+ 12x2

2
1
10 1
25 1
+
+
7 (1 2x)2 49 1 2x 49 1 + 5x

to daje,

X 2



X 2
5
10 n 25
n
n
2
n
n
f (x) = 6x
2 + (5) x + 12x
(n + 1)2 + 2 + (5) .
7
7
7
49
49
n0
n0


5
2 n1
n1 +12 2 (n 1)2n2 + 10 2n2 + 25 (5)n2 ,
n
2
+
(5)
Tada je an = hx if =
7
7
7
49
49
n 2.
2
n

Zadatak 4.7. Odredite funkciju izvodnicu za brojeve

an,m , n, m Z, n, m
0 koji zadovoljavaju rekurziju an,m = an1,m + an1,m1 za (n, m) 6= (0, 0)
uz uvjete an,0 = 1 ako je n 0 te a0,m = 1 ako je m > 0.
P
m funkcija izvodnica za niz
Rjeenje. Neka je fn (x) =
m0 an,m x
(an,m ). Tada je
X
fn (x) =
an,m xm
m0

(an1,m + an1,m1 ) xn

m0

an1,m xm +

m0

an1,m1 xm

m0

= fn1 (x) + xfn1 (x)


= (1 + x)fn1 (x) = . . . = (1 + x)n f0 (x).
Koristei poetni uvjet

f0 (x) = 1

dobivamo da je

fn (x) = (1 + x)n

to

primjenom binomnog teorema daje

an,m
te

an,m = 0

za

m > n.

 
n
= hx if =
m
n

ako je

0m<n
2

4.3.

CATALANOVI BROJEVI

69

4.3 Catalanovi brojevi


Prilikom rjeavanja problema iz praktinog raunarstva vano je podatke
nad kojima elimo vriti potrebne manipulacije urediti na odgovarajui nain. Koritenjem raznih struktura podataka kao to su stog, red, hrpa, stabla i sl. u prilici smo koristiti poznate i ekasne algoritme pretraivanja ili
izmijenjivanja danih podataka. Algoritmi za ureivanje stabala su esto rekurzivni, a jedno kombinatorno pitanje koje bismo mogli postaviti je: Koliko
ima potpuno ureenih binarnih stabala s

listova?

Slika 4.3: Binarno stablo s 4 lista.

Ukoliko listove oznaimo s

x1 , .., xn ,

a svaki unutranji vor zbrojem oznaka

njegovog djeteta iz slike 4.3 je jasno da se prethodno pitanje moe formulirati i na sljedei nain: Na koliko naina moemo napisati zbroj

brojeva,

koritenjem zagrada, tako da zbroj moemo izraunati zbrajanjem po dva


lana u svakom koraku?
Na primjer za n = 4 imamo pet mogunosti:
(((x1 + x2 ) + x3 ) + x4 ), ((x1 + (x2 + x3 )) + x4 ), (x1 + ((x2 + x3 ) + x4 )),
(x1 + (x2 + (x3 + x4 ))) i ((x1 + x2 ) + (x3 + x4 )).
Oznaimo sa Zn traeni broj. Svaki izraz u zagradi ima oblik (a + b), gdje
su a i b izrazi koji imaju k i n k pribrojnika, k = 1, . . . , n 1. Zbrajanjem
po svim doputenim k dobivamo nelinearnu rekurziju

Zn =

n1
X

Zk Znk , n 2.

k=1

P
Ck =P
Zk+1 dobit emo rekurziju Cn = n1
k=0 Ck Cn1k ,
n
kao Cn+1 =
C
C
.
Odredimo
sada
zatvorenu
k
nk
k=0
P
n
Neka je f (x) =
n0 Cn x funkcija izvodnica. Tada

Ukoliko nainimo supstituciju


to moemo zapisati i
formu za brojeve

Cn .

70

POGLAVLJE 4.

FUNKCIJE IZVODNICE I PRIMJENE

je

f (x)f (x) =

Cn x n

n0

=
=

Cn x n

n0

n
X X

!
Ck Cnk

n0

k=0

Cn+1 xn

xn

n0

1X
Cn+1 xn+1
x
n0

f (x) 1
=
.
x
x

Dobivamo jednadbu

xf (x)2 f (x) + 1 = 0.

14x
. Odluit emo se za minus predznak zato to je
f (x) = 1 2x
limx0 f (x) = 1, a za predznak plus imamo limx0 f (x) = +. Koristei
to daje

generalizirani binomni teorem raunamo

f (x) =
=

=
=


1 
1 (1 4x)1/2
2x

X 1
1
2 (4x)n
1
n
2x
n0

X 1
1
2 (1)n 4n xn
11
2x
n
n1


1 X 21
(1)n+1 4n xn1
2
n
n1
 
1 X 21
(1)n 4n+1 xn .
2
n
n0

4.3.

CATALANOVI BROJEVI

71

Vidimo da su traeni koecijenti dani s

 1 
1 1
( 1) . . . ( 12 n)
1
1
2
(1)n 4n+1 = (1)n 4n+1 2 2
Cn =
2 n+1
2
(n + 1)!
  

1
1
1
2n 1
1
= (1)n 4n+1
...
2
2 (n + 1)! 2
2
1

.
.
.

(2n

1)
1
1
= (1)n 4n
(1)n =
2n (2n 1)!!
n
(n + 1)!
2
(n + 1)!
 
2n
1
1
n (2n)!
.
=
2
=
(n + 1)! 2n n!
n+1 n
Traeni niz je dan s

Cn =
lanove niza

 
1
2n
.
n+1 n

(4.2)

(Cn ) nazivamo Catalanovi brojevi, a Cn je n-ti


 Catalanov broj.
Zn = Cn1 = n1 2n2
n1 .

Odgovor na poetno pitanje je tada

Primjer 4.11. Za poligon

kaemo da je konveksan ako je svaki segment

koji povezuje proizvoljne dvije toke iz

sadran u

naina moemo nainiti triangulaciju poligona


Oznaimo sa

Rn

P.

Odredimo na koliko

njegovim dijagonalama.

broj naina na koji moemo podijeliti poligon s

Slika 4.4: Primjer triangulacije za

n+2

n + 2 = 5.

stranice u trokute. Lako vidimo da je R1 = 1, R2 = 2, R3 = 5, R4 =


14,. . . Oznaimo s P (v1 , . . . vn+1 , vn+2 ) konveksni poligon s vrhovima v1 , . . . , vn+1 , vn+2 .
U svakoj dekompoziciji poligona P (v1 , . . . , vn+1 , vn+2 ) na trokute, segment
v1 vn+2 ini jednu stranicu trokuta 4, a trei vrh trokuta je jedan o preostalih
vrhova v2 , . . . , vn+1 . Neka je vk+2 , 0 k n1, trei vrh trokuta 4. U tom
sluaju smo dobili jedan konveksni poligon P (v1 , . . . vk+2 ) s k + 2 stranice te
jo jedan konveksni poligon P (vk+2 , . . . vn+3 ) s (n k + 1) stranica. Moemo
zakljuiti da postoji Rk naina na koje moemo podijeliti P (v1 , v2 , . . . , vk+2 )
u trokute te Rnk1 naina na koji moemo podijeliti P (vk+2 , . . . , vn+3 ) u
trokute. Sumiranjem po svim dozvoljenim k dobit emo rekurziju

Rn+1 =

n1
X
k=0

R0 = 1.

Rk Rnk1

72

POGLAVLJE 4.

Primjetimo da je

FUNKCIJE IZVODNICE I PRIMJENE

Cn = Rn+1 .

Broj triangulacija konveksnog

n-terokuta, n 3

je

Cn2 .

Ovaj primjer smo mogli rijeiti istim trikom koji smo iskoristili kako
bismo otkrili koliko ima ureenih binarnih stabala s

Slika 4.5: Primjer triangulacije za

listova.

n + 2 = 5.

Ideja algoritma je sljedea:

nterokuta.
x1 , x2 , . . . , xn1 .

1. Nacrtaj proizvoljnu triangulaciju


2. Sve osim jedne stranice oznai s

3. Kada su oznaene dvije stranice trokuta, dijagonalu oznai zbrojem njihovih oznaka.
4. Nastavi dalje sve dok sve stranice nisu oznaene, ali uz uvoenje zagrada
kako bi se ouvao poredak, kao na slici.
U konanici vidimo da e stranica koju smo ostavili neoznaenu biti oznaena
s izrazom koji sadri oznake preostalih

n1

stranica. Imamo

Zn1 = Cn2

naina na koje moemo nainiti triangulaciju.

Zadatak 4.8. Ako

2n

ljudi sjedi oko okruglog stola, na koliko naina se

mogu istodobno rukovati tako da njihovo rukovanje ne prelazi preko rukovanja


drugih osoba?
Na slici je dana skica za

2n = 6

ljudi.

Slika 4.6: Primjer ispravnog rukovanja za

Zadatak 4.9. Na koliko naina moemo doi od toke


s cjelobrojnim koordinatama tako da nikad ne preemo
kretnje desno i gore?

2n = 6.

A do toke B u mrei
AB , ako su dozvoljene

4.3.

CATALANOVI BROJEVI

73

Slika 4.7: Primjer ispravnog puta za

n = 3.

A(0, 0)
A(0, 0) do B(n, n) mora barem jednom
do B . Pretpostavimo da je C(k, k), 0

Rjeenje. Bez smanjenja openitosti moemo pretpostaviti da je


i

B(n, n).

Svaki dozvoljeni put od

dotaknuti dijagonalu prije dolaska

k < n toka u kojoj je put zadnji put dotaknuo dijagonalu prije dolaska u
B . Postoji Zk mogunosti za izbor puta od A do C . Zatim, put mora doi
od toke D(k + 1, k) do toke E(n 1, n 1), ali ne smije dotaknuti liniju
DE zato to tada C ne bi bila posljednja toka u kojoj je put dotaknuo
dijagonalu AB . S obzirom na to da su D i E nasuprotni vrhovi kvadrata sa
stranicama duljine n k 1 postoji Znk1 dozvoljenih puteva od D do E .
Sumiranjem po svim k , 0 k n 1 dolazimo do rekurzije,
Zn =

n1
X

Zk Zn1k .

k=0
Ukoliko s oznaimo

Ck = Zk+1

dobit emo rekurziju za Catalanove brojeve,

Cn =

n1
X

Ck Cnk1 .

k=0

U ovom poglavlju smo upoznali matematiki pristup rekurzijama te kroz


brojne primjere nauili modelirati s njima. U sljedeem poglavlju emo ih koristiti kako bismo procjenili sloenost algoritama koja je kljuna informacija
u analizi i dizajnu algoritama.

74

POGLAVLJE 4.

FUNKCIJE IZVODNICE I PRIMJENE

Poglavlje 5

Sloenost algoritama
Kroz itavu povijest ljudi su pokuavali rijeiti probleme na koje su nalazili
u svojoj okolini. Takoer, vano im je bilo da rjeenje bude jednostavno i
da se moe lako objasniti drugima i primjenjivati. Ponekad je to postignuto
opisivanjem konanog slijeda koraka kojima se sluimo u postupku. Taj konani slijed koraka mogli bismo nazvati algoritmom. Danas su algoritmi vrlo
raireni te primjenu nalaze u gotovo svakom segmentu ljudske djelatnosti. Ta
injenica potakla je interes za prouavanje algoritama u praksi, ali i na teorijskoj razini, ime se upravo bavimo kada prouavamo sloenost algoritama.
Sloenost nekog algoritma praktina je i korisna informacija koju veemo uz
svaki algoritam koji prouavamo.

U suvremenom raunarstvu poznavanje

temeljnih pojmova iz sloenosti algoritama neophodno je za svakoga tko eli


stvarati uinkovite programe.

5.1 Uvod
Algoritme esto implementiramo koritenjem raunala piui raunalne programe, koje emo uglavnom i prouavati u ovom poglavlju. Jedan od naina
mjerenja brzine rada nekog programa jest mjerenje vremena potrebnog za
njegovo izvravanje. Mjerenje moemo vriti na vie naina, na primjer pomou posebnog softvera ili pak koritenjem obine rune toperice, imajui
pritom na umu specinosti okruenja u kojemu se program izvrava. Takvom analizom izvravanja programa moemo utvrditi problematine dijelove
programa i eventualno ih ubrzati. Ipak, sloenost algoritama usporeuje i
analizira algoritme na teorijskoj razini, zanemarujui pritom detalje poput
programskog jezika u kojem je algoritam implementiran, hardverskog i softverskog okruenja i slinog.
75

76

POGLAVLJE 5.

SLOENOST ALGORITAMA

5.1.1 Osnovni pojmovi


Sama rije algoritam potjee od imena perzijskog matematiara, astronoma,
geografa i uenjaka al-Khwarizmija koji je ivio u vremenu na prijelazu 8. i 9.
stoljea. Iako se ovdje neemo baviti formalnom denicijom algoritma, rei
emo da je algoritam konaan niz instrukcija ijim slijednim izvravanjem za
neki ulaz u konano mnogo koraka dobivamo neki izlaz.
Sloenost algoritama takoer prouava kako se mijenja proces izvravanja
nekog algoritma ovisno o promjeni duljine ulaza.

To je poeljno zato to

elimo predvidjeti kako e se dani algoritam ponaati za bilo koji ulaz. Na


primjer, hoe li se za dvostruko vei ulaz trajanje izvravanja udrvostruiti,
ili pak uetverostruiti? Zamislimo da imamo mrenu aplikaciju koju dnevno
posjeuje

100 korisnika.

eljeli bismo moi predvidjeti to e se dogoditi ako

se broj korisnika povea na

300.

To e nam omoguiti upravo poznavanje

svojstava algoritama koji su upotrebljeni u izgradnji mrene aplikacije.


Prilikom analize programa, moemo se pitati koliko temeljnih naredbi
se izvrava u programu.

Pretpostavljamo da su te naredbe ekvivalentne

koracima u algoritmu koji je implementiran tim programom. Ovdje dajemo


popis akcija koje smatramo temeljnim:

Pridruivanje vrijednosti varijabli

Dohvaanje vrijednosti sa zadanog mjesta u polju

Usporedba dviju varijabli

Poveanje ili smanjenje vrijednosti varijable za 1

Osnovne aritmetike operacije (zbrajanje, oduzimanje, dijeljenje, mnoenje)

U programskim odsjecima koje navodimo smatrat emo da se grananje (odabir izmeu

if i else dijelova koda) izvrava trenutno, odnosno grananje ne-

emo uzimati kao temeljnu naredbu.

Takoer, programski odsjeci bit e

pisani u programskom jeziku C, budui da ga smatramo dovoljno rairenim


i razumljivim ak i za onoga tko prethodno nije pisao programe u C-u.

Primjer 5.1. Neka je

niz prirodnih brojeva duljine

n,

reprezentiran u ra-

unalu pomou polja. Odredite broj koraka potrebnih za izvravanje sljedeeg


programskog odsjeka:

for (i=0; i<n; ++i){


A[i]=i;
}
Vidimo da prethodni kod prolazi poljem te u svaki element polja upisuje
redni broj tog elementa u polju. Promotrimo temeljne naredbe koje se pojavljuju u prethodnom kodu. Prilikom pokretanja
broj

izvravaju se dvije naredbe:

for

petlje, bez obzira na

5.1.

UVOD

77

i=0;
i<n;
0

One predstavljaju pridruivanje poetne vrijednosti

varijabli

vanje uvjeta prekida petlje. Zatim se u svakoj sljedeoj iteraciji


odvija poveanje varijable

za

1,

i te
for

ispitipetlje

pridruivanje vrijednosti elementu polja

i ponovo ispitivanje uvjeta prekida petlje, to jest izvravaju se sljedee naredbe:

++i;
A[i]=i;
i<n;
Ove tri naredbe izvri e se tono

puta. Vidimo da broj koraka u ovom

programskom odsjeku ovisi iskljuivo o


pokretanja for petlje.
koja za dani

n,

uz dva poetna koraka prilikom

To moemo opisati matematikom funkcijom

n rauna broj koraka prethodnog programskog odsjeka.

f (n),

Budui

da imamo dvije naredbe koje se izvravaju samo jednom te tri naredbe koje
se izvravaju

n puta,

vidimo da funkcija

f : N N zadana s f (n) = 3n + 2

korektno opisuje broj koraka.

Primjer 5.2. Neka je A polje duljine

n.

Odredite broj koraka potrebnih za

izvravanje sljedeeg programskog odsjeka:

for (i=0; i<n; ++i){


if ( A[i]<0 ) {
A[i]=0;
}
}
Slino kao i u prethodnom primjeru, ovdje imamo

for petlju koja prolazi

cijelim poljem. No primjeujemo da ne moemo odrediti broj koraka kao to


smo to uinili u prethodnom primjeru. Izvravanje dijela koda koji se nalazi
unutar

if uvjeta ovisit e o zadovoljavanju uvjeta.

Prema tome, nije mogue

unaprijed odrediti koliko e se koraka izvriti tijekom izvoenja programa,


ve to ovisi o elementima polja

A.

Na primjer, ako je

A = [ 2 4 0 -3 5 ],
postavljanje vrijednosti elementa u polju na

izvrit e se tono jednom,

dok e se za

A = [ -2 -4 -1 -1 -5 ]
izvriti pet puta.
Iako esto ne moemo odrediti toan broj koraka, prilikom analize algoritama moemo se pitati koliko e algoritam napraviti koraka u najgorem

78

POGLAVLJE 5.

SLOENOST ALGORITAMA

sluaju. To znai pokuati odrediti najvei broj koraka algoritma uzevi u


obzir sve mogue ulaze. U primjeru (5.2) najvie naredbi izvravat e se za
polja koja iji su elementi samo negativni brojevi. Brojanje naredbi provo-

for

dimo kao i u primjeru (5.1), samo to unutar

petlje umjesto pridruiva-

nja vrijednosti elementu polja imamo dohvaanje vrijednosti elementa polja,


usporedba s

0,

tavljamo da je

a zatim pridruivanje vrijednosti elementu polja (pretpos-

if

uvjet uvijek zadovoljen).

e se za svaki element polja.


doprinosti broju instrukcija s

2n.

Prema tome najvei broj naredbi tijekom

izvravanja algoritma za polje duljine

f : N N,

Svaka od ovih naredbi izvrit

Vidimo da prethodno provjeravanje uvjeta

n moemo opisati sljedeom funkcijom

koja je dana s:

f (n) = |2n{z
+ 2} + |{z}
2n + |{z}
n = 5n + 2.
if

for

Napomena 2. U prethodnim primjerima kao ulaz za programsku implementaciju algoritma koristili smo polja duljine
raunanjem funkcije u ovisnosti o

n.

te smo do broja koraka dolazili

Prirodno je pretpostaviti da svaki ulaz

za algoritam ima odreenu duljinu te da njegovo izvravanje ovisi o duljini


ulaza.

Denicija 5.1. Vremenska sloenost algoritma A je funkcija

N,

gdje je

ritma

timeA (n)

timeA : N

maksimalan broj koraka potrebnih za izvravanje algo-

za ulazni podatak duljine

n.

Izvoenjem funkcija kao u prethodnim primjerima dobivamo jasnu predodbu o tome koliko se brzo izvode pojedini algoritmi. No, prilikom analize algoritama neemo se baviti izvoenjem takvih funkcija.

Osim to je

takav nain izuzetno nepraktian za ak i malo sloenije programe (pogotovo npr. viedretvene), broj naredbi ovisi i o arhitekturi raunala na kojem
se program izvodi (npr.

vrsta procesora), o njegovom programskom okru-

enju (npr. MS Windows ili Linux), programskom jeziku u kojem je algoritam implementiran i drugome.

Neemo u potpunosti napustiti funkcije

koje opisuju broj koraka, no neemo ni traiti konkretne funkcije ve emo


ih procjenjivati, svrstavajui ih u klase.

Jedan prikladan oblik procjene u

kojem pokuavamo procijeniti trajanje izvoenja nekog algoritma je trajanje


izvoenja za velike ulazne podatke koji zovemo asimptotska analiza. Ovaj
vani dio analize sloenosti algoritama uvodimo u sljedeem potpoglavlju.

5.1.2 Asimptotsko ponaanje, veliko

esto je vrlo teko, pa ak i nemogue izvesti konkretnu funkciju za broj


koraka prilikom izvoenja nekog algoritma. Zato prouavamo asimptotsko
ponaanje kada veliina ulaza

neogranieno raste.

Obino se sloenost

algoritama usporeuje s nekom od sljedeih standardnih funkcija

log2 n,

n,

n log2 n,

n2 ,

n3 , 2n

5.1.

UVOD

79

Denicija 5.2. Neka su

f, g : N R+

dvije funkcije.

Kaemo da je

g asimptotska gornja mea za funkciju f ako postoji konstanta c > 0


i n0 N tako da za svaki n > n0 vrijedi f (n) c g(n). To oznaavamo s
f (n) = O(g(n)).

funkcija

Na taj nain moemo denirati neke posebne klase sloenosti, kao to

O(n). Govorimo jo i o klasi logaritamskih


O(log n), kvadratnih funkcija O(n2 ), eksponencijalnih O(2n ) i slino.

je klasa svih linearnih funkcija,


funkcija

Napomena 3. Kada svrstavamo funkcije u pripadne klase sloenosti, obino


govorimo o najmanjoj klasi u koju ta funkcija pripada. Oito je da je
n = O(n2 ), no sloenost algoritma odreuje upravo klasa najsporije rastue
funkcije.
Asimptotska analiza prirodan je nain analize sloenosti algoritama. U
linearim funkcijama koje smo dobili u prethodnom primjerima konstanta ne
igra veliku ulogu za velike ulaze te je zbog toga zanemarujemo. Takoer, faktor uz

ovisi o programskom jeziku koji koristimo. Programski jezik Pascal

prilikom svakog pridruivanja vrijednosti elementa u polju provjerava nalazi


li se element pod tim indeksom unutar polja, to dodaje jo
Stoga zanemarujemo i faktore koji se nalaze uz

n,

2n

naredbi.

i umjesto da navedemo

konkretnu funkciju za broj koraka, rei emo da se algoritmi u navedenim primjerima izvravaju u linearnom vremenu, odnosno da su linearne vremenske
sloenosti.

Denicija 5.3. Neka je

algoritam. Kaemo da je

(vremenski) polinoman ako postoji polinom

A:
takav da je

timeA =

O(f (n)).

(vremenski) eksponencijalan ako postoji eksponencijalna funkcija

da je

g takva

timeA = O(g(n)).

Prilikom asimptotske analize zanemarujemo sve ostalo osim dijela koji


dominira u beskonanosti (kada duljina ulaza proizvoljno raste), i prema
njemu algoritam svrstavamo u klasu sloenosti.
(5.1) moemo svrstati u klasu

Tako funkciju iz primjera

O(n).

Iskaimo jo neke propozicije vezane uz notaciju veliko

kojima emo

se sluiti u analizi algoritama.

Propozicija 26. Ako vrijedi

f1 (n) = O(g1 (n)) i f2 (n) = O(g2 (n))


f1 (n) + f2 (n) = O(g1 (n) + g2 (n)).

tada je i

fi (n) = O(gi (n)) slijedi da postoje ni N i ci > 0 takvi da za


svaki n ni vrijedi fi (n) c gi (n), za i {1, 2}. Neka je n0 = max{n1 , n2 }
i c0 = max{c1 , c2 }. Tada za svaki n n0 vrijedi f1 (n) + f2 (n) c1 g1 (n) +
c2 g2 (n) c0 (g1 (n) + g2 (n)).

Dokaz. Iz

80

POGLAVLJE 5.

SLOENOST ALGORITAMA

Propozicija 27. Ako vrijedi

f1 (n) = O(g1 (n)) i f2 (n) = O(g2 (n))


f1 (n) + f2 (n) = O(max{g1 (n), g2 (n)}).

tada je i

n n1 vrijedi f1 (n) c1 g1 (n) i neka za svaki


f2 (n) c2 g2 (n). Neka je n0 = max{n1 , n2 } i c0 = c1 + c2 .
Tada za svaki n n0 vrijedi f1 (n) + f2 (n) c1 g1 (n) + c2 g2 (n)
(c1 + c2 ) max{g1 (n), g2 (n)} = c0 max{g1 (n), g2 (n)}.

Dokaz. Neka za svaki

n n2

vrijedi

Propozicija 28. Ako vrijedi

f1 (n) = O(g1 (n)) i f2 (n) = O(g2 (n))


f1 (n) f2 (n) = O(g1 (n) g2 (n)).

tada je i

n n1 vrijedi f1 (n) c1 g1 (n) i neka za svaki


n n2 vrijedi f2 (n) c2 g2 (n). Neka je n0 = max{n1 , n2 } i c0 = c1 c2 . Tada
za svaki n n0 vrijedi f1 (n)f2 (n) c1 g1 (n)c2 g2 (n) = c0 g1 (n)g2 (n).
Dokaz. Neka za svaki

Primjer 5.3. Odredite vremensku sloenost algoritma

for (i=0; i<n; ++i){


for (j=0; j<2*n; ++j){
;
}
sum = sum + i;
}
U ovom primjeru nalazimo petlju u petlji.

Rei emo da su petlje ug-

for petlja koja ovisi o i izvriti n puta, a sloeO(n). Unutar te petlje nalazi se for petlja koja
ovisi o j koja e se izvriti 2n puta, a ija je sloenosti O(n). Unutar nje
imamo jo dvije operacije ija je sloenost konstanta, O(1). Takoer, unutar
vanjske for petlje imamo jo jednu operaciju sloenosti O(1). Primjenom
njeene. Vidimo da e se

nost takvog izvravanja je

prethodnih propozicija raunamo da je sloenost ovog programa dana sa

O(n) (O(n) O(1) + O(1)) = O(n) (O(n 1) + O(1)) = O(n) (O(n + 1)) =
O(n n) = O(n2 ). Primijetimo da ovaj puta nismo uzimali u obzir konstante
koje dobivamo pri pokretanju for petlji.
Poueni prethodnim primjerom te uzimajui u obzir propozicije o raunanju asimptotskog ponaanja, moemo izvesti dva praktina zakljuka:

Jednostavni programi mogu se analizirati brojei ugnjeene petlje


unutar programa.

O(n2 ),

Tako e dvije ugnjeene petlje imati sloenosti

tri takve petlje

O(n3 )

itd.

Slino je i s programskim funkci-

jama koje se pozivaju unutar petlji.

Sloenost niza petlji i dijelova programa odreuje ona koja je ima najveu sloenost. Tako e program u kojemu se izvodi ugnjeena petlja
sloenosti
sloenost

O(n2 ), a zatim dio programa sloenosti O(n) imati ukupnu


O(n2 ), budui da je u tom sluaju ugnjeena petlja asimp-

totski dominantna.

5.2.

ALGORITMI

81

Navedimo jo jednu korisnu propoziciju.

Propozicija 29. Ako je

p : N R+

polinom stupnja

tada vrijedi

p(n) =

O(nk ).
p(n) = a0 + a1 nk + . . . + ak nk , gjde je ak 6= 0.
c = |a0 | + |a1 | + . . . + |ak |. Tada za svaki n N \ {0} vrijedi:
Dokaz. Neka je

Oznaimo

p(n) = |p(n)| |a0 | + |a1 | n + . . . + |ak | nk =




= |a0 |/nk + |a1 |/nk1 + . . . + |ak | nk
(|a0 | + |a1 | + . . . + |ak |) nk = cnk

Primjer 5.4. Sljedee tvrdnje su istinite:


1.

3n7 + 40n2 = O(n7 )

2.

2n + n2 = O(2n )

3.

3n + 2n = O(3n )

4.

nn + 3n + n7 = O(nn )

U prethodnom primjeru takoer smo primjenjivali prije navedene propozicije.


Opremljeni teorijskim rezultatima o algoritmima, spremni smo ih primjeniti na konkretnim primjerima poznatih algoritama koji su u irokoj upotrebi. To inimo u iduem odjeljku.

5.2 Algoritmi
U ovom odjeljku se bavimo primjenom dosad steenih rezultata na odabranim primjerima algoritama.

Jedni od najrairenijih algoritama upravo su

algoritmi sortiranja, budui da oni omoguuje lake organiziranje podataka


i omoguavaju uinkovitije pretraivanje. U praksi, podaci se mogu sortirati
prema razliitim vrijednostima kao to je na primjer telefonski imenik sortiran prema prezimenu korisnika telefona. U naim primjerima koristit emo
polja brojeva te emo smatrati da su sortirana uzlazno (od manjeg prema
veem), prema vrijednosti elemenata polja.

82

POGLAVLJE 5.

SLOENOST ALGORITAMA

5.2.1 Pretraivanje
Na koji god nain pohranjivali podatke, to inimo u svrhu njihovog kasnijeg koritenja.

Kako bismo u skupu podataka pronali one koji su nam

potrebni, sluimo se pretraivanjem. Iako moemo pretraivati na razliite


naine, ovdje se bavimo jednostavnim pretraivanjem iji je cilj pronai traenu vrijednost u polju ili pak zakljuiti kako takva vrijednost ne postoji.

Zadatak 5.1. Predloite jedan nain pronalaska broja u polju od

brojeva.

Rezultat pretraivanja treba biti mjesto traenog broja u polju ili informacija
da taj broj u polju ne postoji.
Rjeenje.

Jedino rjeenje prethodnog problema jest da na proizvoljan

nain (npr. redom od poetka) provjerimo sve vrijednosti u polju, dok ne


naemo traeni broj. Ponekad se moe dogoditi da se broj nalazi na samom
poetku, pa e broj provjeravanja biti minimalan.

Ponekad emo morati

proi cijelo polje da bismo utvrdili da se broj nalazi na kraju ili da se uope
ne nalazi u tom polju. Pretpostavljamo da emo u prosjeku morati izvriti

n/2 provjera vrijednosti, to sugerira da je sloenost


O(n). Ovo pretraivanje nazivat emo sekvencijalno.

ovakvog pretraivanja

Zadatak 5.2. Predloite jedan nain pronalaska broja u


od

sortiranom

polju

brojeva. Rezultat pretraivanja treba biti mjesto traenog broja u polju

ili informacija da taj broj u polju ne postoji.


Rjeenje. Ovaj primjer rjeavamo koristei binarno pretraivanje. Ono
koristi injenicu da je polje u kojem pretraujemo sortirano primjerice uzlazno.
da je

Neka je zadani niz duljine

potencija broja

2.

te zbog jednostavnosti pretpostavimo

Prvo s traenim brojem usporedimo element

na sredini polja, odnosno na mjestu

n/2.

Ako je element vei od traenog,

postupak nastavljamo na prvoj polovici polja, a ako je manji, na drugoj (elementi su sortirani uzlazno). Pretpostavljamo da je sloenost raspolavljanja
konstantna. Ovakvo raspolavljanje polja u kojem pretraujemo kljuna je
ideja binarnog pretraivanja i znaajno ubrzava postupak. U nastavku se bavimo samo polovicom poetnog polja na kojem ponavljamo postupak. Tako
prepolavljamo duljinu polja svakom novom iteracijom, sve dok ne pronaemo traeni broj ili ustanovimo da se on ne nalazi u polju. Dakle, u svakoj
iteraciji duljina niza u kojem pretraujemo skrauje se na sljedei nain

Nakon 1. podjele duljina je

n/2

Nakon 2. podjele duljina je

n/4

...

Nakon k-te podjele, duljina je

n/2k

5.2.

ALGORITMI

83

n/2k = 1, odnosno za k takav da je n = 2k .


To znai da smo obavili ukupno najvie k = log2 n raspolavljanja, a kako smo
Ovaj proces se zaustavlja kada je

rekli da samo raspolavljanje ima konstantnu sloenost, to je sloenost cijelog


ovog procesa logaritamska, odnosno odvija se u vremenu

O(log2 n).

Slika

(5.2.1) prikazuje znaajnu razliku u brzini rasta funkcija koje predstavljaju


sloenost sekvencijalnog i logaritamskog pretraivanja.

60

40

20

log2 n
0
0

50

100

150

200

Slika 5.1: Usporedba rasta linearne i logaritamske funkcije.

84

POGLAVLJE 5.

SLOENOST ALGORITAMA

Binarno pretraivanje koristi paradigmu podijeli pa vladaj (eng. divide

and conquer). Cilj je podatke kojima raspolaemo na neki nain podijeliti,


a zatim obraivati, budui da je jednostavnije baratati s manjim brojem
podataka (ili smanjiti koliinu kao kod binarnog pretraivanja).
U prethodnim primjerima zakljuili smo kako je mnogo bre pretraivati
podatke kada su oni sortirani. Stoga je jasno da e nam od interesa biti i
analizirati algoritma kojima se podaci sortiraju.

5.2.2 Sortiranje
Vidjeli smo kako nam sortiranje pomae u organizaciji podataka u svrhu pretraivanja. U nastavku analiziramo neke algoritme pomou kojih sortiramo.
Prvo dajemo primjer vrlo intuitivnog algoritma sortiranja.

Sortiranje niza izborom ekstrema


Ideja u pozadini ovog algoritma sortiranja (eng selection sort), jest dovesti
redom najmanje elemente na njihova mjesta. Kao i prije, sortiramo nizove
brojeva uzlazno. Sortiranje se izvodi sljedeim koracima:

Pronai najmanji element u nizu

Zamjeni vrijednost najmanjeg elementa i prvog elementa

Ponovi postupak na nizu koji ne sadri prvi element

U iteracijama svaki put skraujemo niz sprijeda, budui da su elementi koji


se nau na poetku niza upravo na mjestima na kojima trebaju biti. Jasno
je da se postupak prekida kada se duljina niza smanji na

1.

Programska

implementacija je jednostavna:

for (i = 0; i < n - 1; ++i) {


ind_min = i;
for (j = i+1; j < n; ++j)
if (x[j] < x[ind_min])
ind_min = j;

if (i != ind_min) {
temp = x[i];
x[i] = x[ind_min];
x[ind_min] = temp;
}

Zadatak 5.3. Analizirajte sloenost sortiranja niza izborom ekstrema.

5.2.

ALGORITMI

Rjeenje.

85

Provest emo klasinu analizu na kakvu smo navikli, dakle

brojei naredbe.

Primjeujemo da unutar jedne

for

petlje imamo drugu

for petlju i jo tri naredbe (kojima vrimo zamjenu vrijednosti), konstantne


sloenosti. Unutar druge for petlje imamo i odreen broj usporedbi koji je
za 1 manji u svakom prolasku vanjske for petlje. Koliko takvih usporedbi
ima sveukupno? U prvom izvravanju vanjske for petlje proi emo kroz sve
elemente u unutarnjoj for petlji, dakle obavit emo n usporedbi. Zatim u
iduem izvravanju vanjske for petlje imamo n 1 usporedbi u unutarnjoj
for petlji, itd. Ukupno, imamo
(n 1) + (n 2) + . . . + 2 + 1 =

n(n 1)
n2

2
2

Dakle, broj usporedbi kvadratno ovisi o duljini niza. U svakom izvravanju


vanjske

for petlje imamo najvie jednu zamjenu elemenata (ako je najmanji

element na prvom mjestu, zamjena se nee dogoditi). Ukupan broj zamjena

n1 (ako je niz obrnuto sortiran, u ovom sluaju silazno), odnosno


2
ovisi o n. Zakljuujemo da je ukupna sloenost algoritma O(n ).

je najvie
linearno

Napomena 4. Prilikom analize sloenosti sortiranja, esto se promatra


samo broj usporedbi meu elementima. Budui da za svaku usporedbu uglavnom imamo konstantan broj drugih naredbi (npr. pridruivanje vrijednosti
razliitim varijablama), iz toga e proizai samo konstanta to mnoi funkciju koja opisuje broj usporedbi. U skladu s denicijom (5.2), te konstante
opravdano zanemarujemo.
Vidjeli smo da u sortiranju niza izborom ekstrema broj usporedbi kvadratno ovisi o duljini ulaznog niza, neovisno o poetnom poretku elemenata.
Moemo se pitati postoji li bri algoritam, odnosno onaj koji koristi manje
usporedbi. Svaki element niza mora se barem jednom usporediti s nekim drugim elementom jer inae nemamo informaciju o veliini tog elementa. Dakle,
ne moemo oekivati pronai algoritam koji e imati manje od

n/2 usporedbi,

odnosno u kojem e broj usporedbi linearno ovisiti o duljini ulaznog niza.


To nam postavlja dvije ne toliko bliske granice sloenosti, (trivijalnu) donju
granicu

i dokazanu gornju granicu

n2 .

Vidjet emo da je u stvarnosti sloenost mnogo blia donjoj granici. Postoji nekoliko algoritama koji sortiraju niz od
za neku pozitivnu konstantu

elemenata u

cn log n

koraka,

c.

Mergesort
Algoritam koji je ime dobio prema engleskoj rijei merge, to znai spojiti,
odnosno stopiti, koristi poznatu paradigmu podijeli pa vladaj. Algoritam
niz od

elemenata najprije podijeli na dva niza (priblino) jednake duljine,

sortira oba niza te zatim

spaja

sortirane nizove.

itatelj bi sada mogao

86

POGLAVLJE 5.

SLOENOST ALGORITAMA

postaviti oito pitanje o tome kako algoritam sortira dobivene nizove. Odgovor je jednostavan - ponovnim koritenjem algoritma na svakom od dva niza,
dakle ponovnom podijelom na dva niza, sortiranjem i spajanjem.

Drugim

rijeima, Mergesort je rekurzivni algoritam koji sam sebe poziva u svakom


koraku.
Promotrimo jo jedan detalj, a to je postupak spajanja nizova. Potrebno
je spojiti sortirane nizove

a1 < a2 < . . . < am

jedan, takoer sortirani niz.


nain. Usporedimo najprije
svih

m+k

b1 < b2 < . . . < bk

a1

b1 .

Ako je

a1 < b1 ,

tada je

a1

najmanji od

elemenata i stavljamo ga na poetak izlaznog niza. Nakon toga

postupak nastavljamo na nizovima


Ako je

To uinkovito moemo napraviti na sljedei

a1 > b 1 ,

tada je

b1

a2 < a3 < . . . < am i b1 < b2 < . . . < bk .


m + k elemenata te postupamo

najmanji od svih

analogno kao u prvom sluaju. Postupak ponavljamo dok ne iskoristimo sve


elemente u oba niza.
Ako niz ima samo jedan element, smatramo da je sortiran.

Takoer,

ako niz ima samo dva elementa i nije sortiran, ne soritiramo ga korakom u
rekurziji ve zamjenom vrijednosti elemenata.

Primjer 5.5. Sljedei koraci opisuju rad algoritma Mergesort na nizu

4 2 1 5 6 3.
1. Poni s nizom

4 2 1 5 6 3.

2. Podijeli niz u dva niza. To su nizovi

4 2 1 i 5 6 3.

3. Sortiraj nizove na sljedei nain:


(a) Podijeli nizove u

4 2 i 1; 5 6 i 3.

(b) Sortiraj nizove u

2 4 i 1; 5 6 i 3.

24i1

1 2 4; 5 6 i 3

124i356

1 2 3 4 5 6.

(c) Spoji nizove


4. Spoji nizove

3 5 6.

5. Kraj.
Prilikom analize algoritma Mergesort koristit emo znanje o rekurzijama
steenim u prethodnim poglavljima. Takoer, malo emo se odmaknuti od
asimptotske analize i pokuati pronai toan broj koraka, odnosno usporedbi
koje algoritam izvodi, iz ega e lako slijediti asimptotska ocjena. Oznaimo
s

M (n)

maksimalan broj koraka koji algoritam Mergesort napravi s pro-

izvoljnim nizom duljine


da ako je

n = 2k ,

na ulazu. Tada je

M (1) = 0 i M (2) = 1.

M (2k) = 2M (k) + 2k 1,
a ako je

Tvrdimo

tada je

n = 2k + 1,

(5.1)

tada je

M (2k + 1) = M (k) + M (k + 1) + 2k.

(5.2)

5.2.

ALGORITMI

87

Do obje formule lako dolazimo promatrajui algoritam.

Na desnoj strani

imamo broj usporedbi potrebnih za sortiranje polovica niza, zbrojen s brojem


usporedbi potrebnih za spajanje sortiranih nizova. Prilikom spajanja svakom
usporedbom stavljamo jedan element na njegovo pravo mjesto u izlaznom
nizu, a nakon

n1

usporedbi smjestili smo

n1

elemenata, to nalae da

i zadnji element dolazi na pravo mjesto.


Primijetimo da formule (5.1) i (5.2) moemo zajedno zapisati kao

M (n) = M (bn/2c) + M (dn/2e) + n 1,


gdje su

bxc

dxe

funkcije najvee cijelo koja svakom realnom broju

x i najmanje cijelo
broj vei od x.

druuje najvei cijeli broj manji od


broju

(5.3)

pridruuje najmanji cijeli

pri-

koja svakom realnom

Potekoe s djeljivosti navode nas da prvo pokuamo pronai formulu za

M (n)

u posebnom sluaju kada je

Tada je

M (2k1 )

ak1 =

n = 2k . Oznaimo krae ak = M (2k ).


= M (d2k /2e). Formulu (5.3) prevo-

M (b2k /2c)

dimo u

ak = 2ak1 + 2k 1
za

k 1

a 0 = 0.

(5.4)

Koristimo znanja iz prethodnog poglavlja kako bismo

rijeili rekurziju (5.4), odnosno dobili eksplicitnu formulu za

k
k0 ak x

a(x) =

(5.4) s

xk

funkcija izvodnica niza

i sumiranjem po

ak xk = 2

k1
Koristei

a0 = 0

k1
X

ak .

ak .

dobivamo

ak1 xk +

k1

(2x)k

k1

xk .

k1

dobivamo

ak xk = 2x

ak xk +

k0

k0

| {z }

| {z }

a(x)

(2x)k

k1

xk ,

k1

a(x)

iz ega slijedi

a(x) = 2xa(x) +

2x
x

.
1 2x 1 x

Iz ega rastavom na parcijalne razlomke slijedi

2x
x
x

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

2
(1 2x)
1 x 1 2x

a(x) =

Neka je

Mnoei obje strane formule

88

POGLAVLJE 5.

SLOENOST ALGORITAMA

Zapiimo svaki od pribrojnika pomou reda. Prema generaliziranom binomnom teoremu imamo

X 2
1
2
(2x)k
= (1 2x) =
(1 2x)2
k
k0


X
k 2+k1
(2x)k
=
(1)
k
k0
X
X k + 1
(k + 1)2k xk
2k xk =
=
k
k0

k0

i direktnim razvojem u red

X
1
=
xk
1x
k0

X
2
=2
2k xk .
1 2x

an = (k + 1)2k + 1 2 2k ,
n = 2k imamo

Prema tome
znai da za

k0

odnosno

ak = (k 1)2k + 1.

To

M (n) = M (2k ) = n(log2 n 1) + 1.


Ako

nije potencija broja

2,

moemo dodati elemente u niz koji su vei

n ne postane najblia vea po2, odnosno n1 = 2dlog2 ne . Tada moemo sortirati novi niz u
n1 (log2 n1 1) + 1 koraka. Dobiveni niz sadravat e poetnih n elemenata sortiranih na poetku niza. Konano, primijetimo da je n1 < 2n i
log2 n1 < log2 n + 1, pa prema tome algoritam nikad nee obaviti vie od
1 + 2n log2 n usporedbi.
Oito je da je asimptotska sloenost algoritma Mergesort jednaka O(n log2 n).
od svih ostalih postojeih elemenata dok
tencija broja

Ovime zavravamo poglavlje o sloenosti algoritama.

Zakljuujemo da

e algoritmi manje sloenosti u praksi imati krae vrijeme izvravanja. Spomenimo da na slian nain moemo promatrati i prostornu sloenost kojom
odreujemo koliko je prostora (npr. na disku) potrebno za izvravanje algoritma, to moe biti vrlo korisno. Drugi algoritmi i detaljnija analiza njihove
sloenosti dani su u [7] i [12].

ALGORITMI

89

n2

5.2.

3,000

2,000

g2
n lo

1,000

0
0

50

100

150

Slika 5.2: Usporedba rasta funkcija

200

n2 i n log2 n.

90

POGLAVLJE 5.

SLOENOST ALGORITAMA

Poglavlje 6

Kriptograja
Kroz itavu povijest ljudi su eljeli meusobno djelotvorno komunicirati na
nain da poslanu poruku moe proitati samo ona osoba kojoj je poruka
namijenjena. Dravnici, generali, trgovci i ostali koji su svoje tajne eljeli
podijeliti s nekim drugim, bili su svjesni da njihove poruke putuju esto nesigurnim kanalima te da mogu biti uhvaene i proitane, a njihove namjere
otkrivene. Upravo ta potreba za onemoguavanjem protivnika da sazna znaenje poruka potakla je razvoj znanstvene discipline koju nazivamo kriptograja.

Dananji, vrlo povezani svijet poiva na brojnim rezultatima iz

kriptograje, koja je i danas vrlo aktivno znanstveno podruje sa irokim i


brojnim primjenama.

6.1 Uvod
U ovom odjeljku dajemo uvod u kriptograju kroz temeljne pojmove, denicije i koncepte vane za razumijevanje te primjere iz klasine, odnosno
predraunalne kriptograje. Vie detalja moe se pronai primjerice u [10].

6.1.1 Osnovni pojmovi


U kriptograji, poruka koja se alje moe biti bilo kakav niz znakova i naziva
se otvoreni tekst. Takva poruka se transformira koristei neki kriptografski al-

goritam ili ifru i unaprijed odreeni klju. Taj postupak nazivamo ifriranje
ili enkripcija, a rezultat toga je ifrat ili kriptogram - izmijenjena poruka za
koju poiljatelj i primatelj (nazovimo te dvije osobe Alisa i Bob), vjeruju da
nee moi biti proitana od strane tree osobe (nazovimo je Eva). Primljena
poruka se deifrira koritenjem pripadnog algoritma i odgovarajueg kljua.

Kriptoanaliza je disciplina koja se bavi nainima dobivanja otvorenog teksta


iz ifrata bez poznavanja kljua ili naina ifriranja.

Primjer 6.1. Poznati rimski car i vojskovoa Gaj Julije Cezar sluio se jednostavnom, ali u to doba uinkovitom kriptografskom metodom. Jednostavno
91

92

POGLAVLJE 6.

KRIPTOGRAFIJA

bi svako slovo abecede zamijenio onim koje dolazi tri slova poslije, uz pretpostavku da se abeceda cikliki nastavlja. Tako bi, primjerice, slovo A postalo
D, B postalo E, C postalo F i tako dalje. Na taj nain, Cezarova poznata
izreka ALEA IACTA EST postaje DOHD LDFWD HVW. Ovakva metoda
jednostavno se provodi uz pregledan zapis:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Takoer, primatelj poruke moe je ponovo proitati tako da ponovi postupak, no sada u suprotnome smjeru. Pokuajte otkriti sadraj sljedee kratke
poruke:
KDQLEDO DQWH SRUWDV

Ovu metodu nazivamo Cezarova ifra.


Nakon uvodnog primjera dajemo i sljedeu formalnu deniciju kriptosustava.

Denicija 6.1. Kriptosustav je ureena petorka

(M, C, K, E, D)

gdje je

skup svih moguih otvorenih tekstova,

skup svih moguih ifrata,

skup svih moguih kljueva,

funkcija ifriranja,

funkcija deifriranja,

E : M K C ,
D : C K M,

i vrijedi

m M, k K, D(E(m, k), k) = m.
Kriptosustave dijelimo na tri naina, i to prema:
1.

Tipu operacija nad elementima otvorenog teksta


Kriptosustavi uglavnom koriste dvije metode prema kojima ih dijelimo
na: supstitucijske, u kojima se elemenati otvorenog teksta zamijenjuju
nekim drugim elementom, te transpozicijske, u kojima se koristi premjetanje elemenata otvorenog teksta.

U oba naina mora postojati

neki algoritam kojim se iz ifrata moe ponovo dobiti otvoreni tekst.


2.

Broju kljueva
Ako se isti klju koristi za ifriranje i deifriranje, tada govorimo o

simetrinom ili konvencionalnom kriptosustavu. Ako se za ifriranje


i deifriranje koriste razliiti kljuevi, tada govorimo o asimetrinom,
odnosno kriptosustavu javnog kljua.

6.1.

UVOD

3.

93

Nainu obrade otvorenog teksta


ifre u kojima se otvoreni tekst prije samog ifriranja dijeli na nizove
jednake duljine nazivamo blokovne ifre.

Protone ifre ifriraju ele-

mente otvorenog teksta u nizu jedan za drugim.


Sada znamo da je Cezarova ifra jednostavniji primjer supstitucijske ifre.
Ona je takoer i simetrina, protona ifra.

Prije openitih komentara o

kriptoanalizi, vratimo se jo jednom Cezarovoj ifri u sljedeem primjeru,


ovoga puta u ulozi kriptoanalitiara.

Primjer 6.2. Dekriptirajmo ifrat OFMCZGYTV dobiven Cezarovom ifrom s nepoznatim pomakom abecede.
Kriptoanaliza Cezarove ifre izuzetno je jednostavna, budui da je broj
naina na koji moemo pomaknuti abecedu vrlo mali.
klju kod Cezarove ifre prirodni broj
mijetimo da

Moemo rei da je

koji oznaava pomak abecede. Pri-

moe biti najvie broj elemenata abecede, to je u sluaju

engleske abecede

26.

Metodom grube sile, odnosno isprobavanja svih mo-

guih kljueva brzo dolazimo do otvorenog teksta.


O

.
.
.
E

Dakle, otvoreni tekst je Dubrovnik, a klju

k = 11,

slovo otvorenog teksta zamijenjeno slovom koje se nalazi

budui da je svako

11 mjesta iza njega

u abecedi. Cezarova ifra je primjer kako mali broj kljueva dovodi do izrazite
nesigurnosti.
Meutim, ne moramo uvijek imati isti poredak slova u abecedi kojom
ifriramo. Dapae, kod supstitucijskih ifri svako slovo abecede moemo zamijeniti bilo kojim drugim, odnosno umjesto da abecedu pomiemo, moemo
uzeti bilo koju njenu permutaciju i smatrati je kljuem supstitucijske ifre.
Budui da je broj takvih kljueva

26! 288 ,

to ini supstitucijsku ifru

vrlo otpornom na napad ivom silom, odnosno protivnik treba uloiti mnogo
truda da isproba sve mogue kljueve. Ovakavo poboljanje Cezarove jednostavne ideje uinilo je supstitucijsku ifru prikladnom za koritenje kroz
povijest sve do pronalaska napada koji koristi svojstva jezika na kojem je napisan otvoreni tekst ime je zauvijek zavrena uporaba takve ifre. Navedimo
jo nekoliko pojmova vezanih uz kriptoanalizu.

6.1.2 Sigurnost i vrste napada


Prema Kerckhoovu naelu, u kriptograji se smatra da bi kriptosustav trebao biti siguran bez obzira na to zna li kriptoanalitiar koji se kriptosustav

94

POGLAVLJE 6.

KRIPTOGRAFIJA

koristi. Dakle, sigurnost ne poiva na tajnosti naina ifriranja, ve u potpunosti ovisi o kljuu. Kroz povijest kriptoanalitiari slijede nova dostignua
u kriptograji i smiljaju nove metode kojim mogu napadati kriptosustave.
Zbog toga je vano poznavati svojstva kriptosustava koje koristimo te mogunosti koje ima protivnik koji pokuava otkriti klju ili sadraj ifrata. Sigurnost ovisi o svojstvima algoritma za ifriranje te ponekad i o svojstvima
jezika na kojem je pisan otvoreni tekst. Iako ne spada strogo u kriptoanalizu nego se najee promatra zasebno, jedan od naina otkrivanja kljua je
ve spomenuti napad ivom silom, koji postaje izuzetno nepraktian ako je
prostor kljueva velik. Ipak, i danas se koristi, primjerice za otkrivanje kratkih korisnikih zaporki na internetskim raunima.

Navodimo etiri razine

kriptografskih napada:

Samo ifrat
Kriptoanalitiar posjeduje samo jedan ili vie ifrata dobivenih na isti
nain. Zbog male koliine dostupnih informacija, od ovog napada su
sigurni mnogi kriptosustavi.

Poznati otvoreni tekst


Kriptoanalitiar uz svaki ifrat posjeduje i odgovarajui otvoreni tekst.
Ovaj napad koristi injenicu da poruka moe sadravati neki standardizirani dio, primjerice zaglavlje ili pravne napomene (eng. disclaimer )
na kraju poruke.

Odabrani otvoreni tekst


Kriptoanalitiar moe odabrati tekst koji e biti ifriran, dakle moe
odabrati takav ifrat za koji oekuje da e otkriti neka svojstva kljua.

Odabrani ifrat
Kriptoanalitiar moe odabrati ifrat koji e biti deifriran. Ovaj napad
esto se koristi kod kriptosustava s javnim kljuem, a zadatak je otkriti
tajni klju.
Kada govorimo o sigurnosti kriptosustava vano je poznavati teorijske
koncepte sigurnosti.

Za kriptosustav kaemo da je savreno siguran

1 ako

dobiveni ifrat ne sadrava dovoljno informacija kako bi se iz njega mogao


dobiti otvoreni tekst, bez obzira na duljinu ifrata. To znai da bez obzira
koliko vremena protivnik ima, on ne moe doi do potrebnih informacija
budui da se one ne nalaze u ifratu. Naalost ne postoji kriptosustav koji
je savreno siguran, uz iznimku  jednokratne biljenice, o kojoj e biti rijei
kasnije. Zbog toga se kriptosustavi pouzdaju u raunalnu sigurnost. Ona se
postie ako je zadovoljen barem jedan od sljedea dva uvjeta:

Cijena napada na ifrat premauje vrijednost ifriranih informacija.

Po jam savrene sigurnosti uvodi Claude Shannon 1949. u [15]

6.1.

UVOD

95

Vrijeme potrebno za dobivanje otvorenog teksta premauje vrijeme u


kojem su ifrirane informacije relevantne.

Promotrimo supstitucijsku ifru, koja e nam posluti za demonstraciju


napada samo ifrat.

Primjer 6.3. Dekriptirajmo ifrat dobiven supstitucijskom ifrom, ako je


poznato da je otvoreni tekst na hrvatskom jeziku.
RFZGB OXFNW ZKNKV MTNTJ BDVTN UZJSZ GIZTN CROKO
KKVMN FNMDO KJZXC FTZYR FZGBO JCJBN DNDNM TOGOM
TNDNB ZPVBO UVRFZ GBONT NIZMV ZPOXC SVTNG NUV.
Supstitucijske ifre podlone su napadu koji koristi statistika svojstava
jezika, odnosno napadu frekvencijskom analizom.

Zadatak kriptoanaliti-

ara je pobrojati pojavljivanje svakog slova u ifratu, te na osnovu poznavanja statistikih svojstva jezika na kojem je pisan otvoreni tekst otkriti njegov
sadraj. Pretpostavljamo da frekvencija slova u ifratu odgovara frekvenciji
slova u jeziku. Na slici (6.1) prikazujemo distribuciju slova engleske abecede
u hrvatskom jeziku kako je navedeno u [10].

120

115
98

100

90
84

frekvencija (h)

80
66

60
40
20

51
37
28

3633
31

5456
48
43
35
29
23

16

15
3

0
A B C D E F G H I J K L MN O P R S T U V Z
Slika 6.1: Frenkvencija slova engleske abecede u hrvatskom jeziku.

96

POGLAVLJE 6.

KRIPTOGRAFIJA

Najfrekventniji bigrami:
JE (2.7%), NA (1.5%), RA (1.5%), ST, AN, NI, KO, OS, TI, IJ, NO, EN,
PR (1.0 %).
Najfrekventniji trigrami:
IJE (0.6%), STA, OST, JED, KOJ, OJE, JEN (s frekvencijama izmeu 0.3%
i 0.4%).
Pobrojimo slova u danom ifratu.
O, pa je logino pretpostaviti da je

Tri najfrekventnija slova su N, Z i

E(A) = N , E(I) = Z

E(O) = O.

Uoavamo da je sljedee najfrekventnije slovo T, ali takoer uoavamo esto


pojavljivanje bigrama TN. Budui da znamo da je NA est bigram u hrvat-

E(N ) = T . Idue najfrekventnije


E(E) = V . Pokuajmo otkriti ifrat

skom jeziku, iz ovoga zakljuujemo da je


slovo je V, pa pretpostavimo da je

estog bigrama JE. Imamo dva najozbiljnija kantidata, KV i UV. Kako je J


jedno od frekventnijih slova u hrvatskom jeziku, uzmimo da je

E(J) = K ,

budui da se K u ifratu pojavljuje ee nego U. Kada ubacimo pretpostavke


u polazni ifrat, vidimo da otvoreni tekst zapoinje s rijei kriptograja.
Iz toga pronalazimo i ostala slova koja nam otkrivaju preostale rijei te na
kraju dolazimo do otvorenog teksta

Kriptograja je znanstvena disciplina u kojoj je za razvoj sigurnih


kriptosustava vazno poznavati metode kriptoanalize i moguce napade.
Niz slova pomou kojeg kao kod Cezarove ifre zamijenjujemo slova otvorenog
teksta je
NQSUVWXYZKRIPTOGAFJBCDEHLM.
Uoimo pojavljivanje kljune rijei kriptograja unutar alfabeta ifrata.
Radi se o varijanti supstitucijske ifre koja se nazva Cezarova ifra s klju-

nom rijei. Klju predstavljaju kljuna rije i broj (u ovom sluaju 9) koji
oznaava poziciju na kojoj poinjemo pisati kljunu rije bez ponavljanja
slova.

6.1.3 Jednokratna biljenica


Kada smo govorili o sigurnosti kriptosustava, spomenuli smo jednokratnu
biljenicu kao savreno siguran kriptosustav. Ovdje objanjavamo nain rada
i navodimo zato se ona smatra toliko sigurnom. U nastavku smatramo da su
skup moguih otvorenih tekstova, moguih ifrata i moguih kljueva samo
binarni nizovi, dakle nizovi nula i jedinica (bitova). U skladu s denicijom

M = C = K = {0, 1}n . U kriptosustavu


jednokratna biljenica uzimamo otvoreni tekst m M duljine n N (to
oznaavamo s |m| = n), i klju jednake duljine k K (|k| = n), te nad njima
primjenjujemo operaciju ekskluzivno ili po bitovima. Za m = (m1 , . . . , mn )
i k = (k1 , . . . , kn ) imamo m k = (m1 k1 , . . . , mn kn ). Dakle, raunajui
kriptosustava, to oznaavamo

6.1.

UVOD

c = mk

97

dobivamo ifrat

c C.

Za klju se koristi nasumino odabran niz

bitova. Formalno,

E(m, k) = m k
D(c, k) = c k.
Primjer 6.4. Koristei nain rada jednokratne biljenice, ifrirajmo otvoreni
tekst

m = 11010111

pomou kljua

k = 01101110.

Ovaj primjer vrlo lako rjeavamo raunajui rezultat operacije ekskluzivno ili - potpisujui otvoreni tekst i ifrat te primjenjujui operaciju po
bitovima.

Time dolazimo do ifrata

c = 10111001.

Deifriranje se odvija na isti nain,

c = mk
m = (m
imamo m =

primjenjujemo operaciju ekskluzivno ili na ifrat i klju. Neka je


neki ifrat. Tvrdimo da je

m = c k.

Uvrtavanjem dobivamo

k) k , a zatim zbog asocijativnosti operacije ekskluzivno ili


m k k . Budui da je k k = 0, a 0 je neutralni element

za operaciju

ekskluzivno ili, pokazali smo to se trailo.


Recimo jo neto o sigurnosti jednokratne biljenice. Kada smo spominjali Shannonovu deniciju savrene sigurnosti, rekli smo da je vano da
ifrat ne sadri informacije koje bi pomogle kriptoanalitiaru. Savrenu sigurnost kriptosustava

(M, C, K, E, D)

moemo denirati i na sljedei nain.

m0 , m1 M, |m0 | = |m1 |, c C,
P [E(m0 , k) = c] = P [E(m1 , k) = c], k K.
Za dani klju, bilo koji otvoreni tekst ima jednaku vjerojatnost da je ifriran
tim kljuem i proizveo ifrat koji je u posjedu kriptoanalitiara. To znai da
on ne moe odrediti je li otvoreni tekst
teksta iz

C,

m0

ili

m1 ,

za bilo koja dva otvorena

to znai da ne postoji napad samo ifrat.

Pokaimo da je jednokratna biljenica savreno sigurna. Vjerojatnost da


je neki ifrat

kK

cC

dobiven iz otvorenog teksta

jednaka je broju kljueva za koje vrijedi

m M koritenjem kljua
E(m, k) = c podijeljenim s

ukupnim moguim brojem kljueva,

P [E(m, k) = c] =

broj

kK

takvih da je

E(m, k) = c

|K|

, m M, c C.

c i m samo za jedan klju k vrijedi c = E(m, k). To znai da je


1
P [E(m, k) = c] = |K|
za sve c i m. Prema Shannonovoj deniciji zakljuu-

Za dane

jemo da je jednokratna biljenica savreno sigurna.

98

POGLAVLJE 6.

KRIPTOGRAFIJA

Veliki nedostatak ovog kriptosustava je duljina kljua. Naime, osobe koje


ele sigurno komunicirati moraju prvo sigurno razmjeniti klju, no ako imaju
tu mogunost na taj nain bi mogli prenijeti i samu poruku. Upravo zbog
toga koritenje jednokratne biljenice vrlo je nepraktino. Spomenimo jo da
ona postaje vrlo nesigurna ako se isti klju koristi dva puta. Naime, kada bi
protivnik presreo ifrate

c1

c2 ,

iskoristio bi svojstvo operacije ekskluzivno

ili te izraunao

c1 c2 = m1 k m2 k
= m1 k k m2
= m1 0 m2
= m1 m2 ,
ime dobiva dvije poruke nad kojima je primjenjena operacija ekskluzivno
ili .

Tada je mogue, koritenjem statistikih svojstava jezika na kojem

su pisane poruke, doi do otvorenog teksta.

Vidimo da je naziv  jedno-

kratna sasvim opravdan.


U ovom odjeljku uveli smo osnovne pojmove i dali primjere povijesnih
ifri iz predraunalne ere koje se danas ne koriste zato to na njih postoje
djelotvorni napadi ili zato to su nepraktine. U iduem odjeljku bavit emo
se modernim kriptosustavima, od kojih se neki i danas smatraju sigurnima
i svakodnevno koriste.

6.2 Blokovni kriptosustavi


Cilj ovog odjeljka je opisati nain rada modernih simetrinih kriptosustava,
prvo kroz prikaz ideja na kojima temelje svoju sigurnost, a potom kroz analizu konkretnih kriptosustava kao to su DES, 3DES i AES. Valja istaknuti da
se danas DES smatra nesigurnim, a zamijenili su ga moderniji kriptosustavi
3DES i AES.

6.2.1 Osnovni principi


Blokovni kriptosustavi obrauju dijelove otvorenog teksta kao nizove ksne
duljine, koji se smatraju kao cjeline prilikom ifriranja i deifriranja te se kao
ifrat dobiva niz jednake duljine. Na primjer, 3DES obrauje blokove veliine

64

bita, uz klju duljine

168

bitova dok AES obrauje blokove veliine

bitova, a klju moe biti razliite duljine,

128, 192

ili

256

128

bitova.

U blokovnim kriptosustavima otvoreni tekst se uglavnom ifrira u vie


iteracija, koje nazivamo runde. Zadani klju se proiruje kako bismo dobili
jedinstveni klju odgovarajue duljine za svaku rundu. Zatim se ulazni blok
otvorenog teksta iterativno ifrira koristei dobiveni klju za svaku rundu
pomou zadane funkcije ifriranja

R(, ki ).

Ona prima dva parametra te u

6.2.

BLOKOVNI KRIPTOSUSTAVI

99

Slika 6.2: Shema blokovnog kriptosustava.

svakoj rundi ifrira trenutno stanje otvorenog teksta pripadnim kljuem za


tu rundu, sve do zadnje runde nakon koje dobivamo konani ifrat. Razliiti
kriptosustavi koriste razliiti broj rundi.
rundi, dok AES koristi

10

Tako primjerice 3DES koristi

38

rundi.

Blokovne kriptosustave zanimljivo je promatrati kao pseudosluajne per-

mutacije, to omoguuje bolje razumijevanje i analizu. Uvodimo ih u nastavku, kao i pseudosluajne funkcije.

Neka je zadana ureena trojka nepraznih skupova

(K, X, Y ).

Funkciju

F : X K Y
nazivamo pseudosluajna funkcija ako postoji uinkoviti

2 algoritam

koji je izraunava.

Neka je zadan ureeni par nepraznih skupova

(X, K).

Funkciju

E : X K X
nazivamo pseudosluajna permutacija ako za sve

kKixX

1. Postoji uinkoviti algoritam koji izraunava


2. Za ksan

k K,

funkcija

E(, k)

vrijedi

E(x, k).

je bijekcija.

3. Postoji uinkoviti algoritam koji izraunava inverz,

D(x, k) =

E 1 (x, k).
Kod pseudosluajnih permutacija skup
Iako je skup

nazivamo prostorom kljueva.

proizvoljan, prikladno bi bilo za

uzeti skup svih binarnih

Uinkovitim smatramo algoritam koji je primjenjiv u praktine svrhe, npr. algoritmi

najvie polinomijalne sloenosti

100

POGLAVLJE 6.

nizova duljine

128, X = {0, 1}128

KRIPTOGRAFIJA

(ulazni i izlazni blokovi za AES). Sada

vidimo zato je prirodno poistovjetiti blokovne kriptosustave sa pseudosluajnim permutacijama:

U prethodnoj konstrukciji zahtijevamo da je funkcija

invertibilna,

ba kao to i u deniciji kriptosustava funkcija ifriranja mora biti


invertibilna.

Kao to i oekujemo kod blokovnih kriptosustava, pseudosluajna permutacija preslikava binarni niz u drugi binarni niz iste duljine.

Ponekad emo blokovne kriptosustave nazivati i pseudosluajnim permutacijama. Istraivanjem ovakve apstraktne konstrukcije istrait emo i svojstva
blokovnih kriptosustava. U nastavku komentiramo sigurnosne osobine pseudosluajnih permutacija.
Neka je

F : KX Y
X uY

pseudosluajna funkcija. Oznaimo s Funs[X, Y

skup svih funkcija s

te neka je

SF = {F (, k), k K}

za zadanu

skup svih funkcija koje su odreene pseudosluajnom funkcijom


damo

k.

Dakle, ako uzmemo neki

Prema tome,

SF

time smo odredili funkciju s

im za-

Y.

oznaava skup svih takvih funkcija za sve mogue klju-

eve nad prostorom kljueva


tada je

k,

|SAES | = 2128 .

K.

Oito je

Ako govorimo o prostoru kljueva za AES,

SF

Funs[X, Y ].

Nadalje, vidimo da je

broj funkcija u tom skupu jednak broju moguih kljueva


dui da je svaka funkcija odreena s nekim

|Funs[X, Y ]| = |Y ||X| .

k K,

|SF | = |K|,

bu-

to je mnogo manje od

Smatrat emo da je pseudosluajna funkcija sigurna

ako je ne moemo razlikovati od nasumino odabrane funkcije iz Funs[X, Y ].


To znai da ako odaberemo neki klju

kK

i neku funkciju

F (x, k)

te damo protivniku da rauna samo vrijednosti


od

ili samo vrijednosti

(ne naizmjenino), za proizvoljan broj elemenata iz

odrediti izraunava li vrijednosti funkcije

ili

F.

f Funs[X, Y ],

X,

on nee moi

Denicija sigurne pseudos-

luajne permutacije je analogna, samo u prethodnim razmatranjima umjesto


openitih funkcija koristimo permutacije. Cilj konstrukcije pseudosluajnih
funkcija i permutacija je dobiti one koje ne moemo razlikovati od stvarno
sluajnih funkcija, odnosno permutacija.

Prikaimo izvedene zakljuke na

sljedeem primjeru.

Primjer 6.5. Neka je

F : K X {0, 1}128

neka sigurna pseudosluajna

funkcija. Razmotrimo je li i pseudosluajna funkcija zadana s

(
{0}128 ,
G(x, k) :=
F (x, k),

za

x=0

inae

takoer sigurna.
Vrlo je lako razlikovati funkciju

G od neke prave sluajne funkcije. Naime,


x = 0, uvijek e dobiti {0}128

ako protivnik izraunava vrijednost funkcije za

6.2.

BLOKOVNI KRIPTOSUSTAVI

bez obzira na klju

k,

101

dok bi vjerojatnost za takav rezultat bila

1/2128

da

je rije o pravoj sluajnoj funkciji. Ovim primjerom smo pokazali kako za


samo jedan ulaz koji nije siguran, cijela funkcija postaje nesigurna, iako je
za sve druge ulaze potpuno sigurna.
Promotrimo sada primjenu pseudosluajnih funkcija kao pseudosluajnih
generatora. Neka je

F : K {0, 1}n {0, 1}n


sigurna pseudosluajna funkcija i

tN

zadan. Tada je

G : K {0, 1}nt ,
zadana s

G(k) = F (0, k)kF (1, k)kF (2, k)k . . . kF (t, k),


siguran pseudosluajni generator gdje je

oznaka za konkatenaciju nizova.

Sigurnost ovako zadanog generatora proizlazi iz sigurnosti dane pseudosluajne funkcije. Kada bi generator bio zadan s

G0 (k) = f (0)kf (1)kf (2)k . . . kf (t),


gdje je

neka sluajna funkcija, tada ne bismo mogli razlikovati rezultat

generatora

G0

G,

budui da vrijednosti pseudosluajne funkcije

emo razlikovati od vrijednosti neke stvarno sluajne funkcije.


koje daje sluajna funkcija

ne mo-

Vrijednosti

meusobno su nezavisne, a konkatenacija slu-

ajnih nizova je takoer sluajna. Budui da nizove dobivene s

G ne moemo
G siguran.

0
razlikovati od nizova dobivenih s G , smatramo da je generator

Iz prethodnog vidimo kako moemo analizirati sigurnost pomou svojstava


pseudosluajnih funkcija.
Sada znamo kako na siguran nain generirati naizgled sluajne, ali dovoljno sigurne nizove koji su dulji od zadanog kljua, odnosno proiriti klju
za potrebe svake runde u blokovnom kriptosustavu. U nastavku promatramo
DES, vaan kriptosustav koji je klasian primjer modernih simetrinih kriptosustava.

6.2.2 Data Encryption Standard (DES)


Data Encryption Standard (DES) bio je prvi kriptosustav prihvaen kao

standard. Krajem 60-ih i poetkom 70-ih godina dvadesetog stoljea pojavila


se potreba za jedinstvenim nainom ifriranja koji e se moi koristiti diljem
svijeta.

Iz tog razloga 1972.

godine ameriki NBS

3 je pokrenuo natjeaj

za osmiljavanje takvog standardiziranog kriptosustava. Nakon provedenih


provjera, testiranja i promjena u procesu standardizacije koje je predloila

National Bureau of Standards, danas NIST, National Institute of Standards and Tec-

hnology

102

POGLAVLJE 6.

NSA, 1976.

KRIPTOGRAFIJA

kao DES je izabran kriptosustav koji je osmiljen u IBM-u

pod vodstvom tadanjeg voditelja IBM-ovog kriptografskog odjela, Horsta


Feistela.

Temelji se na ideji iteriranih supstitucija i transpozicija koju je

uveo Feistel, a iji pregled dajemo u nastavku.

Feistelove mree
Ideja u pozadini DES-a je Feistelova mrea, u kojoj gradimo blokovni kriptosustav pomou proizvoljih funkcija

f1 , . . . , fd : {0, 1}n {0, 1}n ,


koje preslikavaju niz od

n bitova u niz od n bitova, a cilj je dobiti invertibilnu

funkciju

F : {0, 1}2n {0, 1}2n .

Slika 6.3: Shema Feistelove mree.


Ulazni niz od 2n bitova
R0 i L0 , svaki duljine n bitova. R0 se preslikava u L1 bez promjene, tj. L1 = R0 . Da bismo dobili
R1 , raunamo vrijednost operacije (ekskluzivno ili) primijenjene na L0 i
vrijednost funkcije f1 s ulazom R0 , tj. R1 = L0 f1 (R0 ). Openito,
Sada opisujemo konstrukciju takve funkcije.

podijelimo u dva, na slici (6.3) prikazanih kao

Li = Ri1 , Ri = Li1 fi (Ri1 )


Tvrdimo da je ovakvo raunanje u konstruiranoj Feistelovoj mrei invertibilno bez obzira jesu li funkcije

fi invertibilne.

To pokazujemo konstrukcijom

inverza. Pogledajmo samo jednu rundu koja je prikazana na slici (6.4).


Pretpostavimo da je dan ulaz na desnoj strani, odnosno da su zadani
i

Li+1 .

Oito

Ri

nepromijenjeno preslikala u
bismo dobili

Li ,

Li+1 ,

x,

pa moemo zakljuiti da je

Ri =Li+1 .

Da

potrebno je napraviti inverz operacije ekskluzivno ili, za

to nam je potrebna vrijednost


svaki

Ri+1

jednostavno dobivamo zato to znamo da se ta vrijednost

fi+1 (Ri ).

Iz

Ri =Li+1

i svojstva

imamo

Li fi+1 (Ri ) = Ri+1


Li fi+1 (Ri ) fi+1 (Ri ) = Ri+1 fi+1 (Ri )

xx = 0

za

6.2.

BLOKOVNI KRIPTOSUSTAVI

103

Slika 6.4: Jedna runda Feistelove mree.

Li = Ri+1 fi+1 (Li+1 ).


Vidimo da se inverz rauna slino kao i sama vrijednost, to se jo bolje
vidi na slici (6.5). Raunanje inverza vrijednosti zahtjeva istu konstrukciju
kao i raunanje same vrijednosti, osim to pritom primjenjujemo funkcije

f1 , . . . , fd u obrnutom poretku, budui da se prvo rauna inverz zadnje runde,


pa predzadnje, pa tako sve do prve runde.

Ovo svojstvo Feistelove mree

omoguuje i implementaciju uinkovitog hardverskog sklopovlja, budui da je


sklopovlje za ifriranje identino sklopovlju za deifriranje. Kao i mnogi drugi
kriptosustavi, DES je temeljen upravo na ovakvoj konstrukciji. Spomenimo
da kriptosustav AES nije temeljen na Feistelovoj mrei.

Slika 6.5: Jedna runda inverza Feistelove mree.

Opis DES algoritma


Kriptosustav DES je Feistelova mrea sa 16 rundi. Prije i poslije samih rundi
odvija se i permutacija, no ona nije vana za sigurnost samog kriptosustava.

f1 , . . . , f16 : {0, 1}32 {0, 1}32 izvode se iz jedne


funkcije F , primjenom kljueva k1 , . . . , k16 duljine 48 bitova, za svaku rundu
izvedenih iz poetnog zadanog kljua duljine 56 bitova,
Funkcije svake runde

fi (x) = F (x, ki ).
Prisjetimo se, DES radi s ulaznim nizovima duljine
u nizove duljine

64

64

bita, i preslikava ih

bita. Shemu rada DES-a vidimo na slici (6.6). Vano je

104

POGLAVLJE 6.

KRIPTOGRAFIJA

Slika 6.6: DES shema.

opisati i rad funkcije

F (x, ki )

1. Ulazni argument

duljine

funkcijom proirenja
2. Izraunamo

u svakoj rundi. Ona se rauna u etiri koraka:

32

bita se proiri do niza od

48

ksnom

E.

E(x)ki i rezultat zapiemo kao spoj osam 6-bitnih nizova,


A1 ||A2 ||A3 ||A4 ||A5 ||A6 ||A7 ||A8 .

3. Svaki od nizova

Ai

prolazi kroz jednu od 8 S-kutija,

S1 , . . . , S 8 .

S-

kutije su posebnost DES kriptosustava, te jedan od vanih imbenika


njegove sigurnosti. Svaka S-kutija je tablica pomou koje se preslikava
ulaznih

bitova u

bita na unaprijed zadani nain. Primjer jedne S-

kutije (konkretno pete S-kutije) dan je na slici (6.7). Raunamo

Si (Ai )

Slika 6.7: Primjer S-kutije.


i dobivene nizove ponovo konkateniramo u jedan niz.
4. Dobiveni niz bitova permutira se pomou zadane zavrne permutacije,
te time konano dobivamo

F (x, ki ).

Kriptosustav DES je od samog poetka bio kritiziran zbog male duljine


kljua.

112

Originalan IBM-ov prijedlog bio je kriptosustav s kljuem duljine

bitova. Ipak, kako bi klju stao na tadanje ipove, ali vjerojatno i pod

utjecajem NSA, klju je smanjen na

56

bitova. Mnogi kriptogra protivili

su se tako kratkom kljuu, jer su smatrali da on ne prua dovoljnu sigurnost

6.2.

BLOKOVNI KRIPTOSUSTAVI

protiv napada grubom silom.

105

Iako se zbog

256

moguih kljueva takav

napad naizgled ini nepraktinim, ve su 1977. Die i Hellman ustvrdili da


tadanja tehnologija omoguava konstrukciju raunala koje bi otkrivalo klju
za jedan dan, a trokove takvog raunala procjenili su na 20 milijuna dolara.
Na osnovu toga zakljuili su da je takvo to dostupno samo organizacijama
kao to je NSA, ali i da e oko 1990. godine DES postati sasvim nesiguran. I
zaista, devedesetih godina dvadesetog stoljea uslijedilo je nekoliko uspjenih
napada na DES, tzv.

DES challenge .

Ovdje navodimo neke najvanije

napade:

1997. distribuiranim raunanjem putem Interneta, za 3 mjeseca.

1998.

5 je napravio raunalo (Deep crack) za 250 tisua dolara

EFF

koje je otkrivalo klju za 3 dana.

1999. zajednikim djelovanjem prethodna dva naina, za 22 sata.

2006. napravljeno je raunalo COPACOBANA za 10 tisua dolara koje


otkriva klju za 7 dana.

Oito je nakon ovakvih napada bilo potrebno zamijeniti DES nekom sigurnijom ifrom. Jedna od najpopularnijih zamjena bio je trostruki DES - 3DES.
Kao to i samo ime sugerira, 3DES sastoji se od tri uzastopne primjene DESa, a svaka omoguuje razliiti klju (imamo jedan, ali tri puta dulji klju),
to je povealo sigurnost, budui da je duljina kljua

2168 .

Naalost, ovaj

proces je i tri puta sporiji. Samo ifriranje i deifriranje odvija se na sljedei


nain. Deniramo funkciju

3E : M K 3 M
s

3E(m, (k1 , k2 , k3 )) = E(D(E(m, k1 ), k2 ), k3 ).


Razlog ovakvom pristupu je kompatibilnost s DES-om. Naime, ako su kljuevi

k1

k2

ili

k2

k3

isti, ovaj postupak daje identian rezultat kao i DES

s kljuem razliitim od druga dva.


Moemo se pitati zato se nije koristio dvostuki DES. Kada bismo ifrat
dobivali na taj nain,

y = E(E(x, k1 ), k2 )
vrijedilo bi

D(y, k2 ) = E(x, k1 ).
Takav nain ifriranja podloan je napadu susret u sredini (eng. meet in

the middle ), koji je 1977. opisao Die. Pretpostavimo da imamo poznat


4

dan je ifrat i prva tri bajta otvorenog teksta, a zadatak je otkriti klju i deifriranjem

ostatka ifrata doi do cijelog otvorenog teksta

Electronic Frontier Foundation

106

POGLAVLJE 6.

jedan par otvoreni tekst - ifrat


ih kljueva

k1

(x, y).

Tada ifriramo

i spremimo ih u tablicu.

KRIPTOGRAFIJA

256

sa svih

Zatim deifriramo

mogu-

koristei

k2

i nakon svakog deifriranja pogledamo postoji li takva vrijednost u tablici.


Ako naemo takvu vrijednost, pronali smo i kljueve
da je za ovakav napad potrebno otprilike
od

2112 ,

in).

263

k1

k2 .

Spomenimo

operacija (to je mnogo manje

koliko bi bilo potrebno za isprobavanje svih parova na klasian na-

Dakle, ovakav nain nije mnogo bolji od obinog DES-a.

na 3DES zahtijeva

2118

ako je potrebno barem

Isti napad

operacija. Danas se kriptosustavi smatraju sigurnim

290

operacija za bilo koji napad.

Iako se i danas 3DES smatra sigurnim, on vie nije standard.

Zbog

zastarjelosti i sporosti, NIST je objavio natjeaj za novi standard.

6.2.3 Advanced Encryption Standard (AES)


Dana 2. sijenja 1997. NIST je najavio natjeaj za razvoj novog kriptosustav
koji e naslijediti DES, a bit e biti nazvan Advanced Encryption Standard,
AES. Kao i DES, to je trebao biti javno dostupan kriptosustav koji je u
mogunosti zatititi povjerljive informacije na razini koja e biti zadovoljavajua dulje vrijeme, ak i u 21. stoljeu. I ovaj put, odlueno je da e se
AES birati putem natjeaja koji je otvoren i transparentan. To je izazvalo
veliko zanimanje kriptografske zajednice i rezultiralo brojnim prijavama. Svi
kriptosustavi trebali su biti blokovni, simetrini te raditi s blokovima duljine

128

bitova i kljuevima razliitih duljina, od

procesa prijave stiglo je

15

128, 192 i 256

bitova. Tijekom

kandidata, a kao nalisti proglaeni su: MARS,

RC6, RIJNDAEL, SERPENT i TWOFISH. Konano, 2. kolovoza 2000. godine objavljeno je da je kao AES izabran RIJNDAEL, kriptosustav koji su
razvili belgijskih kriptogra Joan Daemen i Vincent Rijmen. Proces izbora
doivio je brojne pohvale zbog transparentnosti i otvorenosti prilikom diskusije i odabira. U nastavku dajemo opis rada kriptosustava RIJNDAEL
(AES).

Opis algoritma
Kriptosustav AES radi s blokovima duljine
Oni se prikazuju pomou

44

128

bitova, odnosno

16

bajta.

matrice, koju nazivmao AES blok. U ovom

opisu uzimamo da je i duljina kljua

128

bitova te uz tu pretpostavku AES

koristi 10 rundi. Za razliku od DES-a, AES nije graen kao Feistelova mrea,
ve kao supstitucijsko-permutacijska mrea. U svakoj rundi, mijenjaju se svi
bitovi u bloku, za razliku od Feistelove mree u kojoj se mijenja samo pola
bitova.

GF (28 ), odnosno
7
6
polinoma oblika a7 x + a6 x + . . . + a1 x + a0 , gdje su ai {0, 1}. Operacije zbrajanja i mnoenja denirane su kao u prstenu Z2 [X], modulo ksni
8
4
3
ireducibilni polinom p(x) = x + x + x + x + 1. Takve polinome moemo
Specinost kod AES-a je koritenje konanog polja

6.2.

BLOKOVNI KRIPTOSUSTAVI

107

zapisati koristei jedan bajt, npr. polinomu


bajt

00110011.

x5 + x4 + x + 1

odgovarao bi

Ilustraciju rada s takvim polinomima dajemo u sljedeem

primjeru.

Primjer 6.6. Pomnoimo polinome

x6 + x4 + x2 + x + 1

x7 + x + 1

iz

8
polja GF (2 ).
Prvo polinome pomnoimo u

Z2 [X],

(x6 + x4 + x2 + x + 1)(x7 + x + 1) = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1,


a zatim uobiajenim postupkom dijeljenja polinoma izraunamo ostatak pri
dijeljenju s navedenim polinomom

p(x).

Time dobivamo

x7 + x6 + 1.
Sada dajemo opis samog procesa ifriranja, kao to smo ga dali i kod
DES-a. On se sastoji od 4 operacije u svakoj rundi,

SubBytes
Ovo je jedini nelinearni dio algoritma. Koristi se S-kutija pomou koje
se bajtovi u bloku zamjenjuju. Neka je
na mjestu

A ulazni AES blok.

Tada se bajt

(i, j) u A zamjenjuje pripadnom vrijednosti u tablici S-kutije.


A(i, j), a

Redak u tablici odreen je s prva etiri bita od vrijednosti

stupac s preostala etiri bita. Kod AES-a vrlo je jasno navedeno kako
je generirana S-kutija te su time izbjegnute kontroverze poput onih
koje su se pojavile kod DES-a.

ShiftRows
U ovom koraku cikliki se pomiu elementi
za

mjesta u lijevo,

i-tog

retka AES bloka i to

i = 0, 1, 2, 3.

MixColumns
U ovom koraku dogaa se linearna transformacija u kojoj se svaki
stupac AES bloka mnoi se ksnim polinomom, a time se dobiva novi
polinom koji onda zamjenjuje stari. Ovaj korak se ne odvija u zadnjoj
rundi.

AddRoundKey

Rauna se iskljuivo ili AES bloka i pripadnog kljua za

tu rundu. Ovaj korak odvija se i iznimno prije prve runde.


Deifriranje se odvija po istom algoritmu, samo to se umjesto svakog koraka
koristi njegov inverz.
Svojstvo AES-a je da se mogu generirati tablice koje raunanje zamjenjuju traenjem u tablici, to znaajno ubrzava proces ifriranja i deifriranja
(no i ne moraju). Ukoliko radimo u okruenju u kojemu je memorija ograniena, mogue je zapisati samo nain raunanja AES-a, to smanjuje potrebu

108

POGLAVLJE 6.

KRIPTOGRAFIJA

za memorijom, no takoer usporava proces. Na primjer, vrijednosti S-kutije


moemo raunati svaki put kada su nam potrebne ili moemo imati pohranjenu tablicu (256 bajtova) te ih samo potraiti u njoj. Koraci svake runde
takoer se mogu zapisati pomou tablica (24KB). Ovo omoguuje brzo ifriranje u modernim raunalnim sustavima, buduu da se ono svodi na traenje
u tablicama i funkcije

, to su izuzetno brze operacije.

U Intel Core i3/i5/i7

procesorima u skup instrukcija dodane su instrukcije za AES to omoguuje


brzinu obrade od preko

700MB/s

po aktivnoj dretvi.

Iako vidimo da su simetrini kriptosustavi u mnogoemu napredovali,


a pogotovo u sigurnosti, ostao je problem razmjene kljueva. Dvoje ljudi s
razliitih strana svijeta koji ele sigurno komunicirati (npr. putem Interneta)
moraju prvo razmijeniti kljueve putem nekog sigurnog kanala (ako takvo
neto uope postoji) ili se osobno sastati - to je vrlo nepraktino. Zbog toga
se pojavljuju kriptosustavi s javnim kljuem, o kojima je rije u sljedeem
odjeljku.

6.3 Kriptograja javnog kljua


Ponekad nazivana i asimetrina kriptograja, kriptograja javnog kljua donijela je revoluciju u povijesti kriptograje. Od samih zaetaka kriptograje, glavni principi su bili supstituiranje i transpozicija elemenata otvorenog
teksta. Algoritmi kriptograje javnog kljua ne temelje se na tim dvijema
radnjama, ve na matematikim funkcijama. to je jo vanije, ifriranje se
odvija pomou jednog kljua, a deifriranje pomou drugog, dakle potrebna
su dva razliita kljua, a ne samo jedan, kao to je dosad bio sluaj.
Osnovna ideja kriptograje javnog kljua je konstrukcija kriptosustava
u kojima je iz poznavanja funkcije ifriranje gotovo nemogue (u razumnom
vremenu), doi do funkcije deifriranja. Tada bi funkcija ifriranja bila javna,
a funkcija deifriranja tajna. Dakle svatko moe ifrirati otvoreni tekst, no
deifrirati ga moe samo osoba koja poznaje funkciju deifriranja.

Ovdje

kljunu ulogu ima postojanje tzv. jednosmjernih funkcija. Za funkciju

ka-

emo da je jednosmjerna ako je njenu vrijednost lako izraunati, a vrijednost

f 1

teko.

Prilikom konstrukcije kriptosustava s javnim kljuem obino se koriste


neki teko rjeivi matematiki problemi, kao to su faktorizacija velikih

brojeva i problem diskretnog logaritma.

U tu svrhu potrebno je poznava-

nje pojmova i rezultata iz linearne algebre, poput grupa, podgrupa, ciklikih


grupa, generatora grupe.

6.3.1 RSA kriptosustav


Kriptosustav koji su 1977. osmislili Ronald Rivest, Adi Shamir i Leonard
Adleman i prema njima nazvan RSA, najpoznatiji je kriptosustav s javnim

6.3.

KRIPTOGRAFIJA JAVNOG KLJUA

kljuem.

109

On se temelji na problemu faktorizacije velikih brojeva.

Naime,

smatra se da je danas praktiki nemogue rastaviti na faktore paljivo odabran prirodan broj s vie od 300 znamenaka. Opiimo sada RSA kriptosustav.
Neka je

n = pq ,

Uzmimo prirodne brojeve

(n)

Eulerova funkcija, tj. broj brojeva

prosti s

n.

M = C = Zn .
je ed 1 (mod (n)). Ovdje je
u nizu 1, 2, . . . , n koji su relativno

p i q prosti
e i d takve da

gdje su

brojevi i neka je

Znamo da je Eulerova funkcija multiplikativna, tj. vrijedi

(n) = (pq) = (p)(q) = (p 1)(q 1).


Prema Eulerovom teoremu, za sve

x(n) 1

koji su relativno prosti s

vrijedi

(mod n).

Sada kaemo da je javni klju ureeni par

(n, e), tajni klju (n, d), a funkcije

ifriranja i deifriranja deniramo ovako:

E(x, (n, e)) = xe (mod n)


D(y, (n, d)) = y d (mod n)
Pokaimo da su ove dvije funkcije inverzne. Imamo

D(E(x, (n, e)), (n, d)) xed

(mod n).

ed 1 (mod (n)), postoji neki prirodni broj k takav da je


ed = k(n) + 1. Pretpostavimo da su x i n relativno prosti. Sada imamo

Budui da je

xed = xk(n)+1 = (x (n))k x x

(mod n).

(n, x) = n, onda je xed 0 x (mod n). Ako je pak (n, x) = p,


ed 0 x (mod p). Kako je (pq, x) = p, a p i q su prosti, slijedi
onda je x
da su p i x relativno prosti, (p, x) = 1, pa je prema Eulerovom teoremu
x(q) = x(q1) 1 (mod q). Stoga je xed = (xq1 )(p1)k x x (mod q), pa
de x (mod n). Sluaj (n, x) = q je analogan. Iz ovoga vidimo da su E
je x
i D inverzne funkcije.
Ako je

Primjer 6.7. Pokazat emo koritenje RSA kriptosustavima na malim bro-

q = 11. Tada je n = 33 i (n) = 20. Budui da


e mora biti relativno prost s 20, uzmimo e = 7. Lako vidimo da je d = 3,
budui da je 7 3 = 21 1 (mod 20). Sada je (n, e) = (33, 7) javni, a
(n, d) = (33, 3) tajni klju. Za primjer emo ifrirati i zatim deifrirati poruku x = 17.

jevima. Uzmimo

p=3

Prilikom ifriranja trebamo izraunati

E(17, (33, 7)):

y = 177 = 17 172 174 = 17 25 31 = 8 (mod 33).

110

POGLAVLJE 6.

ifrat je, dakle,

y = 8.

KRIPTOGRAFIJA

Deifriramo ovaj ifrat pomou tajnog kljua,

D(8, (33, 3)):


x = 83 = 8 82 = 8 31 = 17
ime smo ponovo dobili otvoreni tekst

(mod 33),

x = 17.

Nedostatak kriptosustava s javnim kljuem jest to su mnogo sporiji,


odnosno zahtijevaju mnogo vie raunanja nego simetrini kriptosustavi za
postizanje pribline sigurnosti. Zato se esto kriptosustavi s javnim kljuem
kombiniraju sa simetrinim kriptosustavima i stvaraju se hibridni kripto-

sustavi. Na primjer, pomou RSA moemo sigurno razmijeniti kljueve na


daljinu, a zatim koristiti brze i sigurne simetrine kriptosustave kao to je
AES. U nastavku dajemo jo jedan poznati protokol za sigurnu razmjenu
kljueva.

6.3.2 Die-Hellmanov protokol


Ve spominjani Whiteld Die i Martin Hellman smatraju se zaetnicima
kriptograje javnog kljua.

Godine 1967.

ponudili su jedno rjeenje pro-

blema razmjene kljueva putem nesigurnog kanala zasnovano na injenici da


je u nekim grupama potenciranje puno jednostavnije od logaritmiranja. To
opaanje poznato je i kao problem diskretnog logaritma.

(G, ) konana grupa, g G, H = {g i : i 0} podgrupa od G


generirana s g i h H . Treba pronai najmanji nenegativni cijeli broj x
x
takav da je h = g . Tada se broj x naziva diskretni logaritam i oznaava s
logg h.
Neka je

Sam proces razmjene kljueva odvija se na sljedei nain. Alisa i Bob se


dogovore oko koritenja grupe

i njenog generatora

(zbog jednostavnosti

pretpostavljamo da je grupa ciklika). Taj broj nije tajan, tako da se oko


njega mogu dogovoriti i nesigurnim kanalom koji upotrebljavaju. Zatim
1. Alisa na sluajan nain odabere prirodni broj

a {1, 2, . . . , |G| 1},

b {1, 2, . . . , |G| 1},

a
poalje Bobu broj g .
2. Bob na sluajan nain odabere prirodni broj

b
poalje Alisi broj g .
3. Alisa izrauna
4. Bob izrauna

(g b )a = g ab .

(g a )b = g ab .

Sada je njihov tajni klju

k = g ab .

U iduem primjeru dajemo prikaz rada

Die-Hellmanovog algoritma.

Primjer 6.8. Alisa i Bob dogovorili su se oko zajednikog prostog broja

p = 23

G = {0, 1, . . . , 22} i generatora g = 5.


a = 6, a Bob je izabrao b = 7. Oni trebaju

pomou kojeg dobiju grupu

Takoer, Alisa je izabrala broj


uspostaviti tajni broj

s.

6.4.

PRIMJENA KRIPTOGRAFIJE

111

Pratei prethodni opis algoritma imamo:


1. Alisa izrauna
2. Bob izrauna

g b = 57 17 (mod 23)

3. Alisa izrauna
4. Bob izrauna

g a = 56 8 (mod 23)

i poalje Bobu.
i poalje Alisi.

(g b )a = 176 12 (mod 23).

(g a )b = 87 12 (mod 23).

I time dolaze do zajednikog tajnog broja

a
komunikaciju, te ona zna: g , g ,

s = 12.

Eva je presrela njihovu

g b . No ona e jako teko doi do

ili

b,

jer

za to treba rijeiti problem diskretnog logaritma, a kako se u praksi koriste


veliki brojevi (600 znamenaka), to je vrlo teko izraunati. Kada bi Eva iz

g, ga

gb

mogla doi do

g ab ,

rijeila bi Die-Hellmanov problem za koji se

smatra da je ekvivalentan problemu diskretnog logaritma.

Ovime zavravamo odjeljak kriptograje javnog kljua.

Nakon svih prije-

enih pojmova i koncepata, dajemo neke primjene kriptograje.

6.4 Primjena kriptograje


Kriptograja danas nalazi brojne primjene u mnogim podrujima gje je
potrebna sigurna komunikacija, primjerice u informacijsko-komunikacijskim
tehnologijama, a posebno prilikom koritenja Interneta.

Iako se poznata

(ali i javnosti nepoznata) dostignua u kriptograji esto koristi na duboke i


komplicirane naine, postoje i mnogi dostupni alati koji su praktini i jednostavni za uporabu i pruaju zadovoljavajuu razinu sigurnosti i pouzdanosti.
Ovdje za primjer navodimo neke od njih.

6.4.1 Cryptocat
Cryptocat je internetska aplikacija koja prua mogunost
ifriranog chat-a. Svrha aplikacije je pruiti jednostavanu
i sigurnu komunikaciju putem Interneta. Samo izvravanje
aplikacije odvija se u pregledniku, te se komunikacija odvija
izmeu dvoje ili vie osoba koje koriste aplikaciju. Komunikacija se zasniva na O-the-Record Messaging protokolu
koji posjeduje sljedea svojstva:

ifriranje
Poruke koje se razmjenjuju izmeu sudionika u razgovoru su ifrirane.
ak niti sam sustav ne moe proitati poslane poruke.

112

POGLAVLJE 6.

KRIPTOGRAFIJA

Autentikacija
Korisnik je siguran da je osoba od koje prima poruke upravo ona za
koju se predstavlja.

Mogunost poricanja
Poslane poruke ne sadre digitalni potpis koji moe provjeriti trea
strana. Mogue je kasnije krivitvoriti poruke na nain da se ini kao
da ih je poslao netko od korisnika. Ipak, tijekom razgovora korisnici
su sigurni da su poruke koje primaju autentine i nepromijenjene.

Perfect forward secrecy


Ovo svojstvo prua sigurnost u sluaju da protivnik doe u posjed jednog od kljueva. Kljuevi se neprestano izmjenjuju tijekom razgovora,
to dovodi do toga da su kljuevi kojima se ifriraju poruke razliiti i
nezavisni. U najgorem sluaju, ako doe do gubitka kljua, ugroene
su samo dvije posljednje poruke u danom razgovoru, i niti jedna od
poruka u prethodnim razgovorima.
Aplikacija je besplatna, javno dostupna i otvorenog koda i moe se pronai
na

https://crypto.cat/.

6.4.2 Tor
Tor je mrea virtualnih internetskih tunela koja omoguuje korisnicima zatitu njihove privatnosti i sigurnosti na
Internetu. Tor nudi temelj za razvoj aplikacija koje omoguavaju korisnicima da dijele informacije putem javnih
mrea bez ugroavanja svoje privatnosti.

Administratori

Tor mree tvrde kako je blokada tog sustava gotovo nemogua jer im se trenutni sustav blokira, iz sigurnosnih
razloga, internetski promet se prebacuje na druge vorove i tako cijeli sustav
nastavlja neometano raditi. Napominje da je ak i njihovim najboljim strunjacima teko otkriti tko se nalazi iza pojedinog rauna te koje informacije
prolaze samim sustavom.

Tor koristi sluajne rute kojima alje pakete uz

dodatak da se ruta mijenja s odreenom koliinom podataka, odnosno nakon odreenog vremenskog perioda kako bi se dodatno izbjegla mogunost
da se statistikom analizom prometa pokua odrediti odakle paketi dolaze i
kuda odlaze. Danas Tor esto koriste brojni novinari, aktivisti, disidenti, ali
i drugi ljudi kojima je stalo do privatnosti dok koriste Internet.
Vie o samom projektu moe se nai na slubenoj stranici,

https://www.torproject.org/

6.4.3 TrueCrypt

6.4.

PRIMJENA KRIPTOGRAFIJE

113

TrueCrypt je program namijenjen enkripciji podataka. Koristi suvremene kriptosustave kao to su AES (Rijndael), ali
i dva nalista u procesu izbora za AES, Serpent i Twosh.
Program je jednostavan za koritenje, procedura instalacije
je klasina, a moe se koristiti i bez instalacije, dovoljno je
samo raspakirati potrebne podatke na neki prijenosni medij i moe se koristiti s tog medija na drugim raunalima.
Program stvara ifrirane spremnike koje je prije koritenja potrebno montirati. Tada se oni prikazuju kao raunalne particije, te u njih moemo kopirati
podatke jednako brzo kao i u direktorije na raunalu koji nisu ifrirani.
Program se moe nai i o njemu vie proitati na

https://http://www.truecrypt.org/
Kriptograja je danas vanija nego ikad. Informacije postaju sve vrijednije, a putuju uglavnom nepoznatim komunikacijskim kanalima koji se danas
lako prislukuju, poput Interneta. Iako se na takvo neto ve godinama sumnjalo, mnogo informacija o globalnom prislukivanju otkrio je u prvoj polovici
2013. ameriki zvida Edward Snowden, pokreui time NSA leaks. Jasno
je da osim tajnih slubi i ostale organizacije pokuavaju doi do razliitih
informacija i otkriti uzorke u ponaanju ljudi. Sve vee graansko zanimanje
za kriptograju sukobljava se, meutim, s potrebama policije i nacionalne
sigurnosti. Tajne slube slue se prislukivanjem u otkrivanju kriminala, ali
razvoj iznimno snanih kriptosustava, servisa za anonimizaciju i ostalih naina za sigurno komuniciranje oteava im posao. Zato snage reda lobiraju
za ogranienje kriptograje dok borci za ljudska prava trae njenu sve veu i
slobodniju primjenu. O tome koja strana e naposlijetku prevagnuti, odluit
e hoe li nam biti vanija privatnost ili ekasna policijska sluba. U svemu
naravno, postoje kompromisi.
Ako elimo zatiti svoju privatnost, poslovanje i duge aktivnosti na Internetu, kriptograja je za to neophodna. Sreom, ona postaje i sve dostupnija,
a zatita koju prua sve bolja. Jedino je pitanje hoemo li svojim ponaanjem
odgovorno doprinijeti vlastitoj sigurnosti, ali i razvoju sigurnosti openito.

114

POGLAVLJE 6.

KRIPTOGRAFIJA

Bibliograja
[1] Donald Knuth, Concrete Mathematics - A foundation for Computer Sci-

ence. Addison-Wesley Publishing Company, 2nd edition, 2006.


[2] Mikls Bna, A Walk Through Combinatorics: An Introduction to Enu-

meration and Graphy Theory. World Scientic Publ. Co. Pte. Ltd., 2nd
edition, 2006.
[3] Kenneth H. Rosen, Discrete Mathematics And Its Applications. McGrawHill, 7th edition, 2012.
[4] Herbert B. Enderton, Elements of Set Theory. Academic Press, 2009
[5] Mladen Vukovi, Teorija skupova. Prirodoslovno-matematiki fakultet,
2013.
[6] Kenneth H. Rosen, John G. Michaels, Jonathan L. Gross, Douglas R.
Shier Handbook of Discrete and Combinatorial Mathematics. CRC Press,
2000.
[7] Mladen Vukovi, Sloenost algoritama. Prirodoslovno-matematiki fakultet, 2011.
[8] Wenbo Mao, Modern cryptography:

theory and practice. Prentice Hall

PTR, Hewlett Packard, 2004.


[9] William Stallings, Cryptography and Network Security, 4/E. Pearson
Education India, 2006.
[10] Andrej Dujella, Marcel Mareti, Kriptograja. Element, 2007.
[11] Neal Koblitz, A course in number theory and cryptography. Vol. 114.
Springer, 1994.
[12] Saa Singer, Sloenost algoritama, predavanja i vjebe. Prirodoslovnomatematiki fakultet, Zagreb 2005.
[13] Michael Sipser, Introduction to the Theory of Computation. Cengage
Learning, 2012.
115

116

BIBLIOGRAFIJA

[14] Lszlo Lovsz, Pter Gcs, Complexity of algorithms. Lecture Notes,


Boston University, Yale University 1999.
[15] Claude E. Shannon, Communication Theory of Secrecy Systems. Bell
system technical journal 28.4: 656-715, 1949.

You might also like