猴子排序的期望复杂度(雾)

Posted wawcac

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了猴子排序的期望复杂度(雾)相关的知识,希望对你有一定的参考价值。

  众所周知,猴子排序打破了排序算法$O(n\log_{2}{n})$的桎梏(雾),具体的话,显然最好情况一次成功就是$O(n)$,最坏情况那就$O(+\infty)$了。期望是多少呢?让我来推导一番(逃)。

  首先,每次打乱序列和检测是否有序为$O(n)$,每次成功的概率为$\frac{1}{n!}$(全排列共$n!$种),失败的概率为$1-\frac{1}{n!}$。我们令$X$为排序成功所需的打乱次数,则$P(X=k)=P_{成功}^{1}×P_{失败}^{k-1}$(乘法原理)。分布列如下表所示——

$X$ $1$ $2$ $3$ $\cdots$ $k$ $\cdots$ $+\infty$
$P(X=k)$ $\frac{1}{n!}$ $\left(1-\frac{1}{n!}\right)^{2-1}×\frac{1}{n!}$ $\left(1-\frac{1}{n!}\right)^{3-1}×\frac{1}{n!}$ $\cdots$ $\left(1-\frac{1}{n!}\right)^{k-1}×\frac{1}{n!}$ $\cdots$ $+\infty$

  有了分布列就来求X的期望吧——

$$E(X)=1×\frac{1}{n!}+2×\left(1-\frac{1}{n!}\right)^{2-1}×\frac{1}{n!}+3×\left(1-\frac{1}{n!}\right)^{3-1}×\frac{1}{n!}+\cdots+k×\left(1-\frac{1}{n!}\right)^{k-1}×\frac{1}{n!}+\cdots$$

$$=\frac{1}{n!}×\left[1×\left(1-\frac{1}{n!}\right)^{0}+2×\left(1-\frac{1}{n!}\right)^{1}+3×\left(1-\frac{1}{n!}\right)^{2}+\cdots+k×\left(1-\frac{1}{n!}\right)^{k-1}+\cdots\right]$$

$$=\frac{1}{n!}×\sum_{i=1}^{\infty}{i×\left(1-\frac{1}{n!}\right)^{i-1}}$$

以上是关于猴子排序的期望复杂度(雾)的主要内容,如果未能解决你的问题,请参考以下文章

新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- 猴子排序的期望

条件期望求解快速排序算法复杂度

猴子排序的期望 高精乘和除 / 组合数学

新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)F 猴子排序的期望Java/高精度/组合数学+概率论

看动画轻松理解时间复杂度

P2502 [HAOI2006]旅行 - 最小生成树最小比值生成树(雾