费米估算问题套路详解

# 一、费米估算:起源 有这样的一个故事: 在一次芝加哥大学课堂上,费米问学生。芝加哥市有多少调琴师,学生们一脸茫然。费米提示把这个问题**“分解成一些便于操作的小问题,然后鼓起勇气作猜测和假设”。** 芝加哥有多少居民?可靠的估算是300万;平均每个家庭有多少人?4人;多少家庭有钢琴?大概三分之一,那么全市大约就有25万架钢琴;一架钢琴隔多长时间需要调音?平均5年,那么芝加哥平均每年有5万架次的钢琴需要调音;每个调音师每天能为多少架钢琴调音?4架;假设他一年工作250天,那么他每年约为1000架钢琴调音。 由此,费米和学生们推测,芝加哥市大概有50位钢琴调音师。 事后有人用电话号码簿加以验证,实际统计的结果与费米的猜测十分接近。 ---- # 二、费米估算的原理 ## 2.1 费米估算的概念 费米估算指的是解决未知结果的估算问题,**将复杂的问题拆解成小的、可知结果的部分。** 将拆解出来的简单部分赋予实际意义,**如果还不能得出结果,那就继续再拆解**,直到拆解后的所有部分问题变成一个常识问题或者是比较容易解决的,从而将一个未知结果的问题逐步变得清晰。 ## 2.2 平均律 在将复杂的问题拆解成小的、可知结果的部分过程中,可能会存在估算,那么这样的估算会不会给最终结果带来很大的误差呢? 比如前面例子中,费米估算芝加哥有1/3家庭有钢琴,如果当时估算的是1/4,那结果就会不准确了吗? 其实在费米估算过程中,我们不是只有一次估算,我们会产生一系列的估算。比如估算芝加哥有1/3家庭有钢琴,同时也会估算一架钢琴平均5年调一次音。这些估算有的过高有的过低,相乘之后会相互抵消,回归到较为准确的平均值。 费米估算不是万能的,有个很重要的前提,我们的估算值是有实际数据或者生活经验支撑的。估算值不能偏离实际结果太远,要从实际结果、常识出发。比如费米在估算芝加哥每个家庭有4个人,换成我们来估算的话,我们不能拍脑袋直接估算芝加哥每个家庭有10个人。 这种脱离实际常识、数据的估算其实是瞎猜,瞎猜怎么能对呢? ----- # 三、如何用费米估算Market Sizing问题 最近在分析些产品面试题,发现一些大厂喜欢出这样的估算题目,比如: - 估算杭州每年奶茶店的规模大小? - 估算杭州一家奶茶店一天卖多少杯奶茶? - 估算杭州有多少家奶茶店? 这类问题称为Market Sizing问题,有些同学在面试时碰到这类问题,如果没有提前了解这类题型,难以找到比较好的回答思路。 这类Market Sizing题型正好可以通过费米估算的法则来解决,将未知的数逐步拆解成已知的部分,从而将一个未知结果的问题逐步变得清晰。 Market Sizing问题在运用费米估算时,主要是通过需求端、供给端、供需端等角度切入将问题拆解。 --- ***费米估算思路*** 在进行费米问题估算时,需要谨记的一点在于“**将难获得的数据拆分为易获得的数据**”, 同时,对拆解后的部分赋予数值时,**避免改变数值真实范围**(按照数据或者经验来赋予较为准确的范围),这并不是一件困难的事情,因为——费米估算是有逻辑套路的。我们从需求端、供给端、供需端三个方面给出案例。 --- # 四、费米估算步骤:(以下以需求端举例描述) 问:“2018年中国消费了多少升啤酒” ## 4.1 分析是需求端问题还是供给端问题,或者两个角度都不是 (需求端?供给端?供需端?) 要分清楚这个数据是供应端是瓶颈,还是需求端是瓶颈等。这些类别的不同将有着不同的解题思路。**供给端就是从企业的供给能力出发,评估企业能够支持多大的市场规模。而如果是需求端,通常就和人口之类的挂钩了。** 那么,很明显,中国啤酒的消费量属于“需求端是瓶颈。 ## 4.2 列出相关常识 列出你的一些常识,从而启发解题方向。通常来讲,每个人的解题思路会因为自己常识的不同而不同。估算能力本质就是将一个复杂的问题,一步步拆成贴近自己常识范围内的题目去解。 - 我列出了对啤酒的一些了解: >- 体积:一瓶普通的啤酒大约450ml,一罐啤酒在300ml这样。 >- 季节:啤酒冰着更好喝,所以冬天的消费量会比较少,夏季则会是旺季。 >- 人口:中国有约14亿人口,8亿在乡村。 >- 购买场所:在超市,便利店,饭店,网上,酒吧,KTV等地方可以买到啤酒。 >- 消费场所:主要集中在KTV,酒吧,小餐馆,个人家中等地方。 ## 4.3 构建计算逻辑树 (问题拆解,列公式) 构建计算逻辑树,咨询公司又叫它issue tree。我思考了几种思路: - 首先是按照购买场所,那么首先我得计算各种购买场所的数量,但是目前网购也是很普遍的事情了,这样就非常难以估计了。因此,这个方法比较难。 - 其次是按照消费场所,也是得计算主要消费场所的数量,再按照场所估算下场所每天的人次,再根据自己的了解估算下人均消耗量。这基本是可以行得通的。这里面的要素和我一些常识理解契合度较高。 - 最后,我还想了按照消费人群,但估算消费场所里的人均消耗量比估算消费人群的人均消耗量其实更简单。按消费人群去估算拍数的成分太大。 在建立issue tree之前,要讲一个重要的原则,咨询公司叫MECE(读me see),全称是“Mutually Exclusive Collectively Exhaustive”,翻译成中文就是“相互独立,完全穷尽”。我们习惯简称为“不重不漏”。 在按照 MECE 原则将某个整体(不论是客观存在的还是概念性的整体)划分为不同的部分时,必须保证划分后的各部分符合以下要求: - 各部分之间相互独立 (Mutually Exclusive) ——“相互独立”意味着问题的细分是在同一维度上并有明确区分、不可重迭的; - 所有部分完全穷尽 (Collectively Exhaustive)—— “完全穷尽” 则意味着全面、周密。 ![0.jpg](https://cos.easydoc.net/17082933/files/kf9eqhv1.jpg) 因此,我所列的计算逻辑的要素必须是符合MECE原则。现在开始一步步列出计算逻辑树,**黑色背景代表已经可以在常识范围内进行估算了,深蓝色背景代表则反之。** ![3.png](https://cos.easydoc.net/17082933/files/kf9et29o.png) 由于我主要在夏季喝啤酒,因此,我以夏季的日消耗量来进行估算,这也符合我的常识。前面提到,冬季是啤酒淡季,夏季是旺季,因此公式变为: ![2089191400daf6f8285e278d.png](https://cos.easydoc.net/17082933/files/kf9etgsm.png) 由于直接估算消耗的体积比较不直观,我们转而估算瓶数,最后再转回体积,公式变为: ![4.png](https://cos.easydoc.net/17082933/files/kf9etu7g.png) 现在来拆解啤酒夏季日消耗量,我能想到的主要消费场所是:KTV,酒吧,小餐馆和个人家中。这些场所也是互相独立的,为了不漏,必须加上个“其他场所”。 因此有以下等式: ![5.png](https://cos.easydoc.net/17082933/files/kf9eu950.png) 而某场所夏季的日消耗瓶数还需要继续拆解,以KTV场所为例: ![1.png](https://cos.easydoc.net/17082933/files/kf9eruft.png) 平均每天消费人次和人均消费瓶数可以直接根据经验预估,而某场所数量还需要继续拆解: ![2.png](https://cos.easydoc.net/17082933/files/kf9escvx.png) 目标消费人群数量已经到可以直接估算的范围。而单位覆盖人数还是不确定。单位覆盖人数,我采用了不同的估算方式。在深圳虽然生活多年,但是对各种场所的数量完全没有概念。所以我决定按照老家县城的情况进行估算。 ![6.png](https://cos.easydoc.net/17082933/files/kf9eupth.png) 酒吧单间场所覆盖人数的估算方法和KTV一样。小餐馆较多,无法使用相同的办法。这时候可以取用深圳家中小区人口数和附近饭店的数量去进行估算。 ![7.png](https://cos.easydoc.net/17082933/files/kf9ev2s1.png) 而家庭单间场所覆盖人数则直接设定为3人,三口之家。 ![8.png](https://cos.easydoc.net/17082933/files/kf9evgbm.png) 根据MECE原则,还有一个其它场所需要预估。其他消费场所的消耗瓶数,则为以上四种消费场所总消耗瓶数的某个百分比即可。至此,整个计算逻辑树如下,树根已经为黑色背景可估算了。 ![9.png](https://cos.easydoc.net/17082933/files/kf9evs2m.png) ---- ## 4.5、快速计算结果 **1)计算“单间场所覆盖人数”** 老家县城城区人口约20万人,KTV印象中在5 - 15家左右,酒吧1~3家,取个均值,算下来:KTV单位覆盖人数=20W人/10家KTV=2W人。酒吧单位覆盖人数=20W人/2家酒吧=10W人。 深圳家中小区加上园区办公楼估算有5000人左右,附近饭店在约有10家。因此,小餐馆单位覆盖人数=5000人/10家餐馆=500人。家庭单位覆盖人数直接取3人,三口之家。 **2)计算“目标消费人群数量”** KTV,酒吧,小餐馆,我理解农村是比较少的,忽略不计。前面讲到我的常识中,农民是8亿人口,那么这三种场所的目标消费人群为6亿(14亿-8亿),家庭则为完整的14亿。 计算“单间场所日消耗瓶数”,即“平均每天消费人次” X “人均消费瓶数”。 以下数据均为估算: >- 单间KTV日消耗瓶数=30X100%X3=90瓶/天,每天来客30人次,每人都会消费且平均3瓶。 > >- 单间酒吧日消耗瓶数=30X100%X3=90瓶/天,每天来客30人次,每人都会消费且平均3瓶。 > >- 单间餐馆日消耗瓶数=400X50%X1=200瓶/天,每天来客400人次,50%的人会消费且平均1瓶。 > >- 单间KTV日消耗瓶数=3*5%*1=0.15瓶/天,每天家中3人,5%的人会消费且平均1瓶。 **3)两个快速计算的技巧** 至此,计算都比较简单。那么后面的计算过程如果按照传统的计算,将会非常耗时且容易出错,在面试过程中这么操作是不现实的,为了应对这种情况,《Case Interview Secrets 》给出了两个技巧: - 第一条:在开始计算之前简化算法。 比如 NX15可以拆成 NX10+NX10X0.5,这样计算起来就相当简单了。 - 第二条:有技巧地取整数。 这里的整数是指整十整百这种。比如16,你可以约等于15来计算。但这里要注意的是,如果你这次向上取整,那么下次就要向下取整,反之亦然。以保证结果不会偏差太大。调高了用箭头↑,调低了用箭头↓。 下面我们将应用这两个技巧进行笔算。 计算“场所数量”,即“目标消费人群数量” ÷ “单间场所覆盖人数”。 >- KTV数量=6亿÷2W=30千间 >- 酒吧数量=6亿÷10W=6千间 >- 小餐馆数量=6亿÷500=6亿÷(1000÷2)=6亿÷1000*2=1.2 百万间 >- 家庭数量=14亿÷3=12亿÷3+2.1亿÷3=4亿+0.7亿=4.7亿间↑ 计算“各场所啤酒夏季日消耗瓶数”,即“单间场所日消耗瓶数”乘“场所数量”。 >- KTV啤酒夏季日消耗瓶数=90*30=2700千瓶 >- 酒吧啤酒夏季日消耗瓶数=90*6=540千瓶 >- 小餐馆啤酒夏季日消耗瓶数=1.2*200=240百万瓶 >- 家庭啤酒夏季日消耗瓶数=4.7X0.15 =4.7X0.1+4.7X0.1÷2≈0.47+0.23=0.7亿甁=70百万瓶 **计算“最终结果”:** 算完以上之后,由于KTV和酒吧占比很小,所以你可以放心取整数了。四种场所总计=2700千瓶+540千瓶+240百万瓶+70百万瓶≈(2.5+0.5+240+70)百万瓶约等于310百万瓶 那么以上,我们估算了四个主要消费场所的量,我已经很难想到其它大的消费场所了,因此我估算其他场所只占消耗量的10%。则总计=310+310*10%=310+31约等于340百万瓶。 前面提到我是按照旺季的消耗量去预估的,因此数据是偏高的。我需要打一个季节折扣。这个折扣我根据自己的理解设定为80%。 则总计=340X80%=340X100%-340X20%=340-68约等于=340-70=270百万瓶。 一年365天,则一年总计=270X365=250X400=100000百万瓶=1000亿甁。 每瓶容积为0.45升,则**中国2018年啤酒消耗量=1000X0.45=450亿升。** 我用excel精确计算后的结果为453亿升,可谓相当接近了。 朋友告知第三方给出的数据在400-450亿升之间。能够碰巧在这个区间也需要一部分运气。《Case Interview Secrets 》作者谈到,这类估算问题,如果与真实数据误差在20%以内,就算是非常完美的估算结果了。当然更加重要的还是解题的思路。一步步将未知的问题拆成若干自己相对已知的范围里去解题。 ---- # 供给端: 楼下星巴克一年卖咖啡收益? **1、列常识** > - 星巴克忙碌(早8点-10点,午1点-3点,共计4小时),闲暇(早10点-午1点,午3点-晚8点,共计8小时)时间段 > >- 每天卖出的咖啡数=忙时产能+闲时产能 > >- 制作咖啡的流程,每一杯咖啡需要2分钟的制作时间。 **2、逻辑树(拆解公式)** - **公式1:星巴克一年营业额=一杯咖啡均价X每天卖出咖啡数量X365天** >在拆解公式里,一杯咖啡的均价是已知的,但是每天卖出咖啡的数量是未知的。所以下一步要想办法计算出每天卖出咖啡的数量。 - **公式2:每天卖出的咖啡数=忙时产能+闲时产能** >假设①:星巴克有2台咖啡机,每台咖啡机可以同时制作2杯咖啡,那么一家咖啡店可以同时制作4杯咖啡。 > >假设②:忙时设备利用率100%,闲时设备利用率20% > >计算忙时产能:两分钟4杯咖啡 --> 平均每分钟两杯咖啡 --> 共计480杯咖啡 > >计算闲时产能:设备利用率为20% --> 平均每分钟生产0.4杯咖啡 --> 共计192杯咖啡 ![10.png](https://cos.easydoc.net/17082933/files/kf9ewb7f.png) **3、数据整合,得到最终结果** 星巴克一年营业额 =一杯咖啡均价X(每天闲时产能+每天忙时产能)X365天 =30X(480+192)X365 =736 万 ----- # 供需结合: ***以小见大*** “香港有多少个自助提款机?” 被面试的学生来自港中文大学,知道港中文约有10000名师生,有5台ATM取款机。 在 "供给与需求满足一定比例" 的假设下,推测一台ATM机能够满足2000人的取款需求。 全香港大概有700万人口,需要3500台ATM机 ***以大见小*** “XX县城有多少金融行业从业人员?” 作出假设:全国大概800W金融行业从业人员 在【供给与需求满足一定比例】的假设下,800W金融从业人员服务与14亿中国人,1个金融从业人员可以服务175人。 XX县城的金融从业人员数量=XX县城总人数/175 ________________________________________ 常见的费米估算问题都可以套用以上三种方法进行解答。在实际的面试过程中,更加推荐大家从需求端或者供给端出发,进行公式的拆解。一定要记住:关注拆解的过程,可适当引用“瞎诌”的假设数据,不用管结果的正确性!!看完费米估算的思路,有兴趣的朋友们可以拿出纸和笔,做做题呀~~~(1)估算永和豆浆一年的油条销量?(2)上海理发店有多少tony老师?(3)长沙一年的燃油税费是多少?(这是我面网易考拉的原题) ----- Emmm……好像很多人表示,不知道怎么获取XX城市有多少人的信息,怎么估计每个年龄阶段的人数占比信息……其实吧,这些数据是要背的(对的,你没看错,要背……)。在面试网易考拉的时候,面试官让我推算长沙一年燃油税费,我在做数据假设的时候说道长沙有800W人,这时候面试官小哥哥翻出手机开始查,完了抬头看着我说:你数据感挺不错(哈哈哈内心偷笑中) ------ 引用文章: [费米估算 | 产品面试中的估算问题解法](http://www.woshipm.com/pmd/3941089.html) [费米问题 | 如何快速评估一个价值范围?](http://www.woshipm.com/zhichang/3574857.html) [你的城市有多少理发店?费米估算问题套路详解(1)](https://mp.weixin.qq.com/s?__biz=MzIxNDE3ODIxOA==&mid=2247483653&idx=1&sn=447baadc07e8009855755772c6025d6d&chksm=97aac1c0a0dd48d62394048fc7ef04cc4ab4abc9e2b22c99f4a0e2de80b75363359c2295e67d&mpshare=1&scene=23&srcid=0713Z2f0A88Qlhi0b838Yx5t&sharer_sharetime=1594626349868&sharer_shareid=e7aab36d78b279ccf29394736ce26e0f#rd) [你的城市有多少理发店?费米估算问题套路详解(2)](https://mp.weixin.qq.com/s?__biz=MzIxNDE3ODIxOA==&mid=2247483665&idx=1&sn=0809f7f653c86554ba9542f53cf6a1ea&chksm=97aac1d4a0dd48c27536551c511e2151fd7b49fad1018a701e489ff1de23c68803bcdd089d5a&mpshare=1&scene=23&srcid=0713WcPbfFmhgdFy5C2fyDZ5&sharer_sharetime=1594626357461&sharer_shareid=e7aab36d78b279ccf29394736ce26e0f#rd)