Co oznacza ?
Jestem świadomy notacji wielkiej-O, ale ta notacja nie ma dla mnie sensu. Nie mogę też nic na ten temat znaleźć, ponieważ wyszukiwarka nie ma możliwości prawidłowej interpretacji tego.
W pewnym kontekście zdanie, w którym znalazłem, brzmi „[...] nazywamy funkcję [wydajną], jeśli używa ona spacji i co najwyżej za sztukę."log O ( 1 ) n
asymptotics
landau-notation
Oebele
źródło
źródło
Odpowiedzi:
Musisz przez chwilę zignorować silne poczucie, że „ ” znajduje się w niewłaściwym miejscu i niezależnie od tego podążać za definicją. oznacza, że istnieją stałe i takie, że dla wszystkich , .O f(n)=logO(1)n k n0 n≥n0 f(n)≤logk⋅1n=logkn
Zauważ, że oznacza . Funkcje formularza są często nazywane polilogarytmicznymi i możesz usłyszeć, jak ludzie mówią: „ jest polilogiem ”.logkn (logn)k logO(1)n f n
Zauważysz, że łatwo jest udowodnić, że , ponieważ dla wszystkich , gdzie2n=O(n) 2n≤kn n≥0 . Być może zastanawiasz się, czy 2 log n = log O ( 1 ) n . Odpowiedź brzmi tak, ponieważ dla wystarczająco dużego n , log n ≥ 2 , więc 2 log n ≤ log 2 n dla wystarczająco dużego n .k=2 2logn=logO(1)n n logn≥2 2logn≤log2n n
W powiązanej notatce często zobaczysz wielomiany zapisane jako : ten sam pomysł.nO(1)
źródło
Jest to nadużycie zapisu, które może być zrozumiałe przez ogólnie przyjętą konwencję zastępczą : za każdym razem, gdy znajdziesz wyraz Landaua , zastąp go (w twoim umyśle lub na papierze) dowolną funkcją g ∈ O ( f ) .O(f) g∈O(f)
Więc jeśli znajdziesz
masz czytać
dla niektórych g ∈ O ( 1 ) .f(n)=logg(n)n g∈O(1).(1)
Zwróć uwagę na różnicę od powiedzenia „ do potęgi jakiejś stałej”: g = n ↦ 1 / n jest wyraźną możliwością.log g=n↦1/n
Ostrzeżenie: autor może wykorzystywać jeszcze więcej nadużyć notacji i chce, abyś przeczytał
dla niektórych g ∈ O ( 1 ) .f(n)∈O(logg(n)n) g∈O(1).(2)
Zwróć uwagę na różnicę między (1) a (2); chociaż można tu zdefiniować ten sam zestaw funkcji o dodatniej wartości, nie zawsze to działa. Nie poruszaj się w wyrażeniach bez opieki!O
źródło
Oznacza to, że funkcja rośnie maksymalnie jako do potęgi pewnej stałej, tj. Log 2 ( n ) lub log 5 ( n ) lub log 99999 ( n ) ...log log2(n) log5(n) log99999(n)
źródło
„Co najwyżej ” oznacza, że istnieje stała c taka, że mierzone jest O ( log c n ) .logO(1)n c O(logcn)
W szerszym zakresie, jest równoważna do stwierdzenia, że istnieje (ewentualnie ujemny) stałe i b tak, że f ( n ) ∈ O ( log n ) i f ( n ) ∈ Ω ( log b n ) .f(n)∈logO(1)n a b f(n)∈O(logan) f(n)∈Ω(logbn)
Łatwo przeoczyć dolną granicę . W otoczeniu, w którym miałoby to znaczenie (co byłoby bardzo rzadkie, jeśli jesteś zainteresowany wyłącznie badaniem asymptotycznego wzrostu ), nie powinieneś mieć całkowitej pewności, że autor miał na myśli dolną granicę, i musiałbyś polegać na kontekście Upewnić się.Ω(logbn)
Dosłowne znaczenie notacji O ( 1 ) n polega na wykonywaniu arytmetyki na rodzinie funkcji, czego wynikiem jest rodzina wszystkich funkcji log g ( n ) n , gdzie g ( n ) ∈ O ( 1 ) . Działa to w zasadzie tak samo, jak mnożenie O ( g ( n ) ) przez h ( n ) daje O ( g ( n ) h (logO(1)n logg(n)n g(n)∈O(1) O(g(n)) h(n) , z wyjątkiem tego, że otrzymujesz wynik, który nie jest tak prosty.O(g(n)h(n))
Ponieważ szczegóły dolnej granicy znajdują się prawdopodobnie na nieznanym terytorium, warto przyjrzeć się niektórym kontrprzykładom. Przypomnijmy, że dowolna jest ograniczona wielkością ; że istnieje stała c taka, że dla wszystkich wystarczająco dużych n , | g ( n ) | < c .g(n)∈O(1) c n |g(n)|<c
Patrząc na asymptotyczny wzrost , zwykle tylko górna granica znaczenie, ponieważ np. Już wiesz, że funkcja jest dodatnia. Jednak w pełnej ogólności musisz zwrócić uwagę na dolną granicę g ( n ) > - c .g(n)<c g(n)>−c
Oznacza to, w przeciwieństwie do bardziej typowych zastosowań notacji big-oh, funkcje, które zmniejszają się zbyt szybko, mogą nie znajdować się w ; na przykład 1logO(1)n
ponieważ
-logn
Przeciwprzykładem nieco innego rodzaju jest to, że .−1∉logO(1)n
źródło