eu escrevi
mas meu amigo diz que isso está errado. Na folha de dicas do TCS, eu sei que a soma também é chamada de que tem crescimento logarítmico em . Portanto, meu limite não é muito preciso, mas é suficiente para a análise que eu precisava. n
O que eu fiz errado?
Edit : Meu amigo diz que com o mesmo raciocínio, podemos provar que
Agora isso está obviamente errado! O que está acontecendo aqui?
asymptotics
landau-notation
Rafael
fonte
fonte
Respostas:
O que você está fazendo é um abuso muito conveniente de notação.
Alguns pedantes dirão que o que você escreve não faz sentido, pois indica um conjunto e você não pode fazer operações aritméticas com eles do jeito que está fazendo.O (f)
Mas é uma boa idéia ignorar esses pedantes e assumir que representa algum membro do conjunto. Então, quando dizemos , o que realmente queremos dizer se . (Nota: alguns pedantes também podem tremer com essa afirmação, alegando que é um número é a função!)f ( n ) = g ( n ) + O ( n ) f ( n ) - g ( n ) ∈ O ( n ) f ( n ) fO (f) f( n ) = g( n ) + O ( n ) f( n ) - g( n ) ∈ O ( n ) f( N ) f
Isso torna muito conveniente escrever expressões como
O que isso significa é que existe algum tal quef∈ O ( n1 / 3)
No seu caso de
você está abusando ainda mais e precisa ter cuidado.
Existem duas interpretações possíveis aqui: refere a uma função de ou a uma função de ?n kO(1) n k
Eu acredito que a interpretação correta é interpretá-la como uma função de .k
Se você tentar pensar nisso como uma função de , se considerado incorreto, poderá levar a possíveis falácias, como pensar que é e tentar escreverk O ( 1 ) ∑ n k = 1 k = ∑ n k = 1 O ( 1 )n k O(1) ∑nk=1k=∑nk=1O(1)
Se você tentar pensar nisso como uma função de , é verdade que, se (como o argumento vai para ) e nunca for , issof = O ( g ) ∞ g 0k f=O(g) ∞ g 0
Observe que no meio, usamos o conveniente abuso da notação para significar que, para alguma função a soma é . Observe que a função final dentro de se refere a uma função de . A prova não é tão difícil, mas você deve considerar o fato de estar lidando com um limite superior assintótico (ou seja, para argumentos suficientemente grandes), mas a soma começa em .h ∈ O ( g ) ∑ n k = 1 h ( k ) O n 1O(g(k)) h∈O(g) ∑nk=1h(k) O n 1
Se você tentar pensar nisso como uma função de , também é verdade que se (como o argumento vai para ), entãof = O ( g ) ∞n f=O(g) ∞
Portanto, sua prova é essencialmente correta, em qualquer uma das interpretações.
fonte
O que você escreveu está perfeitamente correto. O th número harmónica é, de facto, o conjunto de .O ( n )n O(n)
Prova: . ◻∑ni=11i≤ lnn + 1 ≤ 2 n = O ( n ) □
O limite superior não é apertado , mas está correto.O ( n )
fonte
Para o segundo exemplo, você não pode afirmar que
desde que varia com . Após algumas etapas, será o caso de . Uma maneira mais apropriada é para dizer que uma vez que, de facto, em todo o somatório nunca excede . Por esse raciocínio, n i > n / 2 i = O ( n ) i 1 ⋅ n n ∑ i = 1 i = n ∑ i = 1 O ( n ) = n O ( n ) = O ( n 2 )Eu n i > n / 2 i = O ( n ) Eu 1 ⋅ n
No entanto, a coisa certa a fazer é realmente usar a notação big-O apenas no final. O limite superior limita seu somatório o mais apertado possível, e somente quando terminar, use as notações assintóticas para evitar essas armadilhas.
fonte