Perché è


8

3n=2O(n)è apparentemente vero. Ho pensato che fosse falso però perché3n cresce più velocemente di qualsiasi funzione esponenziale con una base di 2.

Com'è 3n=2O(n) vero?


1
Attenzione all'abuso della notazione!
Raffaello

Davvero non riesco a capire cosa faccia 3n=2O(n)significare? prima l'ho cambiato in3n2O(n), dopo che ho visto di nuovo questo non ha senso. La domanda dell'IMO non ha senso.

1
È estremamente comune scriveref(x)=O(g(x)) per quello che dovrebbe essere nel senso più stretto f(x)O(g(x)). Così comune che non è nemmeno considerato un abuso di notazione.
David Richerby,

Risposte:


12

Con un po 'di algebra (e cambiando la costante in O(n)), possiamo effettivamente cambiare le basi.

3n=(2log23)n=2nlog23

Da log23 è una costante, nlog23=O(n). Così3n=2O(n).

Non sono sicuro di cosa intendi per "3n cresce più velocemente di qualsiasi funzione esponenziale con una base di 2. " 2n=o(3n)certo ma sembra che tu intenda qualcosa di più generale. La mia ipotesi è che la tua affermazione si applica a qualcosa di simileO(3n), dove moltiplichi la base per una costante, al contrario di 2O(n) dove moltiplichi il numero nell'esponente per una costante.


8

3n cresce più velocemente di qualsiasi funzione esponenziale con una base di 2.

Vero. Questo implica che3n=O(2n)non può essere vero. Ma quello che hai qui è2O(n).

Richiama questo O(f(n)) è davvero un insieme di funzioni e, a rigore, dovremmo scrivere 3n2O(n) (o anche (n3n)2O(nn)). Il lato destro non è l'esponenziale di una funzione, ma l'esponente di un insieme di funzioni. Ampliare la definizione di big oh:

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

Dal momento che la funzione esponenziale n2n sta aumentando, possiamo sollevare la disuguaglianza dall'esponenziale:

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

In contrasto con

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

In 2O(n), la costante moltiplicativa è all'interno dell'esponenziale. InO(2n), viene moltiplicato per l'esponenziale. 2pn=2p2n, quindi abbiamo (per qualsiasi n0) 3n2log232n, cioè possiamo prendere N=0 e p=log23, dimostrandolo 3n2O(n).


4

3n=2O(n) è infatti vero perché se ricordi O(n)definizione vedrai che puoi aggiungere / moltiplicare per qualsiasi costante. Così:

3n<2kn // log2

nlog2(3n)<knlog2(2)

k>log2(3)

Come puoi vedere 2kn è più grande allora 3nk>log2(3)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.