Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
--- O-Notation die Zweite... (http://www.informatikerboard.de/board/thread.php?threadid=2911)
Geschrieben von Shizmo am 10.03.2016 um 14:57:
O-Notation die Zweite...
Hallo, weiter gehts mit meinen Fragen zur O-Notation. Die folgende Aufgabe lautet:
| Zitat: |
Geben Sie für folgende Funktionen bis passende und -Klassen an!
|
Also ich denke die Theta-Klasse gibt die ?durchschnittliche? Laufzeit an? Also für
![[latex]f_1[/latex]](http://www.matheboard.de/latex2png/latex2png.php?f_1)
dürfte es so ausschauen:
![[latex]f_1 = \Theta(log(n))[/latex]](http://www.matheboard.de/latex2png/latex2png.php?f_1 = \Theta(log(n)))
Da man die Konstanten ja streichen kann und 1 hoch irgendwas immer 1 ist, ist es auch nicht exponentiell.
Bei
![[latex]f_2[/latex]](http://www.matheboard.de/latex2png/latex2png.php?f_2)
dann:
![[latex]f_2 = \Theta(n^4)[/latex]](http://www.matheboard.de/latex2png/latex2png.php?f_2 = \Theta(n^4))
usw.
Aber was gibt denn die Groß-O bzw. Groß-Omega Klasse an. Vermutlich Groß-O die maximale Laufzeit, also die Worst-Case Laufzeig und Omega das Gegenteil?
Falls ja, wie wird das berechnet?
LG
Geschrieben von eulerscheZahl am 10.03.2016 um 15:32:
![[latex]\mathcal{O}[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\mathcal{O})
heißt, die Laufzeit ist nicht schlechter. Das hattest du ja schonmal definiert:
![[latex]:= f(n):[/latex]](http://www.matheboard.de/latex2png/latex2png.php?:= f(n):)
Es existierten Konstanten
![[latex]c>0, n_{0}[/latex]](http://www.matheboard.de/latex2png/latex2png.php?c>0, n_{0})
, sodass für alle
![[latex]n \geq n_{0}[/latex]](http://www.matheboard.de/latex2png/latex2png.php?n \geq n_{0})
gilt
![[latex]\Omega[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\Omega)
heißt, es ist nicht besser. Du musst einfach nur f und g vertauschen:
![[latex]:= g(n):[/latex]](http://www.matheboard.de/latex2png/latex2png.php?:= g(n):)
Es existierten Konstanten
![[latex]c>0, n_{0}[/latex]](http://www.matheboard.de/latex2png/latex2png.php?c>0, n_{0})
, sodass für alle
![[latex]n \geq n_{0}[/latex]](http://www.matheboard.de/latex2png/latex2png.php?n \geq n_{0})
gilt
![[latex]\Theta[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\Theta)
heißt, dass
![[latex]\mathcal{O}[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\mathcal{O})
und
![[latex]\Omega[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\Omega)
erfüllt sind.
Somit ist die Laufzeit genau so gut oder schlecht (bis auf Konstanten).
Du hast ja bereits
![[latex]\Theta[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\Theta)
angegeben, damit hast du die anderen beiden auch schon abgedeckt.
Geschrieben von Shizmo am 10.03.2016 um 19:38:
Danke für deine Antwort, ja das mit den Definitionen habe ich eigentlich verstanden, mich verwirrt nur dieses "Klassen".
Eben wenn da steht, geben Sie jeweils passende O-,Omega-,Theta-Klassen an.
Also reicht als Lösung (vorausgesetzt es ist richtig): ??
Was wäre denn dann zB für f1 eine passende O-Klasse??
Geschrieben von eulerscheZahl am 11.03.2016 um 08:02:
Die
![[latex]\Theta[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\Theta)
Notation ist richtig.
Du kannst jetzt einfach das
![[latex]\Theta[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\Theta)
durch
![[latex]\Omega[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\Omega)
und
![[latex]\mathcal O[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\mathcal O)
ersetzen und bist fertig.
Theoretisch kann
![[latex]\mathcal O[/latex]](http://www.matheboard.de/latex2png/latex2png.php?\mathcal O)
aber auch eine schneller wachsende Funktion sein, deshalb wäre auch
![[latex]f_1 = \mathcal O(n)[/latex]](http://www.matheboard.de/latex2png/latex2png.php?f_1 = \mathcal O(n))
möglich.
Analog:
![[latex]f_3 = \Omega(\log(n))[/latex]](http://www.matheboard.de/latex2png/latex2png.php?f_3 = \Omega(\log(n)))
Ob das sinnvoll ist, sein mal dahingestellt: wenn man logarithmische Laufzeit hat, gibt man keine Linearzeit an. Aber nach Definition wäre es möglich.
Geschrieben von Shizmo am 11.03.2016 um 12:07:
Okay alles klar, vielen Dank
Forensoftware: Burning Board, entwickelt von WoltLab GmbH