27 思维模型:第一性原理、量纲分析、反证、归纳

开篇提问

先给你一道题,它测的不是知识,是思维方式:

一架波音 747 飞机,从纽约飞到洛杉矶,全程约 4000 公里,耗时约 5 小时。请问:这架飞机全程烧掉了多少升燃油?

你不需要查任何资料,也不需要知道 747 的具体参数。请用你能想到的办法,给出一个”数量级正确”的估计。

这道题叫”费米问题”(Fermi Problem),是物理学家费米用来训练学生的。而解它的思维方式,是这一章要讲的核心内容之一:量纲分析 + 数量级估算。

先别往下看,自己估一个数字。做完再看下面——你会发现”能估出正确数量级”这个能力,在工程里有多值钱。

这道题的精髓,不在于”你估得准不准”,而在于”你敢不敢、会不会在信息完全不足的情况下,仍然给出一个数量级正确的判断”。 因为工程里的大多数决策,都是在信息不足的情况下做出的。


子主题一:量纲分析与费米估算

这道题的一种解法

拆解问题:燃油消耗 = 单位时间耗油 × 飞行时间

  1. 飞行时间:5 小时(题目给了)
  2. 单位时间耗油:不知道?没关系,从”常识”推:
    • 一辆汽车百公里耗油约 8 升,高速上约 120 km/h → 汽车每小时耗油约 10 升
    • 747 比汽车大得多、重得多、速度也快得多(约 900 km/h)
    • 粗略估:747 每小时耗油大约是汽车的 几百倍(不是几倍,也不是几万倍)
    • 取 300 倍 → 每小时约 3000 升
  3. 总耗油:3000 升/小时 × 5 小时 = 15000 升

实际答案:747 每小时耗油约 10000-12000 升,全程约 50000-60000 升。

我们的估算差了 3-4 倍——但数量级是对的(万升级,而不是千升或十万升)。

这就是费米估算的价值

在信息完全不足的情况下,得到”数量级正确”的答案。

请注意,费米估算追求的不是”精确”,而是”数量级正确”。因为:

  • “精确”需要数据,而数据往往拿不到(或者拿到太贵)
  • “数量级正确”只需要常识和简单的乘除,却能让你立刻排除掉荒谬的方案、做出正确的方向判断

量纲分析的核心步骤

  1. 拆解:把未知量拆成几个”你能估的”因子的乘积
  2. 估每个因子的数量级(只估 10 的幂次,不纠结精确值)
  3. 相乘,并检查量纲是否正确(升/小时 × 小时 = 升 ✓)

量纲检查是最容易被忽略、却最能救命的一步

如果你的公式算出来单位是”升×小时”而不是”升”,那公式一定错了。量纲就像一个免费的”语法检查器”——它不能告诉你答案对不对,但能立刻告诉你”公式一定错了”。

这个能力在工程里的价值,超出你的想象

  • 快速判断一个方案可不可行:“这个系统每秒要处理 100 万请求,单机撑得住吗?“——不用实测,估一下就知道
  • 快速定位荒谬的数字:当有人说”这个接口延迟 0.01ms”时,你立刻知道不对——因为一次网络往返至少要几十微秒
  • 在信息不足时做决策:架构评审时,没人给你精确数据,但你必须给出判断

一个帮助你理解”数量级正确”的类比:装行李

你要坐飞机,行李限重 20 公斤。你的行李箱很重,但你没有秤。

你不需要精确称出”23.4 公斤”,你只需要知道”是 20 公斤量级,还是 40 公斤量级”——如果是后者,你立刻知道”肯定超重了,得拿点东西出来”。

费米估算就是这种”不用秤也能判断超不超重”的能力。 工程里大多数决策,需要的恰恰是这种”数量级判断”,而不是”精确到小数点后两位”。


子主题二:第一性原理——回到不可再分的事实

第一性原理(First Principles) 是亚里士多德提出、被马斯克等人重新带火的概念。它的核心是:

不要用”类比”和”惯例”来思考,要回到”不可再分的基本事实”重新开始推理。

两种思维的对比

类比思维(大多数人默认用这个):

  • “别人都这么做” → 我们也这么做
  • “行业最佳实践是 X” → 我们用 X
  • “上次这么做的” → 这次还这么做
  • 优点:快、省力。缺点:只能产生”渐进改进”,无法产生突破;且当环境变化时,类比会失效。

第一性原理思维:

  • “这件事的物理/数学本质是什么?”
  • “如果去掉所有现成方案,从最基本的事实出发,我会怎么做?”
  • 优点:能产生突破性方案。缺点:慢、费脑力、需要真正理解底层。

经典案例(马斯克的电池)

  • 类比思维:“电池组很贵,历史上一直是 600 美元/千瓦时,未来也会这样”
  • 第一性原理:“电池的原料(钴、镍、铝、碳)在伦敦金属交易所值多少钱?”→ 算下来只有 80 美元/千瓦时。所以 600 美元不是物理限制,是制造工艺的问题,可以被大幅优化。

在工程里的应用

  • “这个服务为什么需要 8 台机器?” → 类比思维:“历史上一需要 8 台”。第一性原理:“它的 CPU/内存/IO 需求到底是多少?按这个算需要几台?”
  • “为什么用 MySQL?” → 类比思维:“大家都用”。第一性原理:“我们的访问模式是什么?读写比?一致性要求?按这些约束选什么最合适?”
  • “这个延迟能降到多少?” → 类比思维:“业界最好的是 X”。第一性原理:“物理下限在哪(网络往返、磁盘 IO)?我们离下限还有多远?“

第一性原理最实用的一个形式

不断追问”为什么”,直到无法再追问为止。 那个”无法再追问”的地方,就是基本事实。

一个帮助你理解”第一性原理 vs 类比”的类比:学做菜

  • 类比思维(照菜谱):菜谱说”放两勺盐”,你就放两勺。快,但换个菜、换个锅、换个口味偏好,你就懵了。
  • 第一性原理(懂原理):你知道”盐的作用是提鲜、压腥、平衡味道”,于是你根据食材的新鲜度、菜的种类、吃的人的口味,自己决定放多少。

照菜谱的人,只能做菜谱上有的菜;懂原理的人,能做出任何菜。 这就是类比思维和第一性原理思维的差距——前者是”复制别人已经验证过的路”,后者是”从底层重新推导出属于自己的路”。


子主题三:反证与归谬——证明”不可能”的力量

反证法(Proof by Contradiction):要证明 A 成立,先假设 A 不成立,推导出矛盾,从而证明 A 必须成立。

在思维模型里的价值

它让你能证明”某事不可能”,从而避免在不可能的事情上浪费时间。

经典案例:FLP 不可能结果(第 12 章讲过)

Fischer、Lynch、Paterson 证明了:在纯异步网络下,即使只有一个节点可能故障,也不存在总能终止的确定性共识算法。

这个”不可能性证明”的价值极大:它告诉所有人”别再找完美的共识算法了,不存在”——于是整个领域转向”在合理的同步性假设下设计算法”(Paxos、Raft 都是这个路子)。

反证法在工程里的实用形式

形式一:“假设这个方案可行,会推出什么荒谬结论?”

  • 假设”我们能做到既强一致又零延迟又低成本”→ 推出”信息论被违反”→ 所以不可能
  • 假设”这个算法能在 O(n) 时间内做通用排序”→ 推出违反比较排序的下界 O(n log n) → 所以不可能

形式二:“如果它是对的,那为什么别人没做?“(这不完全严格,但是个好的启发式)

  • 如果一个方案看起来”完美”,先怀疑:是不是忽略了什么代价?

形式三:构造反例

  • 要推翻”方案 X 总是正确”,只需要构造一个反例
  • 这是最快、最有力的反驳方式

一句话总结这个思维模型的价值

知道”什么是不可能的”,和知道”什么是可能的”一样重要——甚至更重要,因为它让你停止浪费。

一个帮助你理解”不可能性证明”的类比:知道”死路”

想象你在迷宫里,前面有十条岔路。你不知道哪条是出口,但有人告诉你:“第 3、5、7 条是死路,别走。”

光是这一条信息,就让你少走了 3 条弯路。 而 FLP 不可能性、比较排序下界这些”不可能性证明”,就是这种”死路标记”——它们不告诉你”该走哪条”,但告诉你”别浪费时间去试这条”。

工程里最贵的不是”没找到答案”,而是”在一个根本无解的方向上耗了几个月”。 反证法和不可能性证明的价值,就是帮你提前划掉那些”死路”。


子主题四:归纳与演绎——两种相反方向的推理

演绎(Deduction):从一般到特殊。

  • 前提:所有鸟都会飞;麻雀是鸟 → 结论:麻雀会飞
  • 特点:结论必然正确(只要前提对、推理对)
  • 工程应用:从”第一性原理”推导出具体方案

归纳(Induction):从特殊到一般。

  • 观察:我见过的 100 只天鹅都是白的 → 结论:所有天鹅都是白的
  • 特点:结论是”概然的”,可能被推翻(发现了黑天鹅)
  • 工程应用:从经验中总结规律、从数据中学习

这两种推理在工程里的正确用法

用归纳来”发现”,用演绎来”验证”。

  • 归纳:从多次故障中总结出”服务重启后经常出问题”(发现模式)
  • 演绎:从”重启后连接池未初始化”这个机制,推导出”所以会出问题”(验证因果)

归纳的经典陷阱(必须警惕)

陷阱一:幸存者偏差。 只看到”成功”的案例,忽略了”失败”的(因为失败者已经消失了)。

  • 例子:“那些成功的创业公司都加班,所以加班能成功” → 忽略了那些加班但倒闭了的公司

陷阱二:以偏概全 / 样本不足。

  • “我测了 3 次都是这个结果” → 3 次样本不足以支撑结论

陷阱三:相关性 ≠ 因果性。

  • “用了微服务的公司增长更快” → 可能是”增长快的公司才有资源搞微服务”,因果反了

陷阱四:确认偏误。 只注意支持自己观点的证据,忽略反驳的证据。

  • 防御:主动寻找”能推翻自己观点”的证据。

一个帮助你理解”相关性 ≠ 因果性”的类比:冰淇淋和溺水

夏天,冰淇淋销量上升,同时溺水事故也上升。所以吃冰淇淋会导致溺水? 当然不是。

真正的因果是”天气热”这个第三变量:天热 → 大家吃冰淇淋;天热 → 大家去游泳 → 溺水增多。 冰淇淋和溺水只是”相关”,不是”因果”。

工程里这种”伪因果”遍地都是:你上线了一个新功能,同时用户量涨了——是功能带来了增长,还是”增长期的公司”同时做了很多事?不做对照实验,你永远分不清。


子主题五:几个值得内化的思维模型清单

除了上面四个,还有一批”高复用”的思维模型,值得你放进工具箱:

1. 二八定律(Pareto Principle)

80% 的结果来自 20% 的原因。

  • 工程应用:80% 的延迟来自 20% 的代码路径;80% 的 bug 集中在 20% 的模块
  • 行动:找到那 20%,而不是平均用力

2. 边际收益递减

投入增加,产出增长越来越慢。

  • 工程应用:优化到最后 10% 的性能,可能要付出 90% 的成本
  • 行动:知道什么时候该停手

3. 机会成本

做 A 的成本,不只是 A 的代价,还包括”因此没做成的 B”。

  • 工程应用:“花两周优化 3% 的性能”的成本,是”这两周没做的其他事”
  • 行动:永远问”这笔时间花在别处收益是否更高”

4. 二阶思维(Second-Order Thinking)

不止想”然后呢”,还要想”然后再然后呢”。

  • 工程应用:“加个缓存会快,但会带来一致性问题(一阶),我们得处理不一致,这会增加复杂度(二阶),复杂度又会导致更多 bug(三阶)”
  • 行动:重大决策前,至少推演两层后果

5. 能力圈(Circle of Competence)

清楚知道自己”知道什么”和”不知道什么”。

  • 工程应用:用你不理解的技术栈,出问题时你无法排查(第 16 章的抽象泄漏)
  • 行动:对不熟悉的领域保持敬畏,或先补足基础

6. 可逆 vs 不可逆决策

贝索斯的分类法:

  • 可逆决策(做错了能改回来):快速试错,别过度分析
  • 不可逆决策(如数据模型、ID 方案、公开 API):慢下来,充分论证
  • 行动:把精力集中在不可逆决策上

7. 汉隆剃刀(Hanlon’s Razor)

“能解释为愚蠢的,不要解释为恶意。”

  • 工程应用:同事写出烂代码,大概率是能力/时间/信息的问题,不是故意的
  • 行动:先假设善意,减少无意义的敌意

这些清单的正确用法

单个模型有局限(“手里拿着锤子,看什么都像钉子”),所以真正的高手掌握多个模型并交叉验证。 芒格称之为”思维模型格栅”。

这七个模型,本质是七个”检查角度”: 面对一个决策,你可以问”关键的 20% 在哪”(二八)、“再投入还有收益吗”(边际)、“放弃了什么”(机会成本)、“两层后果是什么”(二阶)、“我真的懂吗”(能力圈)、“做错了能改吗”(可逆性)、“对方是傻还是坏”(汉隆)。


演进脉络

把”思维模型”这件事的演进串起来,你会看到一条”从少数天才的直觉,到可传授的方法”的主线。

  • 古希腊:亚里士多德提出第一性原理;欧几里得建立演绎体系(几何原本)。
  • 17 世纪:培根倡导归纳法和实验科学;笛卡尔倡导演绎和理性主义。
  • 19-20 世纪:科学方法论成熟(可证伪性,波普尔);统计学让归纳变得可靠。
  • 20 世纪中:费米用费米问题训练学生的估算能力;西蒙(Herbert Simon)研究”有限理性”和决策。
  • 1990s-2000s:Charlie Munger 推广”思维模型格栅”(Lattice of Mental Models)的概念——掌握多个学科的核心模型,交叉使用。
  • 现代:思维模型被系统整理和传播(《穷查理宝典》《思考,快与慢》《模型思维》);同时认知偏差清单(上百种)被系统研究。

主线:思维模型的价值,在于它们是”可复用的思考捷径”。单个模型有局限(“手里拿着锤子,看什么都像钉子”),所以真正的高手掌握多个模型并交叉验证——芒格称之为”思维模型格栅”。

这一章给你的不是”标准答案”,而是一个工具箱:遇到陌生问题时,试着用不同的模型去看它,往往某一个会突然让你看清结构。

一个统领全书的”元观察”

这一章和前面几章(尤其第 25、26 章)共同构成了全书的”元能力层”。它们之间的关系是:

  • 第 25 章(定义问题):教你”问对问题”。
  • 第 26 章(找瓶颈):教你”找到关键”。
  • 第 27 章(思维模型):给你”思考的工具”——量纲分析帮你估算、第一性原理帮你回到本质、反证帮你排除死路、归纳演绎帮你发现和验证。

这三章合起来,回答的是同一个问题:当系统复杂到超出直觉,你靠什么保持清醒? 答案是:靠方法(定义问题、找瓶颈)、靠工具(思维模型)、靠数据(量化、剖析)——而不是靠”感觉”。


本章思考题

【思考题】

  1. 什么是费米估算和量纲分析?为什么说”数量级正确”在工程里已经很有价值?

  2. 第一性原理和类比思维的区别是什么?请举一个用第一性原理突破”行业惯例”的例子。

  3. 反证法和”不可能性证明”有什么工程价值?请举一个例子。

  4. 归纳推理的四个陷阱是什么?请说明”幸存者偏差”和”相关性≠因果性”。

  5. “思维模型格栅”为什么重要?为什么单个模型有局限?

【参考答案】

  1. 费米估算:在信息完全不足时,把未知量拆解成几个”能估的因子”相乘,只估数量级(10 的幂次),得到数量级正确的答案。量纲分析:检查最终结果的单位是否正确(如升/小时 × 小时 = 升),单位不对则公式必错(量纲是免费的”语法检查器”)。工程价值:快速判断方案可行性、识别荒谬数字(如”接口延迟 0.01ms”——一次网络往返至少要几十微秒,立刻知不对)、在信息不足时仍能决策(架构评审时没有精确数据也必须给判断)。类比装行李:不需要精确称出 23.4 公斤,只需要知道”是 20 还是 40 公斤量级”。

  2. 类比思维:用”别人都这么做""行业惯例""上次这么做”来决策,快但只能产生渐进改进,且环境变化时会失效(类比照菜谱:只会做菜谱上的菜)。第一性原理:回到不可再分的基本事实重新推理,能产生突破但慢且费脑力(类比懂原理:根据食材新鲜度自己决定放多少盐)。例子:电池成本——类比认为”历史上一直 600 美元/千瓦时,未来也如此”;第一性原理问”原料在交易所值多少钱”,算出仅 80 美元/千瓦时,证明 600 不是物理限制而是工艺问题,可以被大幅优化。

  3. 反证法/不可能性证明的价值:知道”什么不可能”和知道”什么可能”同样重要,甚至更重要——因为它让你停止浪费(类比迷宫里的”死路标记”:不告诉你该走哪条,但告诉你别浪费时间去试这条)。例子:FLP 不可能结果证明”纯异步网络下不存在总能终止的确定性共识算法”,这告诉整个领域”别再找完美共识算法了”,于是转向”在合理同步性假设下设计”(Paxos/Raft 都是这条路)。实用形式:假设方案可行推出荒谬结论、构造反例推翻”总是正确”的声称。

  4. 四个陷阱:幸存者偏差(只看到成功案例,忽略已消失的失败者,如”成功的创业公司都加班”忽略加班却倒闭的)、以偏概全/样本不足(“测了 3 次都这样”样本太少)、相关性≠因果性(“用微服务的公司增长更快”可能是增长快才有资源搞微服务,因果反了;类比冰淇淋和溺水都是”天气热”这个第三变量导致)、确认偏误(只注意支持自己的证据,防御是主动寻找能推翻自己观点的证据)。归纳的正确用法:用归纳”发现”模式,用演绎”验证”因果。

  5. 思维模型格栅重要,因为单个模型有局限——“手里拿着锤子,看什么都像钉子”,任何单一模型都会让你带着偏见看世界,把不符合模型的问题硬套进模型。真正的高手掌握多个学科的多个核心模型,交叉验证:一个模型看不清的,换一个模型可能豁然开朗。这七个模型本质是七个”检查角度”(二八、边际、机会成本、二阶、能力圈、可逆性、汉隆),面对决策时用不同角度去照,往往某一个会让你看清结构。这也是全书元能力层的收尾:靠方法+工具+数据保持清醒,而非靠感觉。