Pourquoi est-ce

8

3n=2O(n)est apparemment vrai. Je pensais que c'était faux car3n croît plus rapidement que n'importe quelle fonction exponentielle avec une base de 2.

Comment est 3n=2O(n) vrai?

David Faux
la source
1
Attention aux abus de notation!
Raphael
Vraiment je ne comprends pas 3n=2O(n)signifier? d'abord je l'ai changé en3n2O(n), après cela, j'ai vu de nouveau que cela n'avait aucun sens. La question de l'OMI n'a pas de sens.
1
Il est extrêmement courant d'écriref(x)=O(g(x)) pour ce qui devrait être au sens strict f(x)O(g(x)). Si commun qu'il n'est même pas considéré comme un abus de notation.
David Richerby

Réponses:

12

Avec une algèbre (et changer la constante dans le O(n)), nous pouvons en fait changer les bases.

3n=(2log23)n=2nlog23

Depuis log23 est une constante, nlog23=O(n). Donc3n=2O(n).

Je ne sais pas ce que tu veux dire par "3n croît plus rapidement que n'importe quelle fonction exponentielle avec une base de 2. " 2n=o(3n)bien sûr, mais il semble que vous vouliez dire quelque chose de plus général. Je suppose que votre déclaration s'applique à quelque chose commeO(3n), où vous multipliez la base par une constante, par opposition à 2O(n) où vous multipliez le nombre de l'exposant par une constante.

SamM
la source
8

3n croît plus rapidement que toute fonction exponentielle avec une base de 2.

Vrai. Cela implique que3n=O(2n)Ne peut pas être vrai. Mais ce que vous avez ici, c'est2O(n).

Rappeler que O(f(n)) est vraiment un ensemble de fonctions, et à proprement parler, nous devrions écrire 3n2O(n) (ou même (n3n)2O(nn)). Le côté droit n'est pas l'exponentielle d'une fonction, mais l'exponentielle d'un ensemble de fonctions. Élargir la définition du grand oh:

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

Depuis la fonction exponentielle n2n augmente, on peut sortir l'inégalité de l'exponentielle:

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

Contraste avec

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

Dans 2O(n), la constante multiplicative est à l'intérieur de l'exponentielle. DansO(2n), il est multiplié par l'exponentielle. 2pn=2p2n, nous avons donc (pour tout n0) 3n2log232nc'est-à-dire que nous pouvons prendre N=0 et p=log23, montrant que 3n2O(n).

Gilles 'SO- arrête d'être méchant'
la source
4

3n=2O(n) est en fait vrai parce que si vous vous souvenez O(n)définition, vous verrez que vous pouvez ajouter / multiplier par n'importe quelle constante. Donc:

3n<2kn // log2

nlog2(3n)<knlog2(2)

k>log2(3)

Comme vous pouvez le voir 2kn est plus grand alors 3nk>log2(3)

Bartosz Przybylski
la source