Vereinfachen Sie die Komplexität von n Multichoose k


11

Ich habe einen rekursiven Algorithmus mit einer zeitlichen Komplexität, die der Auswahl von k Elementen aus n mit Wiederholung entspricht, und ich habe mich gefragt, ob ich einen vereinfachten Big-O-Ausdruck erhalten könnte. In meinem Fall kann k größer als n und sie wachsen unabhängig voneinander.

Insbesondere würde ich einen expliziten Exponentialausdruck erwarten. Das Beste, was ich bisher finden konnte, ist das basierend auf Stirlings Näherung O(n!)≈O((n/2)n) , also kann ich das verwenden, aber ich habe mich gefragt, ob ich etwas Schöneres bekommen könnte.

O((n+k−1k))=O(?)


Dies ist nicht gerade sehr hilfreich, aber sehr interessant Ramanujans faktorielle Annäherung
— Pratik Deoghare

Danke, sieht nach einer coolen Annäherung aus, scheint aber in der Tat nicht zu helfen, dies zu vereinfachen. n!∼π(ne)n8n3+4n2+n+1306
— YoniLavi

Antworten:


6

Bearbeiten: Diese Antwort ist für . Ohne k in Bezug auf n zu begrenzen, ist der Ausdruck unbegrenzt.k<nkn

Wenn ist, wird Ihr Ausdruck zu O ( ( 2 ( n - 1 )).k=n−1. Beachten Sie, dass nach Stirlings Formel für jede0<α<1(mO((2(n−1)n−1))0<α<1 wobeiH(q)=-qlogq-(1-q)log(1-q)ist die binäre Entropie. InsbesondereH(1/2)=1. Deshalb haben wir fürk=n-1

(mαm)=Θ(m−1/22H(α)m),
H(q)=−qlog⁡q−(1−q)log⁡(1−q)H(1/2)=1k=n−1
O((2(n−1)n−1))=Θ((2n−2)−1/222n−2)=Θ(4nn).

Da die Obergrenze der schlechteste Fall ist (ich lasse es als Übung, um dies zu zeigen), ist Ihr Ausdruck O ( 4 nk=n−1.O(4nn)


Danke, genau das, wonach ich gesucht habe! und es ist noch eine andere Sache, die mich motiviert, Informationstheorie zu studieren.
— YoniLavi

@ Falcor84: Ich hatte im letzten Übergang einen kleineren Tippfehler. Der Quadratwurzelteil muss zum Nenner gehen. Daher ist die Grenze etwas besser als die von Paresh. (Eigentlich ist die Grenze asymptotisch eng.)
— A.Schulz

Ich hätte auch dieses kleine Minuszeichen bemerken sollen, nochmals vielen Dank.
— YoniLavi

Ihre Aussage "Links als Übung", dass der schlimmste Fall ist, ist falsch. Wenn n = 3 ist , lautet der Ausdruck (k=n−1n=3 . Dies ist nicht immer weniger als ( 4(k+2k)=(k+22)=(k+1)(k+2)2. (42)=6
— Peter Shor

1
Da (n+k−1k)=(n+k−1n−1) ist das Problem in symmetrischn and k (which can grow without relation in my case). Therefore, I suppose, the more accurate answer would be to replace n in the final part of the answer with x:=max(n,k)
— yoniLavi

2

Wolfram says Sondow (2005)[1] and Sondow and Zudilin (2006)[2] noted the inequality:

14rm[(r+1)r+1rr]m<((r+1)mm)<[(r+1)r+1rr]m
for m a positive integer and r≥1 a real number.

We can then use

(n+k−1k)<(n+kk)=((r+1)mm)
with r=nk and m=k.

Then we have

(n+k−1k)<[(r+1)r+1rr]m=(n+kk)n+k

Now, the binomial expression has the highest value at the middle of the Pascal's triangle. So, in our case, n+k=2k or at k=n.

Substituting that in the above inequality, we get:

(n+k−1k)<22n=4n
.

Therefore, a tighter bound is

(n+k−1k)=O(4n)
.

You can also see that the lower bound for the maximum value is

(n+k−1k)=Ω(4nn)

References:
[1] Sondow, J. "Problem 11132." Amer. Math. Monthly 112, 180, 2005.
[2] Sondow, J. and Zudilin, W. "Euler’s constant, q-logarithms, and formulas of Ramanujan and Gosper" Ramanujan J. 12, 225-244, 2006.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.