Semplifica la complessità di n multichoose k


11

Ho un algoritmo ricorsivo con complessità temporale equivalente alla scelta di k elementi da n con ripetizione, e mi chiedevo se potevo ottenere un'espressione big-O più semplificata. Nel mio caso, può essere maggiore di e crescono indipendentemente.Kn

In particolare, mi aspetterei un'espressione esponenziale esplicita. Il meglio che ho trovato finora è quello basato sull'approssimazione di Stirling , quindi posso usarlo, ma mi chiedevo se avrei potuto ottenere qualcosa di più bello.O(n!)O((n/2)n)

O((n+k1k))=O(?)



Grazie, n!π(ne)n8n3+4n2+n+1306 sguardi come una bella approssimazione, ma in effetti non sembra aiutare a semplificarlo.
yoniLavi,

Risposte:


6

Modifica: questa risposta è per k<n . Senza il limite di k in termini di n l'espressione non ha limiti.

Se tua espressione diventa . Si noti che con la formula di Stirling per qualsiasi dove è l'entropia binaria. In particolare . Pertanto abbiamo perO ( ( 2 ( n - 1 )k=n10<α<1(mO((2(n1)n1))0<α<1 H(q)=-qlogq-(1-q)log(1-q)H(1/2)=1k=n-1O( ( 2(n-1

(mαm)=Θ(m1/22H(α)m),
H(q)=qlogq(1q)log(1q)H(1/2)=1k=n1
O((2(n1)n1))=Θ((2n2)1/222n2)=Θ(4nn).

Poiché il limite superiore è il caso peggiore (lo lascio come esercizio per mostrarlo), la tua espressione è .O ( 4 nk=n1O(4nn)


Grazie, esattamente quello che stavo cercando! ed è un'altra cosa che mi motiva a studiare la teoria dell'informazione.
yoniLavi,

@ Falcor84: ho avuto un errore di battitura più piccolo nell'ultima transizione. La parte della radice quadrata deve andare al denominatore. Quindi il limite è leggermente migliore di quello presentato da Paresh. (In realtà, il limite è asintoticamente stretto.)
A. Schulz

Anche io avrei dovuto notare quel piccolo segno meno, grazie ancora.
yoniLavi,

La tua affermazione "lasciato come esercizio" che è il caso peggiore è sbagliata. Se , l'espressione è . Questo non è sempre inferiore a . n = 3 ( k + 2K=n-1n=3(K+2K)=(K+22)=(K+1)(K+2)2(42)=6
Peter Shor,

1
Da , il problema è simmetrico inne(che può crescere senza relazione nel mio caso). Pertanto, suppongo, la risposta più accurata sarebbe quella di sostituire n nella parte finale della risposta con(n+K-1K)=(n+K-1n-1)nKX: =mun'X(n,K)
yoniLavi

2

Wolfram afferma che Sondow (2005) [1] e Sondow e Zudilin (2006) [2] hanno notato la disuguaglianza: per un numero intero positivo e un numero reale.

14rm[(r+1)r+1rr]m<((r+1)mm)<[(r+1)r+1rr]m
mr1

Possiamo quindi usare conr=n

(n+K-1K)<(n+KK)=((r+1)mm)
em=k.r=nKm=K

Quindi abbiamo

(n+K-1K)<[(r+1)r+1rr]m=(n+KK)n+K

Ora, l'espressione binomiale ha il valore più alto al centro del triangolo di Pascal. Così, nel nostro caso, o k = n .n+K=2KK=n

Sostituendo che nella disuguaglianza di cui sopra, otteniamo: .

(n+K-1K)<22n=4n

Pertanto, un limite più stretto è .

(n+K-1K)=O(4n)

(n+K-1K)=Ω(4nn)

Riferimenti:
[1] Sondow, J. "Problema 11132." Amer. Matematica. Mensile 112, 180, 2005.
[2] Sondow, J. e Zudilin, W. "Costante di Eulero, q-logaritmi e formule di Ramanujan e Gosper" Ramanujan J. 12, 225-244, 2006.

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.