假设你有一个由 N 个数字组成的序列。您检查序列并查看它是否按升序排序。如果不是,则将其打乱(即,随机排列其元素的顺序)并再次检查。在看到排序序列之前,您平均需要执行多少次检查?我相信答案是 N!,并且(我认为)我有一个证明,但我想看看你将如何证明它,因为我不认为我的证明是最优雅/最直接的。
在看到排序序列之前,序列的平均随机排列数
机器算法验证
可能性
分布
期望值
2022-04-12 00:35:56
1个回答
让我们先假设我们向量中的唯一条目。
随机打乱一个向量并检查它是否按特定顺序排序的动作相当于随机选择一个排列并检查它是否是一个非常特定的排列,即按照我们想要的顺序对向量进行排序的排列。
一个集合的置换群元素有元素。通过假设,每个排列都是同样可能的。
因此,您的实验是来自伯努利分布的迭代抽样,成功概率为. 直到第一次成功的试验次数是几何分布的,您正在寻找的期望是直到第一次成功的预期抽签次数。这是我们几何分布的期望,即.
我们可以扩展对重复项的处理。假设向量有 唯一的条目,每一个都出现次,所以. 然后向量的两个排列将产生相同的向量,如果它们只是在每个单独的条目中重新排序不同。并且有每个条目中的排列。所以我们向量的重数的整体置换群有实际上导致不同向量的排列。其余的分析如上运行,所以结果是我们期望必须绘制在看到有序向量之前的排列。
其它你可能感兴趣的问题