Obecnie czytam podręcznik dla mojej klasy Java III. Czytamy o Big-Oh i jestem nieco zdezorientowany jego formalną definicją.Big Oh Notation - definicja formalna
Definicja formalna: "Funkcja f (n) jest rzędu co najwyżej g (n) - czyli f (n) = O (g (n)) - jeśli dodatnia liczba rzeczywista c i dodatnia liczba całkowita N istnieją tak, że f (n) < = cg (n) dla wszystkich n> = N. To znaczy, cg (n) jest górną granicą na f (n), gdy n jest wystarczająco duże. "
OK, to ma sens. Ale trzymaj się, czytaj dalej ... książka dała mi ten przykład:
„W segmencie 9.14, powiedzieliśmy, że algorytm który wykorzystuje 5N + 3 operacje wynosi O (n) możemy teraz pokazać. że 5n + 3 = o (n) za pomocą formalnej definicji Big OH.
Gdy n> = 3 5n + 3 < = 5n + n = 6n. Jeśli zatem pozwolić f (n) = 5n + 3, g (n) = n, c = 6, N = 3, wykazaliśmy, że f (n) < = 6 g (n) dla n> = 3 lub 5n + 3 = O (n). To znaczy, jeśli algorytm thm wymaga czasu wprost proporcjonalnego do 5n + 3, to jest O (n). "
Ok, ten rodzaj ma dla mnie sens. Mówią, że jeśli n = 3 lub więcej, 5n + 3 zajmuje mniej czasu niż gdy n jest mniejszy niż 3 - czyli 5n + n = 6n - prawda? Ma sens, ponieważ jeśli n wynosi 2, 5n + 3 = 13, a 6n = 12, ale gdy n wynosi 3 lub więcej, 5n + 3 zawsze będzie mniejsze lub równe 6n.
Oto, gdzie się mylić. Dają mi Innym przykładem
Przykład 2: „Niech pokazują, że 4n^2 + 50n - 10 = O (N^2) jest łatwo zauważyć. 4n^2 + 50N - 10 < = 4n^2 + 50n dla dowolnego n Ponieważ 50n < = 50n^2 dla n
= 50, 4n^2 + 50n. - 10 < = 4n^2 + 50n^2 = 54N^2 dla n> = 50. Zatem, dla c = 54 i N = 50, wykazaliśmy, że 4n^2 + 50n - 10 = O (n^2). "
To stwierdzenie nie ma sensu: 50N < = 50n^2 dla n> = 50.
nie jest wcale n zamiar dokonać 50N mniej niż 50N^2? Nie tylko większy lub równy 50? Dlaczego wspomnieli o tym, że 50n < = 50n^2? Co to ma wspólnego z problemem?
Również 4n^2 + 50n - 10 < = 4n^2 + 50n^2 = 54n^2 dla n> = 50 będzie prawdziwe bez względu na to, czym jest n.
A jak na świecie liczby wybierające pokazują, że f (n) = O (g (n))?
Adrian dziękuję. Czytanie przez twoje wyjaśnienie sprawiło, że wszystko stało się o wiele jaśniejsze. Powinieneś być nauczycielem! – ShrimpCrackers