Сформулируйте и докажите утверждение о числе перестановок без фиксированных точек (числа дерangements) и покажите, как это может применяться в анализе алгоритмов случайной перестановки
Утверждение (классическое). Обозначим через DnD_nDn число перестановок множества {1,…,n}\{1,\dots,n\}{1,…,n}, не имеющих ни одной фиксированной точки (дерранжменты). Тогда 1) Формула включений-исключений: Dn=∑k=0n(−1)k(nk)(n−k)!=n!∑k=0n(−1)kk!.
D_n=\sum_{k=0}^n (-1)^k \binom{n}{k}(n-k)! = n!\sum_{k=0}^n\frac{(-1)^k}{k!}. Dn=k=0∑n(−1)k(kn)(n−k)!=n!k=0∑nk!(−1)k. 2) Рекуррентные соотношения: Dn=(n−1)(Dn−1+Dn−2)(n≥2),
D_n=(n-1)\bigl(D_{n-1}+D_{n-2}\bigr)\quad(n\ge2), Dn=(n−1)(Dn−1+Dn−2)(n≥2),Dn=nDn−1+(−1)n.
D_n=nD_{n-1}+(-1)^n. Dn=nDn−1+(−1)n. 3) Асимптотика и округление: Dnn!→e−1при n→∞,Dn∼n!e,
\frac{D_n}{n!}\to e^{-1}\quad\text{при }n\to\infty,\qquad D_n\sim\frac{n!}{e}, n!Dn→e−1приn→∞,Dn∼en!,
и в частности Dn=⌊n!e+12⌋D_n=\left\lfloor\frac{n!}{e}+\tfrac12\right\rfloorDn=⌊en!+21⌋ (округление до ближайшего целого). Краткие доказательства. 1) (Включения-исключения.) Для каждого множества SSS из kkk фиксированных точек число перестановок, фиксирующих по крайней мере все точки из SSS, равно (n−k)!(n-k)!(n−k)!. Применяя принцип включений-исключений по множествам фиксированных точек, получаем Dn=∑k=0n(−1)k(nk)(n−k)!.
D_n=\sum_{k=0}^n (-1)^k \binom{n}{k}(n-k)!. Dn=k=0∑n(−1)k(kn)(n−k)!.
Переписав (nk)(n−k)!=n!/k!\binom{n}{k}(n-k)! = n!/k!(kn)(n−k)!=n!/k!, получаем вторую форму. 2) (Рекурсия.) Рассмотрим образ элемента 111 в перестановке. Пусть 111 переходит в j≠1j\neq1j=1. Рассмотрим два случая: либо jjj переходит в 111, либо нет. - Если j↦1j\mapsto1j↦1, то остаётся зде́сь переставить остальные n−2n-2n−2 элементов без фиксированных точек: даёт Dn−2D_{n-2}Dn−2 вариантов. - Если j↦̸1j\not\mapsto1j↦1, то можно считать, что мы «связали» 111 с jjj и остаётся дерранжировать n−1n-1n−1 элементов так, чтобы jjj не был фиксирован — даёт Dn−1D_{n-1}Dn−1 вариантов. Так как выбор jjj даёт n−1n-1n−1 вариантов, суммарно Dn=(n−1)(Dn−1+Dn−2)D_n=(n-1)(D_{n-1}+D_{n-2})Dn=(n−1)(Dn−1+Dn−2). Вторая рекурсия следует алгебраически из формулы включений-исключений. 3) (Асимптика.) Из формулы Dnn!=∑k=0n(−1)kk!
\frac{D_n}{n!}=\sum_{k=0}^n\frac{(-1)^k}{k!} n!Dn=k=0∑nk!(−1)k
и сходимости степенного ряда ∑k=0∞(−1)k/k!=e−1\sum_{k=0}^\infty(-1)^k/k!=e^{-1}∑k=0∞(−1)k/k!=e−1 следует Dnn!→e−1\frac{D_n}{n!}\to e^{-1}n!Dn→e−1. Отсюда Dn∼n!/eD_n\sim n!/eDn∼n!/e. Оценка остатка для чередующегося ряда даёт ∣Dn−n!e∣<n!(n+1)!=1n+1≤12\bigl|D_n-\tfrac{n!}{e}\bigr|<\tfrac{n!}{(n+1)!}=\tfrac{1}{n+1}\le\tfrac12Dn−en!<(n+1)!n!=n+11≤21 при n≥1n\ge1n≥1, откуда утверждение об округлении. Применение в анализе алгоритмов случайной перестановки. - Вероятность того, что случайная равновероятная перестановка не имеет фиксированных точек, равна Pr(нет фикс. точек)=Dnn!→e−1≈0.3679.
\Pr(\text{нет фикс. точек})=\frac{D_n}{n!}\to e^{-1}\approx0.3679. Pr(нетфикс. точек)=n!Dn→e−1≈0.3679.
Следствие: при генерации случайной перестановки и применении метода «генерируй и отвергай, пока не получишь дерранжмент» среднее число попыток стремится к eee. То есть метод отвергания даёт ожидаемую константную сложность ~eee вызовов генератора перестановки. - Число фиксированных точек в случайной перестановке равно сумме индикаторных случайных величин; его матожидание и дисперсия равны 1, и распределение сходится к распределению Пуассона с параметром 1: Pr(ровно k фикс. точек)→e−11k!.
\Pr(\text{ровно }k\text{ фикс. точек})\to e^{-1}\frac{1}{k!}. Pr(ровноkфикс. точек)→e−1k!1.
Это удобно при анализе алгоритмов, где «ошибки» или «совпадения» моделируются фиксированными точками: количество таких совпадений остаётся в среднем константным и подчиняется пределу Пуассона, что упрощает оценку вероятностей больших отклонений и ожидаемого поведения. - Практический вывод: для задач, где требуется случайная перестановка без фиксированных точек (например, «Secret Santa», перестановки в криптографии, распределение задач без самоназначения), эффективные подходы: прямое построение дерранжмента (существуют линейные алгоритмы) или простое отвергание случайной перестановки с ожидаемым числом попыток ≈e\approx e≈e. Таким образом, знание формул и асимптотики для DnD_nDn даёт точные вероятностные оценки и простые практические выводы для алгоритмов, работающих со случайными перестановками.
1) Формула включений-исключений:
Dn=∑k=0n(−1)k(nk)(n−k)!=n!∑k=0n(−1)kk!. D_n=\sum_{k=0}^n (-1)^k \binom{n}{k}(n-k)! = n!\sum_{k=0}^n\frac{(-1)^k}{k!}.
Dn =k=0∑n (−1)k(kn )(n−k)!=n!k=0∑n k!(−1)k .
2) Рекуррентные соотношения:
Dn=(n−1)(Dn−1+Dn−2)(n≥2), D_n=(n-1)\bigl(D_{n-1}+D_{n-2}\bigr)\quad(n\ge2),
Dn =(n−1)(Dn−1 +Dn−2 )(n≥2), Dn=nDn−1+(−1)n. D_n=nD_{n-1}+(-1)^n.
Dn =nDn−1 +(−1)n.
3) Асимптотика и округление:
Dnn!→e−1при n→∞,Dn∼n!e, \frac{D_n}{n!}\to e^{-1}\quad\text{при }n\to\infty,\qquad D_n\sim\frac{n!}{e},
n!Dn →e−1при n→∞,Dn ∼en! , и в частности Dn=⌊n!e+12⌋D_n=\left\lfloor\frac{n!}{e}+\tfrac12\right\rfloorDn =⌊en! +21 ⌋ (округление до ближайшего целого).
Краткие доказательства.
1) (Включения-исключения.) Для каждого множества SSS из kkk фиксированных точек число перестановок, фиксирующих по крайней мере все точки из SSS, равно (n−k)!(n-k)!(n−k)!. Применяя принцип включений-исключений по множествам фиксированных точек, получаем
Dn=∑k=0n(−1)k(nk)(n−k)!. D_n=\sum_{k=0}^n (-1)^k \binom{n}{k}(n-k)!.
Dn =k=0∑n (−1)k(kn )(n−k)!. Переписав (nk)(n−k)!=n!/k!\binom{n}{k}(n-k)! = n!/k!(kn )(n−k)!=n!/k!, получаем вторую форму.
2) (Рекурсия.) Рассмотрим образ элемента 111 в перестановке. Пусть 111 переходит в j≠1j\neq1j=1. Рассмотрим два случая: либо jjj переходит в 111, либо нет.
- Если j↦1j\mapsto1j↦1, то остаётся зде́сь переставить остальные n−2n-2n−2 элементов без фиксированных точек: даёт Dn−2D_{n-2}Dn−2 вариантов.
- Если j↦̸1j\not\mapsto1j↦1, то можно считать, что мы «связали» 111 с jjj и остаётся дерранжировать n−1n-1n−1 элементов так, чтобы jjj не был фиксирован — даёт Dn−1D_{n-1}Dn−1 вариантов.
Так как выбор jjj даёт n−1n-1n−1 вариантов, суммарно Dn=(n−1)(Dn−1+Dn−2)D_n=(n-1)(D_{n-1}+D_{n-2})Dn =(n−1)(Dn−1 +Dn−2 ). Вторая рекурсия следует алгебраически из формулы включений-исключений.
3) (Асимптика.) Из формулы
Dnn!=∑k=0n(−1)kk! \frac{D_n}{n!}=\sum_{k=0}^n\frac{(-1)^k}{k!}
n!Dn =k=0∑n k!(−1)k и сходимости степенного ряда ∑k=0∞(−1)k/k!=e−1\sum_{k=0}^\infty(-1)^k/k!=e^{-1}∑k=0∞ (−1)k/k!=e−1 следует Dnn!→e−1\frac{D_n}{n!}\to e^{-1}n!Dn →e−1. Отсюда Dn∼n!/eD_n\sim n!/eDn ∼n!/e. Оценка остатка для чередующегося ряда даёт ∣Dn−n!e∣<n!(n+1)!=1n+1≤12\bigl|D_n-\tfrac{n!}{e}\bigr|<\tfrac{n!}{(n+1)!}=\tfrac{1}{n+1}\le\tfrac12 Dn −en! <(n+1)!n! =n+11 ≤21 при n≥1n\ge1n≥1, откуда утверждение об округлении.
Применение в анализе алгоритмов случайной перестановки.
- Вероятность того, что случайная равновероятная перестановка не имеет фиксированных точек, равна
Pr(нет фикс. точек)=Dnn!→e−1≈0.3679. \Pr(\text{нет фикс. точек})=\frac{D_n}{n!}\to e^{-1}\approx0.3679.
Pr(нет фикс. точек)=n!Dn →e−1≈0.3679. Следствие: при генерации случайной перестановки и применении метода «генерируй и отвергай, пока не получишь дерранжмент» среднее число попыток стремится к eee. То есть метод отвергания даёт ожидаемую константную сложность ~eee вызовов генератора перестановки.
- Число фиксированных точек в случайной перестановке равно сумме индикаторных случайных величин; его матожидание и дисперсия равны 1, и распределение сходится к распределению Пуассона с параметром 1:
Pr(ровно k фикс. точек)→e−11k!. \Pr(\text{ровно }k\text{ фикс. точек})\to e^{-1}\frac{1}{k!}.
Pr(ровно k фикс. точек)→e−1k!1 . Это удобно при анализе алгоритмов, где «ошибки» или «совпадения» моделируются фиксированными точками: количество таких совпадений остаётся в среднем константным и подчиняется пределу Пуассона, что упрощает оценку вероятностей больших отклонений и ожидаемого поведения.
- Практический вывод: для задач, где требуется случайная перестановка без фиксированных точек (например, «Secret Santa», перестановки в криптографии, распределение задач без самоназначения), эффективные подходы: прямое построение дерранжмента (существуют линейные алгоритмы) или простое отвергание случайной перестановки с ожидаемым числом попыток ≈e\approx e≈e.
Таким образом, знание формул и асимптотики для DnD_nDn даёт точные вероятностные оценки и простые практические выводы для алгоритмов, работающих со случайными перестановками.