0 Daumen
661 Aufrufe

ich hab eine Aufgabe vor mir liegen, bei der ich asymptotische Klassen miteinander vergleichen soll... Also zB O(2n) und O(n!) usw... Thema O-Notation... kann mir da jemand einen Tipp geben wie ich anfagen soll??? ^^

Thx & Lg

buzzzz

Avatar von

Du hast nichts angegeben. Was ist die Aufgabenstellung, sonst können wir nicht helfen.

Im Allgemeinen: Komplexitätsklassen geben an, wie eine Funktion höchstens wächst. Wenn g in O(f) liegt, dann wächst g(n) für genügend große n höchstens so hoch wie ein Vielfaches von f(n).

Was von beiden wächst schneller, 2n oder n! ?


Die Aufgaben sind zB O(2n) und O(n!)... also welche Funktion von beiden schneller wächst, das ist die Frage. Wie kann man das beweisen?

thx & lg

1 Antwort

0 Daumen

Wie sieht denn n! aus? Du weißt natürlich, dass:

$$n! = n\cdot (n-1)\cdot\ldots\cdot1$$

Wenn du also genug Faktoren hast (wir sagen n > 3), dann hast du als Faktoren n, n-1 und irgendwelche anderen, die mindestens 3 sind.

Dann hast du mit Zusammenfassung der ersten zwei Faktoren:

$$n! = (n^2-n)\cdot(n-2)\cdot\ldots\cdot 1$$

Du kannst auch die ersten drei Faktoren zusammenfassen und hast für n > 4:

$$n! = (n^3 - 3n^2 + 2n)\cdot(n-3)\cdot\ldots\cdot1$$

Wenn du die anderen Faktoren (die du einfach mal als Koeffizienten interpretieren kannst) rausnimmst, bekommst du eine Ungleichung: n! >= n^2-n wenn n > 3, n! >= n^3 - 3n^2 - 2n wenn n > 4 usw.

Wenn du das weiter machst, dann siehst du, dass für jedes a ab n > a der Ausdruck n! mindestens so groß ist wie ein Polynom von Grad a. Daraus folgst du, dass n! asymptotisch stärker wächst als jedes Polynom.

Folglich: 2n ist in O(n!) aber nicht umgekehrt.

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community