费米推理——理科生的脑筋急转弯

简介:

前言

先问大家几个问题:

  • 下午两点半有多少人在刷朋友圈?
  • 北京有多少加油站?
  • 芝加哥有多少调音师?
  • 胡同口的煎饼摊子一年能卖多少个煎饼?

产品或市场方向的面试中,时不时会出现这些匪夷所思的问题,而面试官只给你几分钟的时间进行思考,让你做出合理的分析,并且给出答案。

作为一个产品小白,初次面对这样的问题真是无从下手。之后搜罗了不少文章,也留下了一些思考,写了点东西就迫不及待地想大家分享一下。

定义

这类问题被称为“费米问题”,英文名“Fermi Problem”,维基百科的词条是这么描述的:

In physics or engineering education, a Fermi problem, Fermi quiz, Fermi question, Fermi estimate, or order estimation is an estimation problem designed to teach dimensional analysis, approximation, and such a problem is usually a back-of-the-envelope calculation.

它往往被设计用于考察一个人多维度思考的逻辑思维能力,而回答它时,因为题述给出的已知条件几乎不存在,所以又可以看出一个人的知识面是否广泛,把它放在面试中可以说是再合适不过了。

这个问题真的有标准答案嘛?

估算问题,怎么可能有标准答案嘛!

这个问题答案显然是开放的,因为题述几乎不存在什么已知条件,所以我们并不需要去纠结给出的那个数字正确与否,而应该把更多的目光放在推理过程。

起源

在解决现在我们面试中碰到的费米问题之前,我们不妨先看看古人是怎么思考的。

众所周知,学术界存在的那些XX问题,基本上就是XX提出的。费米问题起源于“费米悖论”,那是1951年的一天……一个叫费米的人,仰望星空,问了一句:“外星人都在哪呢?”

银河系中有数十亿和太阳类似的恒星,其中很多比太阳系古老10亿年以上。其中一些恒星可能会有类似地球的行星,它们很可能也会孕育智慧生命。其中部分智慧生命可能会发展出星际飞行的科技。即使以我们现在能够想象的科技飞行,它们也能够在一百万年内飞遍整个星系。

但是,为什么我们在太空中没有看见一个智慧生命的影子呢?

一拍脑子想出来的问题,众说纷纭。一直到1961年,弗兰克·德雷克成名之作诞生——“宇宙文明方程式”。

其中:

$N$:银河系内可能与我们通讯的文明数量

$R^*$:银河系形成恒星的平均速率

$F_p$:恒星有行星的比例

$n_e$:每个行星系中类地行星数目

$f_l$:有生命进化可居住行星比例

$f_i$:演化出高智生物的概率

$f_c$:高智生命能够进行通讯的概率

$L$:科技文明寿命

通过参数相乘,我们便可以推算出银河系及可观测宇宙能与我们进行无线电通信的高智能文明数目。

看到这里,费米问题的思路就有了。

路径

我们可以将那些看似完全无法预测的问题拆解成一个个可以估算的小问题。就像N成为费米问题的答案,它不再代表的“外星人”的数量时,我们也应该把解决问题的思考聚焦在那一个个参数上面。

但我们怎么才能想到这些参数呢,是逻辑;这些参数如何取值呢,是知识储备。后者往往看个人积累,而前者我们却可以通过不断的训练而得出。

解答

笔者认为,常见费米问题的解答通常可以分为以下两类:

  1. 由点及面,由面及点的参数相乘
  2. 供需关系的参数相除

下面我们举例展开。

1.由点及面,由面及点的参数相乘

·1

牛客网上有一个笔试题:如何预测周五下午两点半刷朋友圈的人数。

因为笔者还是在校学生,所以附加一个条件——学生党。

这个问题求的是一个很小的点,我们不妨先考虑一个面——整个用户群体,估测微信活跃用户量约为100,000万,出于计算简便和误差的综合考虑,我们将其分为两个用户群体:学生党、上班族,大致比例3:7吧,那么我们就可以得到微信活跃用户中学生党的数量。

再回到一个点,举一个典型的例子。从我自身出发,工作日的一天我一般会刷6次左右的朋友圈,其中3次会在饭后发生,下午一般是2次,自我判断我应该是属于朋友圈刷的比较少的那一类人,女生可能会更多,如6次。我们取平均数4次,每次时间一般为1分钟(假设一分钟后会刷到上次的内容),也就是在下午的四个小时240分钟内,估算学生党会有4分钟刷朋友圈的时间。那么在2:30(假设下午的时间每个点都一样)的概率就是1/60。

所以,周五下午两点半刷朋友圈的人数(学生党)

= 微信用户量100,000万 × 学生党比例3/10 × 下午2:30刷朋友圈的概率1/60

=500万

2.供需关系的参数相除

大部分的问题,都可以从供需关系展开。

有些是真实的供需问题,比如北京加油站问题:

  • 需求:北京机动车数量*每辆机动车多久加一次油,按天计算,即每天北京的机动车要加A次油
  • 供应:每个加油站每天可以给B辆车加油

再比如芝加哥钢琴师问题:

  • 需求:芝加哥每年有A架钢琴需要调
  • 供应:一位钢琴师一年可以调B架钢琴

需求和供应都是一个个参数堆叠出来的小问题,解决了A和B,最后的答案两者相除就可以得到,即N=A/B。

有些供需问题很简单,甚至不需要考虑需求,比如煎饼摊问题,煎饼是属于现做现卖的产品,所以几乎是没有库存的,也就是做多少卖多少。

这样的问题,我们只需要考虑供应就行了。在一个大佬的回答中,他取早上一个时段饱和状态下卖出的数量,能卖出360个煎饼作为上限;若赚取的毛利润刚好维持生计,则每天至少卖出67个,作为下限。取几何平均,再乘上一年的天数,得出56.7K这个数字。

其实题目做多了,会发现很多问题都是供需问题,只是供需很抽象罢了。

总结

在回答完问题后,还有个比较重要的事情——误差分析,我们应该去指出自己的估算中,有哪些采样是容易产生较大的误差的,产生误差的因素是什么。这样做可以体现思考问题的全面,也许会成为面试中一个很大的加分点。

懂了那么些“套路”后,发现回答费米问题还是一件很有意思的事情。碰到一眼看不出来的问题,就换个角度,或许就产出了一个思路清奇的答案。

相关文章
|
8月前
|
数据采集 API 调度
Python异步编程入门:告别“等待”的艺术
Python异步编程入门:告别“等待”的艺术
444 136
|
Web App开发 安全 数据安全/隐私保护
利用Python+Requests实现抖音无水印视频下载
利用Python+Requests实现抖音无水印视频下载
|
传感器 人工智能 供应链
一场关于物料清单BOM的深度对话
这段对话发生在某科技公司茶水间,新入职的采购专员张薇向供应链总监陈峰请教BOM表的作用。陈峰以乐高说明书为喻,解释BOM是产品的物料清单,涵盖零件型号、用量与供应商信息。他通过实例说明BOM错误可能引发采购、生产和售后等环节的连锁问题,如材料浪费、返工增加及客户索赔。最后,陈峰提出通过源头管控、动态监测和反向追溯优化BOM管理,并强调其准确率对提升企业毛利率的重要性,展现了BOM在现代制造业中“悄然重写利润法则”的核心地位。
582 12
|
11月前
|
Web App开发 人工智能 自然语言处理
2025年SEO工具合集!60 个免费付费的都找齐了
2025年最新整理全网免费与付费SEO工具清单,涵盖关键词研究、页面优化、技术SEO、本地搜索、外链建设及内容创作等全方位工具,助力网站提升排名与流量。
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
3557 23
|
机器学习/深度学习 并行计算 算法
基于粒子群优化算法的MPPT仿真实现
基于粒子群优化算法的MPPT仿真实现
475 0
|
前端开发 Java 测试技术
基于Qwen2.5-Coder 快速搭建应用管理系统
本文介绍了如何利用Qwen2.5-Coder快速搭建一个应用管理系统。通过访问ModelScope通义千问Qwen模型库,选择Qwen2.5-Coder模型,生成Spring Boot项目代码包,并逐步解决项目运行中遇到的问题,如Java版本不兼容等。文章还展示了如何优化用户管理页面的功能和样式,最终实现了从零代码到完整应用的搭建过程,提供了良好的用户体验和开发效率。附带的可运行代码链接为:[https://gitee.com/null_096_1927/demo](https://gitee.com/null_096_1927/demo)。
基于Qwen2.5-Coder 快速搭建应用管理系统
|
人工智能 自然语言处理 Serverless
阿里云百炼应用实践系列-让微信公众号成为智能客服
本文主要介绍如何基于阿里云百炼平台快速在10分钟让您的微信公众号(订阅号)变成 AI 智能客服。我们基于阿里云百炼平台的能力,以官方帮助文档为参考,让您的微信公众号(订阅号)成 为AI 智能客服,以便全天候(7x24)回应客户咨询,提升用户体验,介绍了相关技术方案和主要代码,供开发者参考。
1961 9
阿里云百炼应用实践系列-让微信公众号成为智能客服
|
缓存 算法 前端开发
深入理解缓存淘汰策略:LRU和LFU算法的解析与应用
【8月更文挑战第25天】在计算机科学领域,高效管理资源对于提升系统性能至关重要。内存缓存作为一种加速数据读取的有效方法,其管理策略直接影响整体性能。本文重点介绍两种常用的缓存淘汰算法:LRU(最近最少使用)和LFU(最不经常使用)。LRU算法依据数据最近是否被访问来进行淘汰决策;而LFU算法则根据数据的访问频率做出判断。这两种算法各有特点,适用于不同的应用场景。通过深入分析这两种算法的原理、实现方式及适用场景,本文旨在帮助开发者更好地理解缓存管理机制,从而在实际应用中作出更合理的选择,有效提升系统性能和用户体验。
1350 1
|
人工智能 自然语言处理 供应链
想拥抱新智能?不妨看看这家高速增长企业的AI创新实践
想拥抱新智能?不妨看看这家高速增长企业的AI创新实践

热门文章

最新文章