Professional Documents
Culture Documents
DS2 Deo1
Prirodno-matematički fakultet
Departman za matematiku i informatiku
Dragan Mašulović
Diskretne strukture 2
Deo 1: Uvod u kombinatoriku
Reči i skupovi
1.1 Reči
Alfabet je proizvoljan neprazan konačan skup. Elemente alfabeta A ćemo zvati
slova, a reč nad A je svaki niz simbola iz A. Preciznije, reč dužine k nad alfabetom
A je proizvoljan element skupa Ak . Prilikom zapisivanja reči nećemo pisati zareze
i zagrade kako bi reči više ličile na reči na koje smo navikli.
Primer 1.1 Evo nekoliko reči nad alfabetom A = {a, b, n}: banana, abba, aa, ili
prosto n. Prva od njih ima šest slova, slede reč sa četiri slova, reč sa dva slova i na
kraju reč od jednog slova.
Dopuštamo i reči bez slova. Na proizvoljnom alfabetu postoji tačno jedna takva
reč koju zovemo prazna reč i označavamo je sa ε . To je reč dužine 0. Važno je
razumeti da su reči sa kojima ćemo raditi u ovom kursu formalne reči, dakle, nizovi
simbola kojima nije pridruženo nikakvo značenje. Prema tome, nbbaaa je jednako
validna reč kao banana. Problem značenja reči ćemo prepusiti drugim granama
nauke.
1
2 GLAVA 1. REČI I SKUPOVI
Primer 1.2 Neka je A = {a, b, c, n} i neka je w = banana reč nad A. Tada je |w| =
6, |w|a = 3, |w|b = 1, |w|c = 0 i |w|n = 2.
Tako jednostavni objekti kao što su reči nemaju bogatu strukturnu teoriju. Naj-
uzbudljivija stvar koju za sada možemo da uradimo sa rečima je da pokušamo da
ih prebrojimo.
Definicija 1.4 Reč dužine k nad alfabetom sa n slova zove se još i varijacija sa
ponavljanjem od n elemenata k-te klase.
Prirodno je zapitati se zašto bi neko uveo tako komplikovano ime za takve u
osnovi jednostavne objekte. Odgovor je jednostavan. U tamnoj prošlosti diskretne
matematike terminologija je bila opskurna kao vremena u kojima su termini nastali.
1.2. REČI BEZ PONAVLJANJA SLOVA 3
Od tog perioda do danas, matematika je prevalila veliki put i donela mnoga po-
jednostavljenja, kako po pitanju terminologije, tako i u pogledu razumevanja feno-
mena.
Problem 1.6 (a) Koliko ima reči nad alfabetom A kod kojih se svako slovo iz A
javlja tačno jednom?
(b) Koliko ima reči dužine k nad alfabetom A kod kojih su sva slova različita?
Rešenje. (a) Imamo n kandidata za prvo mesto, ali samo n− 1 za drugo mesto, zato
što se slovo koje je upotrebljeno na prvom mestu ne sme ponoviti. Slično, imamo
n − 2 kandidata za treće mesto zato što se slova upotrebljena na prvom i drugom
mestu ne smeju ponavljati, i tako dalje. Na kraju, ostaje nam samo jedan kandidat
za poslednje mesto:
1. 2. 3. n.
...
n n−1 n−2 1
što sve skupa daje n · (n − 1) · . . . · 1 mogućnosti. Zato što se ovakav proizvod često
javlja u kombinatorici, uvodimo posebnu oznaku. Faktorijel nenegativnog celog
broja n ∈ N0 definišemo ovako:
0! = 1
n! = 1 · 2 · . . . · n, za n > 1.
Dakle, nad alfabetom A sa n slova ima tačno n! reči kod kojih se svako slovo iz A
javlja tačno jednom.
4 GLAVA 1. REČI I SKUPOVI
(b) Kao pod (a), imamo n kandidata za prvo mesto, n − 1 za drugo mesto zato
što se slovo koje je upotrebljeno na prvom mestu ne sme ponoviti, n − 2 kandidata
za treće mesto i tako dalje. Na kraju, imamo n − (k − 1) kandidata za k-to mesto,
jer smo na prethodnih k − 1 mesta već potrošili k − 1 slova:
1. 2. 3. k.
...
n n−1 n−2 n − (k − 1)
n!
što sve skupa daje n · (n − 1) · . . . · (n − k + 1) = mogućnosti. Naravno,
(n − k)!
na ovaj način možemo rezonovati samo ako je k 6 n. U slučaju k > n takvih reči
nema. Primetimo da je problem (a) specijalan slučaj ovog problema za k = n.
Definicija 1.7 Varijacija bez ponavljanja od n elemenata k-te klase je reč dužine
k nad alfabetom sa n slova kod koje se svako slovo alfabeta javlja najviše jednom
(i zato su sva slova u reči nužno različita). Permutacija bez ponvaljanja je reč kod
koje se svako slovo alfabeta javlja tačno jednom.
Okrugli sto je ušao u kombinatornu praksu negde u vreme kralja Arthura i nje-
govih vitezova i od tada je to veoma važan kombinatorni objekt. Pošto za okruglim
stolom nema trona (za kralja), dva rasporeda sedenja smatramo istim ako se mogu
dobiti jedan od drugog nekom rotacijom. Na primer, sledeća tri rasporeda ne sma-
tramo za različite:
a e c
c d d b b a
b e a c e d
Problem 1.8 Na koliko različitih načina n ljudi može da sedne za okrugli sto sa n
mesta?
Rešenje. Pošto su sve stolice ravnopravne, prva osoba može da sedne za sto gde
god želi. Sada nastavljamo da redamo ljude za sto tako što krenemo od prve osobe
i idemo u smeru kazaljke na satu. Za mesto desno od prve osobe imamo n −
1 kandidata. Za jedino slobodno mesto do druge osobe za stolom imamo n − 2
kandidata, i tako dalje. Zato n ljudi može da sedne oko okruglog stola na 1 · (n −
1) · (n − 2) · . . . · 1 = (n − 1)! načina.
1.3. JOŠ O PERMUTACIJAMA 5
3 7 1 2 8 6 4 5
Primer 1.11 Neka je f = 37128645. Inverzije permutacije f su (3, 1), (3, 2),
(7, 1), (7, 2), (7, 6), (7, 4), (7, 5), (8, 6), (8, 4), (8, 5), (6, 4) i (6, 5), Sl. 1.1. Da-
kle, inv( f ) = 12 i ova permutacija je parna.
6 GLAVA 1. REČI I SKUPOVI
Teorema 1.13 Ako je n > 2, broj parnih permutacija skupa {1, . . . , n} jednak je
broju neparnih permutacija tog skupa.
Dokaz. Neka je En skup parnih permutacija, a On skup neparnih permutacija skupa
{1, . . . , n}. Definišimo ϕ : En → On sa
ϕ (a1 a2 a3 . . . an ) = a2 a1 a3 . . . an .
Teorema 1.14 Neka je f permutacija skupa {1, . . . , n}. Tada je inv( f ) = inv( f −1 ).
1.4 Skupovi
Pošto smo (doduše, iz istorijskih razloga) za reči izumeli veoma komplikovana
imena, red je da na komplikovan način imenujemo i konačne skupove.
n n!
Teorema 1.16 Neka je n, k > 0. Ako je n > k onda = . U suprot-
k k!(n − k)!
n
nom je = 0.
k
Dokaz. Neka je n > k. Iako skupovi usled nedostatka strukture na prvi pogled
deluju jednostavniji od reči, uredene strukture (reči u ovom slučaju) je uglavnom
8 GLAVA 1. REČI I SKUPOVI
1. 2. 3. (m + n).
...
m+n
Na načina možemo odabrati m kućica u koje ćemo upisati nule. U preo-
m
stalih n kućica upisaćemo jedinice.
n n
Teorema 1.19 (a) = za sve n > k > 0;
k n−k
n n−1 n−1
(b) = + za sve n > k > 1 (Pascalov identitet).
k k−1 k
Dokaz. (a) Ova veza sledi na osnovu jednostavnog računa:
n n! n! n
= = = .
n−k (n − k)!(n − (n − k))! (n − k)!k! k
(a + b)k = (a + b) · (a + b) · . . . · (a + b)
| {z }
k puta
pa kada sve izmnožimo i zapišemo sabirke u obliku reči dužine k nad alfabetom
{a, b} bez uobičajenog skraćenog zapisivanja kao što je a · a · a = a3 , dobijamo sve
1.5. MONOMI 11
n n n n
Teorema 1.21 + + + ...+ = 2n .
0 1 2 n
Dokaz. Algebarski dokaz sledi iz Newtonove binomne formule:
n n
n n−k k n
2 = (1 + 1) = ∑
n n
1 1 =∑ .
k=0 k k=0 k
1.5 Monomi
Operacija nadovezivanja reči (koja se još zove i konkatenacija) nije komutativ-
na, jer ab · cd = abcd, dok je cd · ab = cdab 6= abcd. Medutim, postoje situacije
kada se redosled slova u reči smatra nebitnim. Na primer, u osnovnoškolskoj alge-
bri konačne proizvode predstavljamo rečima, tako da umesto x · y · z pišemo samo
xyz, pa kako je množenje brojeva komutativno i asocijativno, uzimamo da je
zzxyxyxyzxzx = xxxxxyyyzzzz = x5 y3 z4 .
Pri tome se još dogovorimo da situaciju kada se neko slovo ne javlja u izrazu
označimo eksponentom 0:
xxxxxzzzz = x5 y0 z4 .
Time je motivisana sledeća definicija:
m2 = p2 , . . . , mn = pn .
Ako nam je dat monom am 1 m2 mn
1 a2 . . . an stepena k = m1 +. . .+mn , koliko različitih
reči dužine k nad alfabetom A = {a1 , . . . , an } odgovara ovom monomu? Na pri-
mer, monomu x3 yz2 odgovara čak 60 različitih reči: xxxyzz, xxxzyz, xxxzzy, xxyxzz,
xxyzxz, xxyzzx, xxzxyz, xxzxzy, xxzyxz, . . . , zzyxxx. Problem se može formulisati
i ovako: koliko ima reči w dužine k nad alfabetom A = {a1 , . . . , an } sa osobinom
|w|a j = m j za sve j ∈ {1, . . . , n}?
k! (k − m1 )! (k − m1 − m2 − . . . − mn−1 )!
= · · ... · =
m1 !(k − m1 )! m2 !(k − m1 − m2 )! mn !(k − m1 − m2 − . . . − mn )!
k!
= ,
m1 ! · m2 ! · . . . · mn !
gde smo na samom kraju koristili činjenicu da je k = m1 + m2 + . . . + mn .
pa kada sve izmnožimo i zapišemo sabirke u obliku reči dužine k nad alfabetom
{a1 , . . . , an } bez uobičajenog skraćenog zapisivanja, dobijamo sve moguće reči
dužine k. Na primer,
(a + b + c)4 = aaaa + aaab + aaac + aaba + aabb + aabc + aaca + aacb + aacc
+ abaa + abab + abac + abba + abbb + abbc + abca + abcb + abcc
+ ...
+ ccaa + ccab + ccac + ccba + ccbb + ccbc + ccca + cccb + cccc.
k
Na osnovu Teoreme 1.24, u ovoj sumi se javlja reči koje kraće možemo
l1 , . . . , ln
da zapišemo kao al11 . . . alnn . Odatle,
k
(a1 + a2 + . . . + an ) k
= ∑ l ,
1 2 l , . . . , ln
al11 al22 . . . alnn ,
l1 ,l2 ,...,ln ∈N0
l1 +l2 +...+ln =k
Pogledajmo sada koliko ima različitih monoma stepena k. Prvo ćemo rešiti
jedan jednostavniji problem.
Dokaz. Lako se vidi da postoji bijekcija izmedu skupa svih monoma stepena k
nad alfabetom A = {a1 , . . . , an } sa n slova i skupa svih nenegativnih celobrojnih
rešenja jednačine x1 + x2 + . . . + xn = k sa n nepoznatih x1 , . . . , xn . Naime, rešenju
(x1 , . . . , xn ) jednoznačno odgovara monom ax11 . . . axnn stepena k i obratno. Dakle,
broj monoma sepena k nad alfabetom A jednakje broju nenegativnih celobrojnih
n+k−1
rešenja jednačine x1 + x2 + . . . + xn = k, a to je .
k
a1 . . . a1 a2 . . . a2 . . . an . . . an .
| {z } | {z } | {z }
m1 m2 mn
| .{z
1 . . 1} 2
| .{z
. . 2} . . . n
| .{z
. . n},
m1 m2 mn
x3 y0 z0 = xxx 7→ 111
x2 y1 z0 = xxy 7 → 112
x2 y0 z1 = xxz 7 → 113
x1 y2 z0 = xyy 7 → 122
x1 y1 z1 = xyz 7 → 123
x1 y0 z2 = xzz 7 → 133
x0 y3 z0 = yyy 7 → 222
x0 y2 z1 = yyz 7 → 223
x0 y1 z2 = yzz 7 → 233
x0 y0 z3 = zzz 7 → 333
Zadaci za vežbu
1.1. Koliko memorije može da adresira procesor čija adresna magistrala ima
širinu 32 bita?
1.2. FORTRAN IV, jedan od najstarijih programskih jezika, imao je mnoga
ograničenja. Jedno od njih se odnosilo na identifikatore (reči koje kori-
stimo kao imena promenljivih i procedura). Identifikator u FORTRANU IV
može da se sastoji od najviše 6 simbola, cifara (0, 1, . . . , 9) ili velikih slova
engleskog alfabeta (A, B, . . . , Z), s tim da prvi simbol mora biti slovo. Ko-
liko različitih identifikatora se može deklarisati u FORTRANU IV?
1.3. Za realan broj x, sa ⌊x⌋ označavamo najveći ceo broj koji nije veći od x.
Na primer, ⌊1.99⌋ = 1, ⌊4⌋ = 4, ⌊0.65⌋ = 0, dok je ⌊−1.02⌋ = −2.
Neka je n pozitivan ceo broj i p prost broj. Dokazati da je najveće k sa
osobinom pk | n! dato sa
n n n
k= + 2 + 3 + ...
p p p
τ (n) = (1 + k1 )(1 + k2 ) . . . (1 + ks ).
y
Rastući put u celobrojnoj rešetki je
niz celobrojnih tačaka (x1 , y1 ), (x2 , y2 ),
. . . , (xk , yk ) takav da za svako i ∈
{1, . . . , k − 1} važi:
x1 + x2 + . . . + xn = 0 ili x1 + x2 + . . . + xn = 1 ili . . .
. . . ili x1 + x2 + . . . + xn = k.
paran broj.
1.23. Odrediti broj permutacija a1 a2 . . . an skupa {1, 2, . . . , n}, n > 3, koje imaju
osobinu |a1 − a2 | > 1.
†1.24. Odrediti broj premutacija f skupa {1, 2, . . . , n} sa osobinom inv( f ) = 2.
20 GLAVA 1. REČI I SKUPOVI
n
1.25. Dokazati da je ∑ l1 , l2 , . . . , lk
= kn .
l1 ,l2 ,...,lk ∈N0
l1 +l2 +...+lk =n
1.27. Napraviti algoritam koji generiše sve reči dužine k nad alfabetom {1, . . . , n}
u poretku koji je suprotan leksikografskom. To znači da je prva reč na spi-
sku nn . . . n, a poslednja 11 . . . 1.
1.28. Napisati rekurzivan algoritam koji generiše niz razlika Grayovog koda
reda k. Na osnovu toga napisati rekurzivan algoritam koji generiše Grayov
kod reda k.
1.29. Simetrična razlika skupova A i B je skup A∆B = (A \ B) ∪ (B \ A). Za sku-
pove A i B kažemo da se razlikuju za tačno jedan element ako je |A∆B| = 1.
Napraviti algoritam koji ispisuje sve podskupove skupa {1, 2, . . . , n} ali
tako da se svaka dva susedna podskupa na spisku koji nastaje na ovaj način
razlikuju za tačno jedan element. Na primer, za n = 3 algoritam treba da
generiše sledeći spisak podskupova skupa {1, 2, 3}:
∅, {1}, {1, 2}, {2}, {2, 3}, {1, 2, 3}, {1, 3}, {3}.
1.30. Napisati program koji generiše sve reči dužine k nad alfabetom {1, 2, . . . , n}
kod kojih su sva slova različita. Pretpostavlja se da je n > k > 1.