escribí
Pero mi amigo dice que esto está mal. De la hoja de trucos de TCS sé que la suma también se llama que tiene un crecimiento logarítmico en n . Entonces, mi límite no es muy agudo, pero es suficiente para el análisis que lo necesitaba.
¿Qué hice mal?
Editar : Mi amigo dice que con el mismo razonamiento, podemos demostrar que
¡Ahora esto obviamente está mal! ¿Que esta pasando aqui?
asymptotics
landau-notation
Rafael
fuente
fuente
Respuestas:
Lo que está haciendo es un abuso de notación muy conveniente.
Algunos pedantes dirán que lo que escribes no tiene sentido, ya que denota un conjunto y no puedes hacer operaciones aritméticas en ellos de la manera que lo estás haciendo.O(f)
Pero es una buena idea ignorar a esos pedantes y asumir que representa a algún miembro del conjunto. Entonces, cuando decimos f ( n ) = g ( n ) + O ( n ) , lo que realmente queremos decir es que f ( n ) - g ( n ) ∈ O ( n ) . (Nota: algunos pedantes también pueden estremecerse ante esta afirmación, alegando que f ( n ) es un número yfO(f) f(n)=g(n)+O(n) f(n)−g(n)∈O(n) f(n) f es la función!)
Esto hace que sea muy conveniente escribir expresiones como
Lo que esto significa es que hay alguna de tal manera quef∈O(n1/3)
En tu caso de
lo estás abusando aún más y debes tener cuidado.
Aquí hay dos posibles interpretaciones: ¿ refiere a una función de n , o una función de k ?O(1) n k
Creo que la interpretación correcta es interpretarlo en función de .k
Si trata de pensarlo como una función de , aunque no sea incorrecto, podría conducir a posibles falacias, como pensar que k es O ( 1 ) y tratar de escribir ∑ n k = 1 k = ∑ n k = 1 O ( 1 )n k O(1) ∑nk=1k=∑nk=1O(1)
Si intenta pensar en ello como una función de , entonces es cierto que, si f = O ( g ) (como el argumento va a ∞ ) y g nunca es 0 , esok f=O(g) ∞ g 0
Tenga en cuenta que en el medio, hemos utilizado el abuso conveniente de la notación para significar que para alguna función h ∈ O ( g ) la suma es ∑ n k = 1 h ( k ) . Tenga en cuenta que la función final dentro de la O se refiere a una función de n . La prueba no es tan difícil, pero debe tener en cuenta el hecho de que se trata de un límite superior asintótico (es decir, para argumentos suficientemente grandes), pero la suma comienza justo en 1 .O(g(k)) h∈O(g) ∑nk=1h(k) O n 1
Si intenta pensar en ello como una función de , entonces también es cierto que si f = O ( g ) (como el argumento va a ∞ ) entoncesn f=O(g) ∞
Entonces su prueba es esencialmente correcta, en cualquier interpretación.
fuente
Lo que escribiste es perfectamente correcto. El ésimo número armónico es de hecho en el conjunto de O ( n ) .n O(n)
Prueba: . ◻∑ni=11i≤lnn+1≤2n=O(n) □
El límite superior no es ajustado , pero es correcto.O(n)
fuente
Sin embargo, lo correcto es usar la notación big-O solo al final. Límite superior de su suma tan apretada como sea posible, y solo cuando haya terminado use las anotaciones asintóticas para evitar estos escollos.
fuente