Matematyka Dyskretna
Wykªad: Funkcje tworz¡ce - kombinatoryka
Tomasz Krawczyk
krawczyk@tcs.uj.edu.pl
Kraków, semestr letni 2019/20
Plan wykªadu
Plan wykªadu:
I Zastosowanie funkcji tworz¡cych do zliczania.
I Funkcje tworz¡ce a podziaªy liczby.
I O(n √
n)-algorytm zliczaj¡cy wszystkie podziaªy liczby n.
liczba wyborów kul z pudeªka
Pytanie:
Na ile sposobów mo»emy wybra¢ 70 kul z pudeªka, które zawiera:
I 30 kul czerwonych, I 40 kul niebieskich, I 50 kul biaªych.
c
nliczba ró»nych wyborów n kul z pudeªka. Interesuje nas liczba c
70. Oczywi±cie:
I c
0= 1, I c
1= 3,
I c
n= 0 dla n > 120.
liczba wyborów kul z pudeªka
Zauwa»my, »e ci¡g (c
0, c
1, c
2, . . .) speªnia zale»no±¢:
( 1 + x + . . . + x
30)( 1 + x + . . . + x
40)( 1 + x + . . . + x
50) =
= c
0+ c
1x + c
2x
2+ . . . + c
nx
n+ . . . . Zauwa»my »e c
njest równe liczbie trójek w zbiorze T , gdzie:
T = {(i
1, i
2, i
3) : i
1+ i
2+ i
3= n, 0 6 i
16 30, 0 6 i
26 40, 0 6 i
36 40}.
Istotnie, ka»da trójka (i
1, i
2, i
3) z T odpowiada wyborowi x
i1z pierwszego nawiasu, x
i2z drugiego nawiasu, x
i3z trzeciego nawiasu, które to wybory po wymno»eniu daj¡
x
i1· x
i2· x
i3= x
n. Ka»da trójka z T podnosi zatem wspóªczynnik przy x
no 1.
Podsumowuj¡c,
( 1 + x + . . . + x
30)( 1 + x + . . . + x
40)( 1 + x + . . . + x
50) = 1 − x
311 − x · 1 − x
411 − x · 1 − x
511 − x
jest funkcj¡ tworz¡c¡ dla ci¡gu (c
0, c
1, c
2, . . .) .
liczba wyborów kul z pudeªka
Mamy wi¦c:
C(x) =
1−x1−x31·
1−x411−x
·
1−x511−x
=
(1−x31)((1−x)1−x413)(1−x51)=
20+
31x + . . . +
722x
70+ . . . ( 1 − x
31)( 1 − x
41)( 1 − x
51).
Nietrudno jest teraz zauwa»y¢, »e:
c
70=
72 2
− 41 39
− 31 29
− 21 19
,
co daje c
70= 1016.
zliczanie za pomoc¡ funkcjei tworz¡cych
Pytanie:
Na ile sposobów mo»na rozmieni¢ banknot o nominale 100 zª na monety o nominale 1, 2, 5 - zªote.
p
nliczba podziaªów n na skªadniki wielko±ci 1, 2, 5.
Odpowied¹ na nasze pytanie to p
100. Zauwa»my, »e:
P(x) = (1 + x + x
2+ x
3+ . . .)( 1 + x
2+ x
4+ x
6+ . . .)( 1 + x
5+ x
10+ x
15+ . . .) jest funkcj¡ tworz¡c¡ dla ci¡gu (p
0, p
1, p
2, . . .) .
Zauwa»my, »e p
nto liczba trójek w zbiorze T , gdzie:
T = {(i
1, i
2, i
3) : i
1+ 2i
2+ 5i
3= n, 0 6 i
1, i
2, i
3},
jako »e ka»da trójka (i
1, i
2, i
3) odpowiada podziaªowi n, w którym wyst¦puje i
1skªadników 1, i
2skªadników 2, i
3skªadników 5.
funkcje tworz¡ce dla podziaªów liczb
Denicja
Niech n b¦dzie liczb¡ naturaln¡. Podziaªem n na k skªadników nazywamy krotk¦
(λ
1, λ
2, . . . , λ
k) speªniaj¡c¡ warunki
n = λ
1+ . . . + λ
koraz λ
1≥ λ
2≥ . . . ≥ λ
k≥ 1.
Niech P = (λ
1, . . . , λ
k) b¦dzie podziaªem liczby n.
I Liczby λ
1, . . . , λ
knazywamy skªadnikami podziaªu P.
I Podziaª P w sposób jednoznaczny przedstawia si¦ w formie n = λ
1+ λ
2+ . . . + λ
k.
I Podziaª P wizualizuje si¦ za pomoc¡ tzw. diagramu Ferrersa, który skªada si¦ z k wierszy rozpoczynaj¡cych si¦ w tej samej kolumnie, kolejne wiersze zawieraj¡
odpowiednio λ
1, λ
2, . . . , λ
ksymboli o.
Przykªad:
Krotka (5, 5, 5, 2, 1) jest podziaªem liczby 18. Podziaª (5, 5, 5, 2, 1) liczby 18 przedstawiamy te» w formie 18 = 5 + 5 + 5 + 2 + 1.
Diagram Ferrersa dla podziaªu 18 = 5 + 5 + 5 + 2 + 1:
5 : o o o o o
5 : o o o o o
5 : o o o o o
2 : o o
1 : o
funkcje tworz¡ce dla podziaªów liczb
Rozpatrzmy ci¡gi:
p
nliczba wszytskich podziaªów liczby n,
a
nliczba wszystkich podziaªów n na skªadniki parami ró»ne, b
nliczba wszystkich podziaªów n na skªadniki nieparzyste.
Zaªó»my, »e P(x), A(x) oraz B(x) s¡ funkcjami tworz¡cymi dla ci¡gów p
n, a
n, oraz b
n, odpowiednio.
Mo»emy wykaza¢ (stosuj¡c rozumowanie jak we wcze±niejszych slajdach), »e:
P(x) = (1 + x + x
2+ . . .) · ( 1 + x
2+ x
4+ . . .) · ( 1 + x
3+ x
6+ . . .) · . . . A(x) = (1 + x) · (1 + x
2) · ( 1 + x
3) · ( 1 + x
4) · . . .
B(x) = (1 + x + x
2+ . . .) · ( 1 + x
3+ x
6+ . . .) · ( 1 + x
4+ x
8+ . . .) · . . .
podziaªy liczby
Wyka»emy teraz nast¦puj¡cy fakt:
Fakt Liczba podziaªów n na skªadniki parami ró»ne jest równa liczbie podziaªów n na skªadniki nieparzyste.
Przeprowadzimy dwa dowody powy»szego faktu:
I kombinatoryczny,
I wykorzystuj¡cy funkcje tworzace.
Dowód kombinatoryczny:
I wska»emy bijekcj¦ π pomi¦dzy podziaªami n na skªadniki nieparzyste a podziaªami n na skªadniki parami ró»ne,
I wska»emy bijekcj¦ π
0pomi¦dzy podziaªami n na skªadniki parami rózne a podziaªami n na skªadniki nieparzyste,
I wyka»emy, »e π ◦ π
0= id oraz π
0◦ π = id, co b¦dzie dowodzi¢, »e π, π
0s¡
bijekcjami pomi¦dzy odpowiednimy zbiorami.
podziaªy liczby
Odwzorowanie π:
I Niech P b¦dzie podziaªem n na skªadniki nieparzyste.
I Zaªó»my, »e skªadnik (2i + 1) wyst¦puje w podziale P dokªadnie a
2i+1razy, to znaczy, zachodzi:
n = a
1· 1 + a
3· 3 + a
5· 5 + . . . + a
2k+1· ( 2k + 1), gdzie (2k + 1) jest najwi¦kszym skªadnikiem wyst¦puj¡cym w podziale P.
I Przedstawiamy a
2i+1w postaci:
a
2i+1= 2
0· a
2i+1,0+ 2
1· a
2i+1,1+ . . . + 2
ki· a
2i+1,ki, gdzie a
2i+1,jjest ze zbioru {0, 1}. Innymi sªowy, liczba a
2i+1w systemie dwójkowym ma zapis (a
2i+1)
2= a
2i+1,ki. . . a
2i+1,1a
2i+1,0.
I a
2i+1skªadników (2i + 1) w podziale P zast¦pujemy skªadnikami
( 2i + 1) · 2
0· a
2i+1,0, ( 2i + 1) · 2
1· a
2i+1,1, . . . , ( 2i + 1) · 2
ki· a
2i+1,ki, otrzymuj¡c podziaª P
0.
Nietrudno jest zauwa»y¢, »e P
0jest podziaªem n na skªadniki parami ró»ne.
podziaªy liczby
Przykªad:
I Dla podziaªu P = (5, 5, 5, 5, 5, 1, 1, 1) liczby 28 na skªadniki nieparzyste mamy:
28 = 3 · 1 + 0 · 3 + 5 · 5, sk¡d otrzymujemy a
1= 3, a
3= 0, a
5= 0,
I Mamy:
a
1= 1 · 2
0+ 1 · 2
1, a
5= 1 · 2
0+ 0 · 2
1+ 1 · 2
2. Zapisujemy a
1oraz a
5w systemie dwójkowym:
( a
1)
2= 11, (a
5)
2= 101
I Skªadniki 5, 5, 5, 5, 5 z podziaªu P zast¦pujemy skªadnikami 5 · 2
0, 5 · 2
2, skªadniki 1, 1, 1 z podziaªu P zast¦pujemy skªadnikami 1 · 2
0, 1 · 2
1. I Tym samym, odwzorowanie π przeksztaªca podziaª
28 = 5 + 5 + 5 + 5 + 5 + 1 + 1 + 1 w podziaª 28 = 20 + 5 + 2 + 1 skªadaj¡cy si¦
ze skªadników parami ró»nych.
podziaªy liczby
Odwzorowanie π
0:
I Niech P
0b¦dzie podziaªem n na skªadniki parami ró»ne.
I Przedstawiamy ka»dy skªadnik b
ipodziaªu P
0w postaci 2
ki· n
i, gdzie n
ijest liczb¡ nieparzyst¡. Przedstawienie takie jest jednoznaczne. Liczb¦ n
inazywamy czynnikiem nieparzystym skªadnika b
i.
I Grupujemy skªadniki podziaªu P
0wzgl¦dem czynnika nieparzystego.
Grup¦ i-t¡ stanowi¡ skªadniki P
0z czynnikiem nieparzystym równym (2i + 1).
I Skªadniki i-tej grupy maj¡ posta¢:
2
k1· ( 2i + 1), 2
k2· ( 2i + 1), . . . , 2
kpi· ( 2i + 1),
dla pewnych liczb naturalnych 0 6 k
1< k
2< . . . < k
pi.
I Skªadniki i-tej grupy podziaªu P
0zamieniamy na (2
k1+ 2
k2+ . . . + 2
kpi) skªadników (2i + 1) w podziale P.
Nietrudno jest zauwa»y¢, »e P jest podziaªem n na skªadniki nieparzyste.
podziaªy liczby
Przykªad:
I Rozpatrzmy podziaª P
0= ( 20, 5, 2, 1) liczby 28 na skªadniki parami ró»ne.
I Zauwa»my, »e 20 = 2
2· 5, 5 = 2
0· 5, 2 = 2
0· 1, 1 = 2
0· 1. Grupa 1-wsza skªada si¦ ze skªadników 2 oraz 1, grupa 5-ta skªada si¦ ze skªadników 20 oraz 5.
I Skªadniki grupy 1-wszej w P
0zast¦pujemy (2
1+ 2
0) = 3 skªadnikami o warto±ci 1, skªadniki grupy 5-tej zast¦pujemy (2
2+ 2
0) = 5 skªadnikami o warto±ci 5.
I π
0przeksztaªca podziaª 28 = 20 + 5 + 2 + 1 (skªadniki parami ró»ne) w podziaª
28 = 5 + 5 + 5 + 5 + 5 + 1 + 1 + 1 (skªaniki nieparzyste).
podziaªy liczby
atwo jest zauwa»y¢, »e odwzorowania π i π
0s¡ do siebie wzajemnie odwrotne. To znaczy:
I je»eli π przeksztaªca podziaª P liczby n na skªadniki nieprzyste w podziaª P
0liczby n na skªadniki paramie ró»ne, to π
0przeksztaªca podziaª P
0w podziaª P, I je»eli π
0przeksztaªca podziaª P
0liczby n na skªadniki parami ró»ne w podziaª P
liczby n na skªadniki nieparzyste, to π przeksztaªca podziaª P w podziaª P
0. Innymi sªowy, zachodzi:
π ◦ π
0= id oraz π
0◦ π = id,
co dowodzi tezy naszego faktu.
podziaªy liczby
Dowód przez funkcje tworz¡ce.
Przyjmijmy:
a
nliczba podziaªów n na skªadniki parami ró»ne, b
nliczba podziaªów n na skªadniki parami nieparzyste.
Niech A(x) oraz B(x) b¦d¡ funkcjami tworz¡cymi dla ci¡gów (a
0, a
1, . . .) oraz ( b
0, b
1, . . .) , odpowiednio.
Mamy:
A(x) = (1 + x) · (1 + x
2) · ( a + x
3) · . . . oraz:
B(x) = (1 + x + x
2+ x
3+ . . .) · ( 1 + x
3+ x
6+ x
9) · . . .
=
1−x1·
1−x13·
1−x14· . . . .
podziaªy liczby
Mamy wykaza¢, »e:
A(x) = B(x), co sprowadza si¦ do wykazania, »e:
A(x) ·
B(x)1= ( 1 + x) · (1 − x) · (1 + x
2) · ( 1 + x
3) · ( 1 − x
3) · ( 1 + x
4) · . . .
= 1.
Istotnie, mamy:
A(x)
B(x)1= ( 1 + x) · (1 − x) · (1 + x
2) · ( 1 + x
3) · ( 1 − x
3) · ( 1 + x
4) · . . .
= ( 1 + x
2) · ( 1 − x
2) · ( 1 + x
3) · ( 1 − x
3) · ( 1 + x
4) · ( 1 + x
5) · ( 1 − x
5) · . . .
= ( 1 + x
3) · ( 1 − x
3) · ( 1 + x
4) · ( 1 − x
4) · ( 1 + x
5) · ( 1 − x
5) · . . .
= . . .
co pokazuje, »e wspóªczynnik przy x
ndla ka»dego n ≥ 1 w funkcji A(x)
B(x)1jest
równy 0.
liczba podziaªów n
Pytanie:
Jak szybko (algorytmicznie) obliczy¢ liczb¦ wszystkich podziaªów liczby n?
Przyjmijmy: p
nliczba wszystkich podziaªów liczby n,
p
n,kliczba podziaªów liczby n na dokªadnie k skªadników.
Zauwa»my, »e prwdziwe s¡ nast¦puj¡ce to»samo±ci:
p(n) = X
nk=1
p
n,koraz p
n,k=
k
X
j=1
p
n−k,j,
które w czasie O(n
3) pozwalaj¡ obliczy¢ warto±¢ p
n. Dowód to»samo±ci:
I Pierwsza z nich jest trywialna.
I Niech P b¦dzie podziaªem liczby n na k skªadników. Operacja usuni¦cia pierwszej kolumny z diagramu Ferrersa podziaªu P przeksztaªca podziaª P w podziaª liczby n − k na k lub mniej skªadników. Operacja ta ustanawia bijekcj¦
pomi¦dzy podziaªami n na k skªadników oraz podziaªami n − k na k lub mniej
skªadników. Spostrze»enie to dowodzi drugiej to»samo±ci.
liczba podziaªów n
Pytanie:
Czy mo»emy policzy¢ p
nszybciej ni» w czasie O(n
3) .
Na kolejnych slajdach zaprezentujemy algorytm, który oblicza p
nw czasie O(n √ n).
Niech P(x) b¦dzie funkcj¡ tworz¡c¡ dla ci¡gu p
n. Przypomnijmy:
P(x) = (1 + x + x
2+ x
3+ . . .) · ( 1 + x
2+ x
4+ x
4+ . . .) · . . .
=
1−x1·
1−x12·
1−x13· . . . .
Innymi sªowy, Q(x) = (1 − x)(1 − x
2)( 1 − x
3) · . . . jest funkcj¡ odwrotn¡ do P(x), tzn. zachodzi P(x)Q(x) = 1.
Pytanie:
Jaki ci¡g reprezentuje funkcja tworz¡ca Q(x)?
liczba podziaªów n
Wprowad¹my oznaczenia:
E
nzbiór podziaªów liczby n na parzyst¡ liczb¦ skªadników parami ró»nych, O
nzbiór podziaªów liczby n na nieparzyst¡ liczb¦ skªadników parami ró»nych, i przyjmijmy:
e
n= | E
n| oraz o
n= | O
n|.
Zauwa»my, »e funckja tworz¡ca dla ci¡gu e
n+ o
n(wszystkie podziaªy n na skªadniki parami ró»ne) ma posta¢
( 1 + x) · (1 + x
2) · ( 1 + x
3) · ( 1 + x
4) · . . .
(ka»demu wyborowi z nawiasów wymna»aj¡cemu si¦ do x
nodpowiada podziaª n na skªadniki parami ró»ne). Zauwa»my teraz, »e
Q(x) = (1 − x) · (1 − x
2) · ( 1 − x
3) · ( 1 − x
4) · . . .
jest funkcj¡ tworz¡c¡ dla ci¡gu e
n− o
n. Istotnie, zauwa»my, »e wybory odpowiadaj¡ce
podziaªom n z parzyst¡ liczb¡ skªadników podnosz¡ wspóªczynnik przy x
no 1, wybory
odpowiadaj¡ce podziaªom n z nieparzyst¡ liczb¡ skªadników obni»aj¡ wspóªczynnik
przy x
no 1.
liczba podziaªów n
Twierdzenie (Euler):
Przyjmijmy q
n= e
n− o
n. Zachodzi to»samo±¢:
q
n=
( 0, je»eli n 6=
(3k±1)k2(− 1)
k, je»eli n =
(3k±1)k2Wnioski:
I Q(x) = q
0+ q
1x + q
2x
2+ q
3x
3+ . . .
= 1 − x − x
2+ x
5+ x
7− x
12− x
15+ x
22+ x
26− . . . . I W±ród liczb q
0, q
1, . . . , q
ntylko O( √
n) z nich jest ró»na od zera (równa 1 lub równa −1).
I Poniewa» P(x)Q(x) = 1, zachodzi:
0 = p
n− p
n−1− p
n−2+ p
n−5+ p
n−7− p
n−12− p
n−15− . . . , co prowadzi do:
p
n= p
n−1+ p
n−2− p
n−5− p
n−7+ p
n−12+ p
n−15− . . . . I Maj¡c dane p
0, p
1, . . . , p
n−1, warto±¢ liczby p
nmo»emy obliczy¢ w czasie
O( √
n).
liczba podziaªów n
Dowód twierdzenia Eulera:
Zdeniujemy funkcj¦ cz¦±ciow¡ (okre±lon¡ nie na caªej dziedzinie) f , f : E
n∪ O
n→ E
n∪ O
n,
która b¦dzie mie¢ nast¦puj¡ce wªasno±ci:
I f jest zdeniowana na wszystkich podziaªach z E
n∪ O
n, z wykluczeniem podziaªów:
n = (2k − 1) + . . . (k + 1) + k
| {z }
k
oraz n = 2k + . . . (k + 2) + (k + 1)
| {z }
k
dla ka»dego k ≥ 1, co ma miejsce tylko w przypadku gdy n jest postaci
(3k−1)k2(pierwszy przypadek) lub postaci
(3k+1)k2(drugi przypadek).
I Dla pozostaªych podziaªów, funkcja f jest okre±lona i posyªa podziaª z E
nw podziaª O
noraz podziaª O
nw podziaª E
n. Dodatkowo, je»eli f posyªa podziaª P w P
0, to f posyªa podziaª P
0w P.
Wnioski:
I Je»eli n 6=
(3k±1)k2, to e
n= o
n.
I Je»eli n =
(3k±1)k2, to e
n− o
n= (−1)
kjako »e n nie mo»e by¢ jednocze±nie
postaci
(3k+1)k2oraz postaci
(3k−1)k2.
liczba podziaªów n
Denicja funkcji f (zdeniowana za pomoc¡ diagramów Ferrersa):
I Niech P = (λ
1, λ
2, . . . , λ
k) b¦dzie podziaªem ze zbioru E
n∪ O
n.
I Rozpatrzmy diagram Ferrersa podziaªu P i zdeniujmu dwa zbiory kropek A (czerwone kropki) oraz B (niebieskie kropki) w diagramie P:
I
A to kropki reprezentuj¡ce najmniejszy skªadnik λ
kw podziale P,
I