Tak, jest między 1 a n , ale jest bliższy 1 niż n . Co to jest log ( n ) ? Funkcja log jest odwrotną funkcją potęgowania. Zacznę od potęgowania, a powinieneś lepiej zrozumieć, czym jest logarytm.log( n )1n1nlog( n )
Rozważ dwie liczby, i 2 100 . 2 100 to 2 pomnożone ze sobą 100 razy. Możesz z pewnym wysiłkiem policzyć 100 liczb, ale czy możesz policzyć 2 100 ? Założę się, że nie możesz. Dlaczego? 2 100 to tak duża liczba, że jest większa niż liczba wszystkich atomów we wszechświecie. Zastanów się przez chwilę. Jest to tak duża liczba, że pozwala nadać każdemu atomowi nazwę (liczbę). A liczba atomów w twoim paznokciu jest prawdopodobnie rzędu miliardów. 2 100 powinno wystarczyć dla każdego (gra słów :).1002)1002)1002)1001002)1002)1002)100
Teraz między dwiema liczbami, i 2 100 , 100 jest logarytmem 2 100 (w bazie 2 ). 100 to stosunkowo niewielka liczba niż 2 100 . Każdy powinien mieć w domu 100 różnych przedmiotów. Ale 2 100 jest wystarczające dla wszechświata. Myśl o domu a wszechświecie, myśląc o log ( n ) i n .1002)1001002)1002)1002)1001002)100log( n )n
Skąd się bierze potęgowanie i logarytmy? Dlaczego tak bardzo interesują się informatyką? Możesz tego nie zauważyć, ale potęgowanie jest wszędzie. Czy zapłaciłeś odsetki od karty kredytowej? Właśnie zapłaciłeś wszechświatowi za swój dom (nie tak źle, ale krzywa pasuje). Lubię myśleć, że potęgowanie wynika z reguły produktu, ale inni mogą podać więcej przykładów. Jaką zasadę produktu możesz zapytać; I odpowiem.
Załóżmy, że masz dwa miasta i B , a są między nimi dwa sposoby. Jaka jest liczba ścieżek między nimi? Dwa. To jest banalne. Powiedzmy teraz, że istnieje inne miasto C i możesz przejść z B do C na trzy sposoby. Ile jest teraz ścieżek między A i C ? Sześć, prawda? Jak to zdobyłeś? Policzyłeś je? A może ich pomnożyłeś? Tak czy inaczej, łatwo zauważyć, że oba sposoby dają podobny wynik. Teraz, jeśli dodasz miasto D, do którego można dotrzeć z C na cztery sposoby, ile jest dróg między A i D.ZAbdobdoZAdoredoZAre? Policz, jeśli mi nie ufasz, ale równa się czyli 24 . Teraz, jeśli jest dziesięć miast i są dwie ścieżki z jednego miasta do drugiego, i są ułożone tak, jakby były na linii prostej. Ile jest ścieżek od początku do końca? Pomnóż je, jeśli mi nie ufasz, ale powiem ci, że są 2 10 , czyli 1024 . Zobacz, że 2 10 jest wykładniczym wynikiem 10 , a 10 jest logarytmem 2 10 . 10 to mała liczba w porównaniu do 1024 .2 ⋅ 3 ⋅ 4242)1010242)1010102)10101024
Funkcja logarytm jest n co n jest 2 n (zauważ, że 2 jest podstawa logarytmu jest). Jeśli zwielokrotnisz log b ( n ) ze sobą b razy (zauważ, że b jest podstawą logarytmu), otrzymasz n . log ( n ) jest tak mały, tak mały w porównaniu z n , że jest wielkości twojego domu, gdzie n jest wielkością wszechświata.log2)( n )nn2)n2)logb( n )bbnlog( n )nn
Praktycznie rzecz biorąc, funkcje działają bardzo podobnie do funkcji stałych. Rosną z n , ale rosną bardzo powoli. Jeśli zoptymalizowałeś program do działania w czasie logarytmicznym, który zajmował dzień wcześniej, prawdopodobnie uruchomisz go w kolejności minut. Sprawdź sam problemy z Project Euler.log( n )n