O que significa ?
Estou ciente da notação big-O, mas essa notação não faz sentido para mim. Também não consigo encontrar nada sobre isso, porque não há como um mecanismo de pesquisa interpretar isso corretamente.
Para um pouco de contexto, a sentença em que a encontrei diz "[...] chamamos uma função [eficiente] se ela usa espaço e, na maioria das vezes, por item".
asymptotics
landau-notation
Oebele
fonte
fonte
Respostas:
Você precisa ignorar por um momento a forte sensação de que o " " está no lugar errado e continuar com a definição independentemente. f ( n ) = log O ( 1 ) n significa que existem constantes k e n 0 de tal modo que, para todos n ≥ n 0 , f ( n ) ≤ log k ⋅ 1 n = log k n .O f(n)=logO(1)n k n0 n≥n0 f(n)≤logk⋅1n=logkn
Observe que significa ( log n ) k . As funções do formato log O ( 1 ) n são freqüentemente chamadas de polilogarítmicas e você pode ouvir as pessoas dizerem " f é polylog n ".logkn (logn)k logO(1)n f n
Você notará que é fácil provar que , já que 2 n ≤ k n para todos n ≥ 0 , onde k = 2 . Você pode estar se perguntando se 2 log n = log O ( 1 ) n . A resposta é sim, pois, para n grande o suficiente , log n ≥ 2 , então 2 log n ≤ log 2 n para tamanho grande o suficiente2n=O(n) 2n≤kn n≥0 k=2 2logn=logO(1)n n logn≥2 2logn≤log2n .n
Em uma nota relacionada, você frequentemente verá polinômios escritos como : mesma idéia.nO(1)
fonte
Este é um abuso de notação que pode ser entendido pela convenção de espaço reservado geralmente aceita : sempre que você encontrar um termo Landau , substitua-o (em sua mente ou no papel) por uma função arbitrária g ∈ O ( f ) .O(f) g∈O(f)
Então, se você encontrar
você deve ler
para alguns g ∈ O ( 1 ) .f(n)=logg(n)n g∈O(1).(1)
Observe a diferença de dizer " ao poder de alguma constante": g = n ↦ 1 / n é uma possibilidade distinta.log g=n↦1/n
Aviso: o autor pode estar empregando ainda mais abuso de notação e deseja que você leia
para alguns g ∈ O ( 1 ) .f(n)∈O(logg(n)n) g∈O(1).(2)
Observe a diferença entre (1) e (2); embora funcione para definir o mesmo conjunto de funções com valor positivo aqui, isso nem sempre funciona. Não mova em expressões sem cuidado!O
fonte
Isso significa que a função cresce no máximo como à potência de alguma constante, ou seja, log 2 ( n ) ou log 5 ( n ) ou log 99999 ( n ) ...log log2(n) log5(n) log99999(n)
fonte
"At mostlogO(1)n " means that there is a constant c such that what is being measured is O(logcn) .
In a more general context,f(n)∈logO(1)n is equivalent to the statement that there exists (possibly negative) constants a and b such that f(n)∈O(logan) and f(n)∈Ω(logbn) .
It is easy to overlook theΩ(logbn) lower bound. In a setting where that would matter (which would be very uncommon if you're exclusively interested in studying asymptotic growth), you shouldn't have complete confidence that the author actually meant the lower bound, and would have to rely on the context to make sure.
The literal meaning of the notationlogO(1)n is doing arithmetic on the family of functions, resulting in the family of all functions logg(n)n , where g(n)∈O(1) . This works in pretty much the same as how multiplying O(g(n)) by h(n) results in O(g(n)h(n)) , except that you get a result that isn't expressed so simply.
Since the details of the lower bound are in probably unfamiliar territory, it's worth looking at some counterexamples. Recall that anyg(n)∈O(1) is bounded in magnitude; that there is a constant c such that for all sufficiently large n , |g(n)|<c .
This means, contrary to more typical uses of big-oh notation, functions that decrease too rapidly can fail to be inlogO(1)n ; for example,
A counterexample of a somewhat different sort is that−1∉logO(1)n .
fonte