Uprość złożoność n multichoose k


11

Mam algorytm rekurencyjny o złożoności czasowej równoważnej do wybierania elementów k z powtórzeniem i zastanawiałem się, czy mogę uzyskać bardziej uproszczone wyrażenie big-O. W moim przypadku może być większe niż i rosną one niezależnie.kn

W szczególności oczekiwałbym wyraźnego wyrażenia wykładniczego. Najlepsze, jakie do tej pory mogłem znaleźć, to oparte na przybliżeniu Stirlinga , więc mogę z tego skorzystać, ale zastanawiałem się, czy mogę uzyskać coś ładniejszego.O(n!)≈O((n/2)n)

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


Nie jest to do końca bardzo pomocne, ale bardzo interesujące przybliżenie czynnikowe Ramanujana
— Pratik Deoghare

Dzięki n!∼π(ne)n8n3+4n2+n+1306 wygląda jak fajne przybliżenie, ale tak naprawdę nie wydaje się, aby to uprościć.
— yoniLavi

Odpowiedzi:


6

Edycja: Ta odpowiedź dotyczy k<n . Bez ograniczenia k pod względem n wyrażenie jest nieograniczone.

Jeśli wówczas wyrażenie staje się . Zauważ, że według wzoru Stirlinga dla dowolnego gdzie jest entropią binarną. W szczególności . Dlatego mamy dlaO ( ( 2 ( n - 1 )k=n−10<α<1(mO((2(n−1)n−1))0<α<1 H(q)=-PlogP-(1-q)log(1-P)H(1/2)=1K=n-1O( ( 2(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).

Ponieważ górna granica jest najgorszym przypadkiem (pozostawiam to jako ćwiczenie, aby to pokazać), twoje wyrażenie to .O ( 4 nk=n−1O(4nn)


Dzięki, dokładnie tego szukałem! i to jest kolejna rzecz motywująca mnie do studiowania teorii informacji.
— yoniLavi

@ Falcor84: Miałem mniejszą literówkę w ostatnim przejściu. Część pierwiastka kwadratowego musi przejść do mianownika. Dlatego granica jest nieco lepsza niż ta przedstawiona przez Paresha. (W rzeczywistości granica jest asymptotycznie ciasna.)
— A.Schulz,

Ja też powinienem był zauważyć ten mały znak minus, dzięki jeszcze raz.
— yoniLavi

Twoje stwierdzenie „pozostawione jako ćwiczenie”, że jest najgorszym przypadkiem, jest błędne. Jeśli , wyrażenie to . Nie zawsze jest to mniej niż . n = 3 ( k + 2k=n−1n=3( 4(k+2k)=(k+22)=(k+1)(k+2)2(42)=6
— Peter Shor,

1
Ponieważ , problemem jest symetryczne i (który może rosnąć bez związku z moim przypadku ). Dlatego przypuszczam, że dokładniejszą odpowiedzią byłoby zastąpienie n w końcowej części odpowiedzinkx:=max(n,k)(n+k−1k)=(n+k−1n−1)nkx:=max(n,k)
— yoniLavi

2

Wolfram mówi Sondow (2005) [1], a Sondow i Zudilin (2006) [2] zauważyli nierówność: dla dodatnia liczba całkowita i liczba rzeczywista.mr≥1

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

Następnie możemy użyć z i . r=n

(n+k−1k)<(n+kk)=((r+1)mm)
m=kr=nkm=k

Następnie mamy

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

Teraz wyrażenie dwumianowe ma najwyższą wartość w środku trójkąta Pascala. W naszym przypadku lub w .k = nn+k=2kk=n

Podstawiając to w powyższej nierówności, otrzymujemy: .

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

Dlatego ściślejsza granica to .

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

Możesz również zobaczyć, że dolna granica wartości maksymalnej wynosi

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

Odniesienia:
[1] Sondow, J. "Problem 11132." Amer. Matematyka Miesięcznie 112, 180, 2005.
[2] Sondow, J. i Zudilin, W. „Stała Eulera, q-logarytmy i wzory Ramanujana i Gospera” Ramanujan J. 12, 225-244, 2006.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.