A növekedés nagyságrendje, számosság Logika és számításelmélet, 6. gyakorlat 2009/10 II. félév Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 1 / 1
Nagyordó, Omega, Theta, Kisordó Nagyordó, Omega, Theta Legyenek f, g : N R + függvények, ahol N a természetes számok, R + pedig a nemnegatív valós számok halmaza. Azt mondjuk, hogy f legfeljebb olyan gyorsan nő mint g (jelölése: f (n) = O(g(n)); ejtsd: f (n) = nagyordó g(n)) ha létezik olyan c > 0 szám és N N, hogy f (n) c g(n) minden n N számra. Az f (n) = Ω(g(n)) jelöli azt, hogy g(n) = O(f (n)) teljesül, és f (n) = Θ(g(n)) jelöli azt, hogy f (n) = O(g(n)) és f (n) = Ω(g(n)) is teljesül. Kiordó Legyenek f, g : N R + függvények. f (n) = o(g(n)) (ejtsd: f (n) = kisordó g(n)), ha f (n)/g(n) 0. Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 2 / 1
Észrevételek: f (n)/g(n) 0 minden c > 0 esetén létezik N N, hogy minden n N esetén f (n) c g(n) f (n) = o(g(n)) f (n) = O(g(n)). f (n) = o(g(n)) f (n) Ω(g(n)). Ha f (n) = O(g(n)) és g(n) = O(h(n)) akkor f (n) = O(h(n)). Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 3 / 1
Polinomok és exponenciális függvények 7. Feladat: Lássuk be a következő álĺıtásokat! 1. x > 1-re x 2 x. Teljes indukcióval könnyen bizonyítható, hogy n + 1 2 n. Létezik n N : n x n + 1. x n + 1 2 n 2 x. 2. Ha c > 1, akkor n 1, n > n 1 : c n 2. ε := c 1 > 0. c n = (1 + ε) n = ( ) n 0 1 n ε 0 + ( n 1) 1 n 1 ε 1 +... = 1 + nε + δ, ahol δ 0. 3. Ha c > 1 és k N akkor n k = O(c n ). Legyen n 1 az előző küszöb. n > n 1 k esetén n k = n1 kkk ( n n 1 k )k n1 kkk 2 n n 1 k k n1 kkk c n n n 1 1 = n1 kkk c n. 4. Legyen p(n) egy pozitív főegyütthatójú k-adfokú polinom. Ekkor p(n) = O(n k ). p(n) = a k n k + + a 1 n + a 0. a k > 0. p(n) (a k + 1)n k, ha n N, valamely N N-re. Ugyanis (a k + 1)n k p(n) = n k 1 (1 a k 1 n a 0 1 ) +. n k Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 4 / 1
5. Minden p(n) polinomra és c > 1 konstansra p(n) = O(c n ). p(n) = O(n k ), ahol k p(n) foka. n k = O(c n ), tehát p(n) = O(c n ). 6. Minden p(n) polinomra és c > 1 konstansra p(n) Ω(c n ). Indirekt, tfh. létezik d 1 > 0 és N 1 N, hogy n N 1 -re c n d 1 p(n). Legyen c 1 olyan, hogy 1 < c 1 < c. Ekkor létezik d 2 > 0 és N 2 N, hogy n N 2 -re p(n) d 2 c n 1. Tehát n max N 1, N 2 -re c n d 1 p(n) d 1 d 2 c n 1. Azaz ( c c 1 ) n d 1 d 2, ami ellentmondás. Tehát azt kaptuk, hogy: Minden polinomiális függvény lassabban nő, mint bármely exponenciális függvény. Általánosabban: Legyen f : N R + egy + -hez tartó függvény, p egy pozitív főegyütthatójú polinom és c > 1, ekkor p(f (n)) lassabban nő, mint c f (n). Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 5 / 1
Feladat 7. Feladat: Melyek igazak az alábbi álĺıtások közül? 1 5n 7 = O(n 7 ), Igen. 2 n log 100 n = o(n 2 ), Igen. 3 n 2 = O(n log 100 n), Nem. 4 1 = o(100), Nem. 5 1 = o(n), Igen. 6 4 n = O(2 n ), Nem. 7 2 n = o(4 n ), Igen. 8 4 n = 2 Θ(n), Igen. 9 (n + 1) 3 = n 3 + n 2 + O(n). Nem. Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 6 / 1
Feladat 7. Feladat: Melyik igaz? f (n) = O(g(n)), f (n) = Ω(g(n)), f (n) = Θ(g(n)) minden függvénypárra döntsük el. (A logaritmus 2-es alapú.) n!, log n!, n 3, 100 n, 2 100 log n, n log n, n log n. Megoldás: Teljes indukcióval n 6-ra könnyen látható, hogy (felhasználva, hogy (1 + 1/n) n e): ( n 3 )n < n! < ( n 2 )n. log n! = Θ(n log n), n log n = O(n 3 ), n log n Ω(n 3 ), n 3 = O(2 100 log n ), n 3 Ω(2 100 log n ), 2 100 log n = O(n log n ), 2 100 log n Ω(n log n ), n log n = O(100 n ), n log n Ω(100 n ), 100 n = O(n!), 100 n Ω(n!). Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 7 / 1
Feladat 7. Feladat: Mit mondhatunk arról az f függvényről, melyre f (1) = 1, f (2) = 10, és f (3) = 100? 1 f (n) = O(10 n ), 2 f (n) = 10 O(n), 3 Egyik fenti álĺıtás sem igaz minden esetben. Megoldás: A harmadik a helyes, nem mondhatunk semmit egy függvény viselkedéséről nagy n-ekre a kezdőértékek alapján. 7. Feladat: Létezik-e olyan p(n) polinom, melyre az alábbi függvények O(p(n)) nagyságrendűek? 1 n!, 2 3 ( n 100), ( n n/100). Megoldás: 1. Nem, n! ( n 3 )n. 2. Igen, ( ) n 100 n 100 100!. 3. Nem, ( ) n n/100 = n 1 100 n/100. n/100 n 1 n/100 1 99n/100+1 Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 8 / 1
Számosság Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 9 / 1
Számosság Egy A halmazhoz hozzárendeljük az ő ( A -al jelölt) számosságát. A számosság fogalmával az a célunk, hogy mondhassuk egy halmazról, hogy több, kevesebb vagy ugyananny eleme van mint egy másik halmaznek. Ez különösen akkor probléma, ha a halmazoknak végtelen sok elemük van. Számosság A és B halmazoknak megegyezik a számossága, ha létezik bijekció köztük. Jelölése: A = B. A számossága legalább annyi, mint B számossága, ha van B-ből injekció A-ba. Jelölése: A B. A számossága határozottan nagyobb, mint B számossága, ha van B-ből injekció A-ba, de bijeció nincs. Jelölése: A > B. Cantor-Bernstein tétel Ha A-ból B-be van injekció és B-ből A-ba is van, akkor A és B között bijekció is van. Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 10 / 1
Számosság Feladatok 7. Feladat: Melyik nagyobb? N vagy Z? Megoldás: Megegyezik a számosságuk. 0 1 2 3 4 5 6 3 2 1 0 1 2 3 7. Feladat: Melyik nagyobb? N vagy N N? 6 5 4 3 2 1 0 21 20 22 10 19 23 9 11 18 24 3 2 8 4 12 7 17 13 16 0 0 1 1 2 5 6 3 14 15 4 5 Megoldás: Megegyezik a számosságuk. 6 Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 11 / 1
7. Feladat: Melyik nagyobb? N vagy Q? Megoldás: Megegyezik a számosságuk. N Q, ezért N Q. Q + := { p q p N+, q N +, a tört nem egyszerűsíthető}. Q := { p q p N+, q N +, a tört nem egyszerűsíthető}. Q + = Q. p q Q+ (p, q) N N injektív, tehát Q + N N = N. Legyen Q + = {a 1, a 2, a 3..., }, Q = {b 1, b 2, b 3..., }, ekkor Q = {0, a 1, b 1, a 2, b 2, a 3, b 3,...} Megszámlálhatóan végtelen számosság N számosságát megszámlálhatóan végtelennek nevezzük. Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 12 / 1
Számosság Feladatok 7. Feladat: Melyik több? 1 R 2 [0, 1] 3 az egységsugarú körvonal pontjainak száma 4 [0, 1] [0, 1]. Megoldás: tg(π(x 1 2 )) (0,1) : (0, 1) R bijekció (0, 1) és R között. (sin ϕ, cos ϕ) ϕ 2π. bijekció az egységsugarú körvonal pontjai és [0, 1) között. Legyen (a n ) n N + { egy olyan sorozat, melyre a 1 = 0 és lim a i (0, 1), pl. a i = 1 2 1 a i+1 ha x = a i (i N + ). f (x) = 2 i x ha x {a i i N + egy bijekció [0, 1) és } (0, 1) között. Hasonlóan megadható egy bijekció [0, 1] és [0, 1) között. Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 13 / 1
Számosság Feladatok 7. Feladat: Mennyi van belőle? 1 véges hosszú bináris szavak 2 megszámlálhatóan végtelen hosszúságú bináris szavak 3 véges, bináris szavakból álló nyelvek Megoldás: A véges hosszú bináris szavakat felsoroló algoritmus adható: ε,0,1,00,01,10,11,000,001,010,011,100,101,110,111,0000,... Tehát számossága megszámlálhatóan végtelen. Természetes bijekció van 2 és 3 között: Soroljuk fel a bináris szavakat. Egy nyelvhez rendeljük azt a megszámlálhatóan végtelen hosszúságú bináris szót, melynek 1 az i. bitje, ha benne van az i. szó, 0 ha nem. 2 és 3 számosszága nagyobb, mint megszámlálható. (És megegyezik R -el.) Continuum számosság R számosságát continuumnak nevezzük. Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 14 / 1
Cantor-féle átlós módszer Jelölje H a megszámlálhatóan végtelen hosszúságú bináris szavak halmazát. Álĺıtás: H > N H N : H 0 := {(1, 0, 0, 0,...), (0, 1, 0, 0,...), (0, 0, 1, 0,...),...} H, és H 0 = N. Indirekt tegyük fel, hogy H = N. Ez azt jelenti, hogy bijekcióba lehet álĺıtani H elemeit N elemeivel, azaz H = {u i i N} = {u 1, u 2,...} a H elemeinek egy felsorolása (a természetes számokkal való megindexelése). Legyen u i = (u i,1, u i,2,..., u i,j,...), ahol minden i, j N-re u i,j {0, 1}. Tekintsük az u = {u 1,1, u 2,2,..., u i,i,...) megszámlálhatóan végtelen hosszúságú bináris szót, ahol b 0, ha b = 1 és 1, ha b = 0. Mivel, minden megszámlálhatóan végtelen hosszúságú bináris szó fel van sorolva, ezért létezik olyan k N, melyre u = u k. Ekkor u k.bitje u k,k (így jelöltük u k k. bitjét), másrészt u k,k (így definiáltuk u-t). De ez nem lehetséges, tehát az a feltevésünk, hogy H = N hamis. Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 15 / 1