Zadanie 1
Jaka jest najmniejsza wartość n, dla której algorytm o złożoności 100n2 działa (na tej samej maszynie) szybciej od algorytmu o złożoności 2n?
100n2<2n | lg
2lg(10n2)<n=lg2n | $$
Założenie indukcyjne: ∀15≤k≤n 100k2<2k
100(n+1)2<2n+1
100(n2+2n+1)<2n+1
100n2+(2n+1)⋅100<2n+2n⟸200n+100<2n
n=15
3100<215
n≥15
200n+100<2n
200n+100≥100n2<2n
2n+1≤n2 — trywialne
Zadanie 2
logn |
10106 |
n |
1012 |
n |
106 |
n⋅logn |
1,9⋅105 |
n2 |
103 |
n3 |
102 |
2n |
5⋅lg10 |
n! |
∼9,5 |
Zadanie 3
a |
eπ |
O(1) |
b |
(logn)11 |
? |
c |
2πn |
O(n) |
d |
n+13 |
O(n) |
e |
n2logn |
O(n2logn) |
f |
nπ |
O(nx) |
g |
10n |
O(x1n) |
h |
33n |
O(x2n) |
g-h: 33n10n=(3310)nn→∞0<∞ ⟹10n=O(33n)
f-g: 10nnπ=10n⋅ln10πnπ−1=ln10π⋅10nnπ−1=C⋅10nnπ−3n→∞0<∞
b-c: 2πn(lnn)11=C⋅n(lnn)11=C⋅−2n111(lnn)10⋅n1==C⋅n−11(lnn)10⋅2n==D2lnn=Enn11=nFn→∞0<∞
Zadanie 4
Rando-student:
2n, nlog3(n), n34, nlog(n), 2n, 2n2, 22n
2log(n)=O( n(log(n))3 )
log22log(n)=O( log2(nlog(n))3 )
n=O( log2n+3log2(logn) )=O( log2n )
limn→∞n34n(logn)3=limn→∞n31(logn)3=limn→∞(n31logn)3
limn→∞n91logn=limn→∞91n−98n1=
9limn→∞n−1n98=9limn→∞n−91=0
nlogn≤c2n, weźmy n0=1,c=1
1<2
nlogn<2n nakładamy log2(...)
log2( nlog2n )≤n
(log2n)(log2n)≤n
(log2n)2≤n
log2n≤n
Recommended:
f(n)=O( g(n) )⟸logf(x)=O( logg(x) )
f(n)=O( g(n) )≡(∃ c∃ n0 ∀n≥n0:∣f(n)∣≤c∣g(n)∣)
∣2logn∣≤c∣nlogn∣
weźmy n0=2,c=1
musimy pokazać 2logn≤n( logn )3 nakładamy na to log2
logn≤logn+3loglogn
f(n)=O( g(n) )≡limsupn→∞∣g(n)∣∣f(n)∣<∞⟸limn→∞∣g(n)∣∣f(n)∣<∞
f(n)={n dla n mod 2=02n dla n mod 2=1=O(n)