最高楼层问题
source link: https://lotabout.me/2018/max-level-of-skiplist/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
最高楼层问题
一个人爬楼梯,每爬一层前先抛个硬币,如果是正面则继续向上,如果是反面则停下结束,问平均能爬到的最高层数是多少(期望)?
这个问题是不是太简单了?那么考虑 N 个人各自爬楼梯,都依照上面的规则,只统计它们中爬得最高的楼层,问楼层数的期望是多少?
单人的问题可以套用统计学中的 几何分布,得到期望为 11−p−1,在抛硬币的情况下就是平均 1 层。自己算的话如下式:
E(x)=0p0(1−p)+1p1(1−p)+2p2(1−p)+…=(1−p)(p+2p2+3p3…)=(1−p)p(1−p)2=p1−p=11−p−1
和几何分布的结果是一致的。不过要提醒的是几何分布关心的是成功概率和次数,而我们关心的是失败的。
很直接地,我们想一开始有 n 个人,它们中有 50% 的人会掷到正面,因此第 1 层会有 n2 个人,第 2 层有 n4 个人。进一步,第 k 层有 n2k 人。所以当最后一层只剩一个人的时候,即 n2k=1 时,即到了最高层,于是最高能到的层数为 k=log2n。
上面的分析好像没什么大问题,那么如果问 1024
个人最高能爬到多少层,你回答层数的期望是 10
层,对不对呢?不知道,也算不出来,但很可能是错的。事实上满足几何分布的独立同分布变量,它们的最大值的期望并没有一个良好的解析式可以表示(数学好的话可以看看这个答案)。
但是当 n 足够大的时候,我们能确定它“大概”就是 log2n 层。下面是一些证明,不感兴趣的就跳过吧。
期望上界的证明
其实这个问题是计算数据结构跳表 (skiplist) 的高度的另一种说法。这里这里跟据 一个讲义 讲解一下如何推导得到期望的上界(建议看看原文)。
我们知道,一个人爬到至少第 k 层的概率是 pk,n 个人中 至少有一个人 达到 k 层及以上的概率不太于 npk(即所有人都到达 k 层及以上的概率)。设 M 为任意一人达到的最高层数,则 M≥k 的概率 Pr[M≥k]≤npk。现在我们要求 M 的期望 E[M] 的上界,我们把期望的计算拆成两部分:
E[M]≤L−1∑k=0kPr[M=k]+∞∑k=LkPr[M=k]
拆成两部分的原因是我们知道随着 k 的增长,后面的部分增长会越来越慢,这样我们选取适当的 L 并对 k 比较大的部分应用缩放,然后再单独处理 k 小的部分,就可以得到一个小的上界。为此,我们要找到一个 L,满足:
knpk=O(1/k2),∀k≥L
为什么要选 1/k2 呢?因为我们知道下面这个和(巴塞尔问题):
∞∑i=01i2=π22≤2
那么就有:
∞∑k=Lknpk≤∞∑k=LO(1k2)=O(1)
现在的问题是 L 到底是多少呢?我们希望当 n 足够大时,L 满足:LnpL≤L2,换言之,我们希望得到 L3npL=O(1/n)。这东西不是人能解出来的,但我们只需要找到一个合适的值就行了。我们选的值是:
L=2log1/pn
下一小节我们会验证这个值的正确性,这里我们先考虑式子剩余的部分:
L−1∑k=0kPr[M=k]≤L−1∑k=0LPr[M=k]=LL−1∑k=0Pr[M=k]=LPr[M<L]≤L
于是,我们的期望的上界为:
E[M]≤L−1∑k=0kPr[M=k]+∞∑k=LkPr[M=k]≤L+0=O(logn)
证明 L 是合适的
即我们要证明当 n 足够大时,L=2log1/pn 满足 LnpL≤1/L2,亦即 L3npL≤1。
代入 L=2log1/pn 的值:
f(n)=L3npL=8log1/p(n)3n
上面的式子在 n→∞ 时趋近于 0 (参考Orders Of Growth Corollary 2.2),得证。
With High Probability
With High Probability 是另一种说明可能性的方式。它表示如果某个依赖参数 n 的事件,发生的概率是 pn 且 limn→∞pn=1,则说这个事件是“大概率”发生的。
我们说多人爬楼梯的最高层数“大概率”是 O(logn) 的。考虑 clog1/pn 层,上文提到,最高层数大于等于 k 的概率为:
Pr[M≥k]≤npk=npclog1/pn=n1nc=1nc−1
那么 M<k 的概率为 1−1nc−1,当 n→∞ 时,概率趋近于 1。那么“大概率”告诉我们什么信息呢?它告诉我们,当 n 很大时,最高层数几乎不可能大于 clog1/pn (因为概率太小了)。并且根据常数 c 的不同,我们能预测它的概率。
“大概率”与上面证明的最大区别是“大概率”并不能保证没有反例出现,而严格的上界证明可以。不过对于一些概率算法来说,“大概率”就已经足够保证算法的性能了。
Recommend
-
78
问与答 - @xiaowangge - 公司搬到中关村某大厦后,发现公司所在楼层公厕、走廊窗户边经常有人抽烟。2017 年 10 月到现在,平均每月打 2 次 12320 举报电话。在厕所看到有人抽烟,就会说一声“公厕不让抽烟”
-
40
问答。
-
21
推广 - @yeshang - 相信大家都是二手东的深度用户, 这里有一款京东官方推出的芬香返钱小程序, 搜索你想买的商品,即可看到返钱,每月打钱给你, 分享了还能赚钱. 里面还有很多神价产品使用电脑浏览的 V 友请
-
22
来源:中国科普博览高能预警:本文中包含大量蟑螂图片,对蟑螂感到不适的读者慎点。蟑螂,臭名昭著的“四害”之一。它有着狰狞丑陋的外表,顽强不屈的生命力,总是在意想不到的时间和地点,从某个角落突然杀出,引发一阵哀嚎与数不清的段子。蟑螂不仅恶心坏了
-
36
用户体验关键影响因素 京东订单业务,主要负责为京东用户提供下单后订单的信息全面展现,用户在下单后会不断关注自己的订单状态变化,还有可能在购买后的一段时间内查询历史订单,并进行商品的复购。订单业务承载着用户最为关注...
-
10
超六成老年人“独立居住” 楼层高低更受老年人关注贝壳研究院7分钟前四世同堂画风渐被改写,超六成老年人“独立居住”。前言
-
11
ESMap平台如何制作多楼层室内三维地图-易景空间地图发布于 5 分钟前随着三维可视化技术和空间定位数据技术的不断发展,三维地图...
-
9
随着无线网络技术及应用的快速发展,越来越多的场合需要组建方便、快捷的无线网络,本文介绍的是一种多楼层无线网络覆盖方案的部署与配置。 多楼层无线网络覆盖 推荐方案:无线漫游网络 优点:无线客户端在...
-
8
JELLY | 【智能算法】让楼层GMV提升22%的秘密!万券齐发会场战报!【智能算法】让楼层GMV提升22%的秘密!万券齐发会场战报!
-
2
V2EX › 问与答 为什么买房的人都不在乎楼层厚度?没有商家拿厚度来做卖点?
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK