Hier sind vier Grundsätze, die ich nicht vereinbaren kann:
- Doppelte exponentielle Zeitalgorithmen laufen in der Zeit mit der Konstante k ∈ N.
- Exponentielle Zeitalgorithmen laufen in mit einer Konstante von k ∈ N.
- Die erstere Grenze wächst deutlich schneller als die letztere; Das heißt, es gibt Algorithmen, die in doppelter Exponentialzeit, aber nicht in Exponentialzeit ausgeführt werden
- Wenn wir auf die doppelte Exponentialgrenze anwenden, haben wir O ( 2 2 n k ) = O ( 2 2 n k ) = O ( 2 2 n k ) , was innerhalb der zuvor angegebenen Exponentialgrenze liegt
Ich habe das Gefühl, dass mir eine gewisse Subtilität in Bezug auf die Definition eines Exponentialzeitalgorithmus fehlt, der eher in als in O ( 2 n ) ausgeführt wird , aber ich bin mir nicht sicher, wo genau die Subtilität liegt.
Antworten:
Das Problem beruht auf einer mehrdeutigen Terminologie.
, aber a ( b c ) ≠ a b c . Mit anderen Worten, Exponenten sind nicht assoziativ.( ab)c= ab c ein( bc)≠ ab c
Herkömmlicherweise werden verschachtelte Exponentiale ohne Klammern auf diese zweite Weise gruppiert, da dies nützlicher ist. Also . Wenn wir über ( 2 2 ) n sprechen wollten , könnten wir stattdessen einfach 2 2 n schreiben , also behalten wir uns die doppelte Exponentialschreibweise für den anderen Fall vor.22n=2(2n)≠22n (22)n 22n
quelle
a^b^c
, und wirft stattdessen einen Fehler aus.)quelle