Асимптотично, скільки перестановок


17

Розглянемо перестановки σ з [1..n] . Інверсія визначається як пара (i,j) таких індексів, що i<j та σ(i)>σ(j) .

Визначте Ak кількість перестановок [1..n] з не більше k інверсіями.

Питання: Яка межа асимптотики обмежена для Ak ?

Раніше було задано відповідне питання: Кількість перестановок, що мають однакову відстань Кендалла-Тау

Але питання вище стосувалось обчислення Ak . Його можна обчислити за допомогою динамічного програмування, оскільки він задовольняє відношенню повторення, показаному тут: /programming/948341/dynamic-programming-number-of-ways-to-get-at-least-n-bubble -сортирування

Кількість перестановок з точно k інверсіями також було вивчено, і це можна виразити як генеруючу функцію: http://en.wikipedia.org/wiki/Permutation#Inversions

Але я не можу знайти формулу закритої форми або асимптотичну межу.


2
Якщо у вас є генеруючий многочлен для послідовності, ви можете отримати генеруючий многочлен для префікса сум просто множенням многочлена на 1/(1−x) . У вашому випадку ви б використовували поліном, який ви зв'язали з цим, обчислюємо точно-k інверсії.
— Суреш Венкат


1
@SureshVenkat Дякую за пораду. Але я все ще буду застряг у знаходженні коефіцієнта xk у цьому дійсно складному многочлені з точки зору n і k і я не бачу, як це зробити.
— Vinayak Pathak

3
щоб отримати коефіцієнт xk , візьміть k -му похідну від породжувального многочлена і оцініть її при x=0 .
— Сашо Ніколов

Відповіді:


12

Згідно з Вікіпедією, кількість перестановок в з точно k інверсіями є коефіцієнтом X k в 1 ( 1 + X ) ( 1 + X + X 2 ) ⋯ ( 1 + X + ⋯ + X n - 1 ) . Позначимо це через c ( n , k ) . Це показує, що c ( n + 1 ,SnkXk

1(1+X)(1+X+X2)⋯(1+X+⋯+Xn−1).
c(n,k) Тож кількість перестановок у S n з максимум k інверсіями дорівнює кількості перестановок у S n + 1 з рівно k інверсіями. Це має також акуратний комбінаторний доказ (натяк: взяти π ∈ S n + 1 і видалити n + 1 ).
c(n+1,k)=∑l=0kc(n,k−l).
SnkSn+1kπ∈Sn+1n+1

XkXmm>kn>kc(n,k)Xk

1(1+X)⋯(1+X+⋯+Xk−1)(1+X+⋯+Xk+⋯)n−k=1(1+X)⋯(1+X+⋯+Xk−1)1(1−X)n−k=1(1+X)⋯(1+X+⋯+Xk−1)∑t=0∞(t+n−k−1t)Xt.
c(n,k)=∑t=0k(n+t−k−1t)c(k,k−t),n>k.

kt=k

c(n,k)=(n−1k)+Ok(nk−1)=1k!nk+Ok(nk−1).
c(n+1,k)

k(n+t−k−1t)=(n+t−k−1n−k−1)t∑t=0kc(k,t)≤k!

(n−1k)≤c(n,k)≤k!(n−1k).

c(n,k)≤k!(n−1k)≤ekk+1/2e−k(e(n−1)/k)kc(n,k)≤ek(n−1)k
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.