Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 06. 10. 2010 16:56

JardaB
Zelenáč
Příspěvky: 8
Reputace:   
 

Jak dokázat asymptotickou složitost?

Zdravím vás,

potřeboval bych pomoc s následujícím.

Mám dokázat, že funkce $n^k$ = $o(c^n)$, kde k je libovolné celé číslo a c > 1.

o(f(n)) je definovano nasledovne:
$o(f(n)) = \{g(n) : \forall c > 0 : \exists n_0 \in N+ : \forall n >= n_0 : g(n) <= c * f(n)\}$

Já to chápu tak, že musím dokázat, že fce $n^k$ roste vždy pomaleji než fce $c^n$

Poradíte mi, prosím, jak? Jestli přes limity nebo jinak...

Díky moc předem

Offline

 

#2 06. 10. 2010 18:00

Pavel
Místo: Ostrava/Rychvald
Příspěvky: 1828
Škola: OU
Pozice: EkF VŠB-TUO
Reputace:   135 
 

Re: Jak dokázat asymptotickou složitost?


Backslash je v TeXu tak důležitý jako nekonečno při dělení nulou v tělesech charakteristiky 0.

Offline

 

#3 06. 10. 2010 18:07

Olin
Místo: Brno / Praha
Příspěvky: 2823
Reputace:   81 
 

Re: Jak dokázat asymptotickou složitost?

Pak je ještě třeba si uvědomit (dokázat), že limita podílů nám již říká vše ve smyslu uvedené definice symbolu o.


Matematika = královna věd. Analýza = královna matematiky. (Teorie množin = bohatství matematiky.)
MKS Náboj iKS

Offline

 

#4 06. 10. 2010 18:29 — Editoval JardaB (06. 10. 2010 18:32)

JardaB
Zelenáč
Příspěvky: 8
Reputace:   
 

Re: Jak dokázat asymptotickou složitost?

↑ Pavel:

Děkuju.
Nebyla by, prosím, nějaká nápověda řešení?
Umím řešit akorat jednoduché limity.

Offline

 

#5 09. 10. 2010 13:35 — Editoval Pavel (09. 10. 2010 14:20)

Pavel
Místo: Ostrava/Rychvald
Příspěvky: 1828
Škola: OU
Pozice: EkF VŠB-TUO
Reputace:   135 
 

Re: Jak dokázat asymptotickou složitost?

↑ JardaB:

Nechť k je celé číslo a c>1.

1. předpokládejme, že k je záporné nebo nulové. pak můžeme psát

$\lim_{n\to\infty}\frac{n^k}{c^n}=\lim_{n\to\infty}\frac{1}{n^sc^n}=\frac{1}{\infty\cdot\infty}=0,\qquad s=-k$.

2. předpokládejme, že k je kladné. Pak limitu můžeme řešit pomocí k-násobného použítí l'Hospitalova pravidla

$\lim_{n\to\infty}\frac{n^k}{c^n}=\lim_{n\to\infty}\frac{kn^{k-1}}{c^n\cdot\ln c}=\lim_{n\to\infty}\frac{k(k-1)n^{k-2}}{c^n\cdot\ln^2 c}= \lim_{n\to\infty}\frac{k(k-1)(k-2)n^{k-3}}{c^n\cdot\ln^3 c}=\dots=\lim_{n\to\infty}\frac{k(k-1)(k-2)\cdots 2\cdot 1}{c^n\cdot\ln^k c}=\frac{k!}{\infty}=0$.

To že limita podílu obou posloupností stačí k tomu, abychom prohlásili, že $n^k=o(c^n)$, vyplývá z toho, že limita jejich podílu (viz výše) rovná se 0. Stačí jenom uvážit, že jsou-li posloupnosti $a_n$ a $b_n$ kladné, pak

$ \lim_{n\to\infty}\frac{a_n}{b_n}=0\quad\Leftrightarrow\quad \forall\varepsilon>0\,\exists n_0\in\mathbb{N}\,:\,\forall n\geq n_0\,:\, \frac{a_n}{b_n}<\varepsilon $

Všimni si, že definice je téměř stejná jako Landauova symbolu $o$. Poslední nerovnost upravíme $a_n<\varepsilon b_n$.


Backslash je v TeXu tak důležitý jako nekonečno při dělení nulou v tělesech charakteristiky 0.

Offline

 

#6 09. 10. 2010 19:32

JanuraJ
Zelenáč
Příspěvky: 9
Reputace:   
 

Re: Jak dokázat asymptotickou složitost?

řeším stejný příklad a nešlo by to udělat tak že:

$ n^k=o(c^n)$
$log(n^k) <= log(c^n)$
$k*log (n) <= n log (c)$
$k (log (n)) / n <= log (c)$
$k*\lim_{n\to\infty}\frac{log n}{n}=0$
a jelikož log má kladný definiční obor tak nikdy nemůže dosáhnout hodnoty 0

Offline

 

#7 10. 10. 2010 00:15

JardaB
Zelenáč
Příspěvky: 8
Reputace:   
 

Re: Jak dokázat asymptotickou složitost?

Já jsem to ještě zkoušel přes ty limity a dostal jsem se k tomuhle..

Řeším: $\lim_{x\rightarrow \infty}n^k/c^n$
na to pouziju l"Hospitala...nekolikrat...
tak v citateli dostanu: $k*(k-1)*(k-2)*(k-3).....n^0$
a ve jmenovateli dostanu: $c^n * ln(c) * ln(c)....$

takze v citateli budu mit po spouste kroci vzdy konstantu
a ve jmenovateli dostanu $c^\infty * ln(c) * ln(c)... = \infty$

takze budu mit $\lim_{x\rightarrow \infty}konstanta/\infty=0$

nebo je to uplne blbe?

Offline

 

#8 10. 10. 2010 10:08 — Editoval Pavel (10. 10. 2010 10:10)

Pavel
Místo: Ostrava/Rychvald
Příspěvky: 1828
Škola: OU
Pozice: EkF VŠB-TUO
Reputace:   135 
 

Re: Jak dokázat asymptotickou složitost?

↑ JanuraJ:

Myšlenka je v pořádku, jen je potřeba při úpravách pracovat s nerovností

$\log(n^k)\leq\log(\alpha c^n)$ (v definici "malého o" je to konstanta c, ale tu tady použít nemůžu, tak jsem zvolil $\alpha$) a dokázat tuto nerovnost pro všechna kladná $\alpha$. Stejná technika, kterou jsi použil, by měla fungovat i na tuto nerovnost.

↑ JardaB:

Přesně to jsem použil ve svém předchozím příspěvku. Jen si musíš dát pozor, že l'Hospitalovo pravidlo můžeš použít jen, když $k$ je kladné. V opačném případě dostaneš limitu vedoucí na výraz $1/\infty$.


Backslash je v TeXu tak důležitý jako nekonečno při dělení nulou v tělesech charakteristiky 0.

Offline

 

#9 10. 10. 2010 18:05

Frantik88
Příspěvky: 170
Reputace:   
 

Re: Jak dokázat asymptotickou složitost?

Děkuji :)


********
********
* O = O *
      _

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson