¿Por qué es verdadero?

8

3n=2O(n) es aparentemente cierto. Sin embargo, pensé que era falso porque crece más rápido que cualquier función exponencial con una base de 2.3n

¿Cómo es verdadero ?3n=2O(n)

David Faux
fuente
1
¡Cuidado con el abuso de la notación!
Raphael
Realmente no puedo entender qué significa . primero lo cambié a , luego vi que esto no tiene sentido. La pregunta de la OMI no tiene sentido. 3n=2O(n)3n2O(n)
1
Es extremadamente común escribir para lo que en el sentido más estricto debería ser . Tan común que apenas se considera un abuso de notación. f(x)=O(g(x))f(x)O(g(x))
David Richerby

Respuestas:

12

Con algo de álgebra (y cambiando la constante en ), podemos cambiar las bases.O(n)

3n=(2log23)n=2nlog23

Como es una constante, . Entonces .log23nlog23=O(n)3n=2O(n)

No estoy seguro de lo que quiere decir con " crece más rápido que cualquier función exponencial con una base de 2". por supuesto, pero parece que quieres decir algo más general. Supongo que su enunciado se aplica a algo como , donde multiplica la base por una constante, a diferencia de donde multiplica el número en el exponente por una constante.3n2n=o(3n)O(3n)2O(n)

SamM
fuente
8

3n crece más rápido que cualquier función exponencial con una base de .2

Cierto. Esto implica que no puede ser cierto. Pero lo que tienes aquí es .3n=O(2n)2O(n)

Recuerde que es realmente un conjunto de funciones, y estrictamente hablando deberíamos escribir (o incluso ). El lado derecho no es el exponencial de una función, sino el exponencial de un conjunto de funciones. Ampliando la definición de gran oh:O(f(n))3n2O(n)(n3n)2O(nn)

2O(n)=2{fN,p,nN,f(n)pn}={(n2f(n))N,p,nN,f(n)pn}

Dado que la función exponencial está aumentando, podemos eliminar la desigualdad de la exponencial:n2n

2O(n)={gN,p,nN,g(n)2pn}

Contraste con

O(2n)={gN,k,nN,g(n)k2n}

En , la constante multiplicativa está dentro de la exponencial. En , se multiplica por el exponencial. , entonces tenemos (para cualquier ) , es decir, podemos tomar y , que muestra que .2O(n)O(2n)2pn=2p2nn03n2log232nN=0p=log233n2O(n)

Gilles 'SO- deja de ser malvado'
fuente
4

3n=2O(n) es de hecho cierto porque si recuerda la definición de verá que puede sumar / multiplicar por cualquier constante. Entonces:O(n)

3n<2kn //log2

nlog2(3n)<knlog2(2)

k>log2(3)

Como puede ver, es más grande que2kn3nk>log2(3)

Bartosz Przybylski
fuente