Ein Beispiel ist G( n ) =22n - 1, G(n)=22n.
Wir haben g(n)=G(n)−−−−√, damit g(n)=o(G(n)).
Inzwischen natürlich g(n+1)=G(n) damit g(n+1)=Θ(G(n)), damit g(n+1)≠o(G(n))
Warum doppelt exponentiell? Wenn wir eins hinzufügennWir wollen, dass der Effekt mehr als eine multiplikative Konstante ist (weil groß ONotation verbirgt multiplikative und damit additive Konstanten). Machen wir es uns einfach und sagen wir, dass wir 1 hinzufügen möchtenn einen polynomiellen Effekt auf den Wert von haben g(n). Wenn Sie eine Konstante hinzufügenn::
Eine lineare Funktion wird um eine additive Konstante erhöht
Eine Exponentialfunktion wird um eine multiplikative Konstante erhöht
Eine doppelte Exponentialfunktion wird polynomiell erhöht (in unserem Beispiel also um eine Zweierpotenz) G( n)2= G ( n ))
Wir können auch haben G( n ) =nn, G( n ) = n !usw., wo G ( n ) = g( n - 1 ). Im Allgemeinen können wir lassenG( n ) = f( n)n, wo f( n ) = ω ( 1 ) und fnimmt nicht ab. Dann haben wir:
limn → ∞G( n )G ( n )=limn → ∞G( n )G( n + 1 )=limn → ∞f( n)nf( n + 1)n+1≤limn→∞f(n)nf(n)n+1=limn→∞1f(n)=0
Also haben wir gezeigt g(n)=o(G(n)) Verwenden der Grenzwertdefinition (der letzte Schritt ist weil f(n)=ω(1)). Daher funktioniert wie(loglogn)n und selbst α(n)n wo α ist die inverse Ackermann-Funktion, wird den Trick auch für uns tun.
NehmenG( n ) = n ! und G ( n ) = ( n + 1 ) ! .
quelle