横向思维
本章目标:打破固有思维模式,学会从意想不到的角度解决问题。
题型特点
横向思维(Lateral Thinking)由爱德华·德博诺提出,与传统的"垂直思维"(逻辑推导)相对。这类题的特点是:常规逻辑走不通,你需要跳出框架,重新审视问题的隐含假设。
常见出题形式:利用物品的非常规属性、重新定义问题边界、从物理世界而非数学世界找答案。解题关键是问自己:"我在这个问题里做了哪些隐性假设?这些假设是否必要?"
为什么面试官爱考
- 考察创造性:能否打破常规、找到非典型解。
- 考察心理灵活性:被否定后能否调整思路。
- 考察对默认假设的觉察:识别并质疑"理所当然"。
- 考察类比能力:能否把已知的解决方案迁移到新场景。
思维陷阱速查
功能固着(Functional Fixedness)
只看到物品的常规用途。例如"图钉盒是用来装图钉的"——但其实盒子可以是托盘、支撑物、原料。
破解:对每个物品问"它还能是什么?"
维度固着
默认问题在某个维度。例如"火柴拼三角形"——默认在平面,但三维空间才是关键。
破解:问自己"如果允许升维/降维会怎样?"
假设固着
不质疑题目中的隐含假设。例如"水从杯中溢出"——假设杯子是满的,但题目可能没说。
破解:列出所有"理所当然"的前提,逐条审视。
目标固着
只盯着题目字面目标,忽略更深层的"真实需求"。
破解:问"用户/对方真正想要的是什么?"
题目 1:蜡烛问题(邓克尔蜡烛实验)
题面
给你三样东西:一根蜡烛、一盒图钉、一盒火柴。你的任务是把蜡烛固定在墙上(木质墙板),让蜡烛燃烧时蜡油不会滴到下面的地板上。你会怎么做?
拆解与思考
常规思维:
- 用图钉把蜡烛直接钉在墙上?蜡烛会碎。
- 用融化的蜡粘?不够牢固,会掉。
- 把蜡烛插在火柴盒上?火柴盒在地板上,仍会滴。
打破功能固着:关键洞察在于——图钉不仅是图钉,图钉盒本身也是资源。
把图钉盒倒空,用图钉把盒子钉在墙上,盒子变成了一个小托盘/烛台。然后把蜡烛放在盒子里点燃,蜡油滴进盒子里,不会落到地板上。
答案
倒空图钉盒,用几根图钉把盒子固定在墙上充当烛台,蜡烛立在盒中点燃。
心理学背景
这个实验是格式塔心理学家邓克尔(Karl Duncker)在 1945 年设计的,研究功能固着——人们很难看到物品超出其常规用途的功能。
关键变量:实验中如果图钉盒是空的(提前倒出),解出率显著提高。因为盒子的"容器"身份被弱化,"材料"身份得以显现。
延伸
现实应用:
- 产品创新:把废弃的副产物变成主产品(如 3M 便签纸源于失败的胶水)。
- 服务设计:把"等待时间"变成"娱乐时间"(迪士尼排队设计)。
- 代码复用:把"工具类"重新组合为新功能(适配器模式)。
题目 2:鸡蛋掉落问题
题面
一栋 50 层楼。你有 2 个完全相同的鸡蛋。已知存在一个临界楼层 F(0 ≤ F ≤ 50):鸡蛋从高于 F 层丢下会碎,从 F 层及以下丢下不碎。你需要找到 F 的确切值。问:最少需要丢几次鸡蛋?(最坏情况下)
拆解与思考
错误思路——纯二分:每次从中间层试,类似二分查找。第一次从 25 楼丢,如果碎了,只剩 1 个鸡蛋,必须从 1 楼开始逐层试。最坏情况需要 25 次。不理想。
正确思路——动态规划/均匀分布策略:
核心思想:让每次试验的最坏情况都相同。
设最多丢 x 次。第一个鸡蛋从第 x 层丢:
- 如果碎了,第二个鸡蛋从第 1 层开始逐层试,最多 x-1 次 → 总共 x 次。
- 如果没碎,第一个鸡蛋从第
x + (x-1)层丢(再往上少 1 层,弥补已用的 1 次)。 - 如果碎了,第二个鸡蛋在区间内逐层试,最多 x-2 次 → 总共还是 x 次。
- 继续递推:
x + (x-1) + (x-2) + ... + 1 ≥ 50
求最小的 x 使 x(x+1)/2 ≥ 50:x(x+1) ≥ 100。x=10 时 10×11 = 110 ≥ 100 ✓。
答案
最少需要 10 次。测试楼层序列:10, 19, 27, 34, 40, 45, 49, 50(第一个鸡蛋),如果碎了,第二个鸡蛋在碎的区间逐层试。
推广:n 层楼 k 个鸡蛋
动态规划:dp[k][m] = 最多用 k 个鸡蛋、m 次试验能测的最大楼层数。
递推:dp[k][m] = dp[k-1][m-1] + dp[k][m-1] + 1
dp[k-1][m-1]:鸡蛋碎了,剩 k-1 个蛋、m-1 次试验,能测的下方楼层数。dp[k][m-1]:鸡蛋没碎,剩 k 个蛋、m-1 次试验,能测的上方楼层数。+1:当前这一层。
def superEggDrop(K, N):
dp = [[0] * (K + 1) for _ in range(N + 1)]
for m in range(1, N + 1):
for k in range(1, K + 1):
dp[m][k] = dp[m-1][k-1] + dp[m-1][k] + 1
if dp[m][K] >= N:
return m
return -1横向思维的精髓
这道题表面是数学优化,实则是重新定义"成本":从"次数最少"到"最坏情况最少"。这是从平均到最差的视角转换。
工程意义:分布式系统中的"最坏情况延迟优化"、缓存策略中的"最小化最大查询"。
题目 3:6 根火柴拼 4 个等边三角形
题面
给你 6 根等长的火柴,要求拼出 4 个等边三角形。每个三角形的边长等于一根火柴的长度。怎么做?(火柴不能折断、不能弯曲)
拆解与思考
二维思维:在平面上,6 根火柴最多拼 2 个等边三角形(共用一条边),或者拼一个平行四边形+一个三角形。4 个三角形怎么也拼不出来。
打破维度:为什么限制在平面上?如果站起来,在三维空间中考虑——正四面体(tetrahedron)恰好有 4 个面,每个面是等边三角形,共 6 条棱。
答案
拼成一个正四面体(三角锥)。底面一个三角形(3 根火柴),上面三条棱各 1 根火柴(共 3 根),总计 6 根火柴,构成 4 个等边三角形面。
延伸
类似升维题:
| 题目 | 二维错觉 | 三维解 |
|---|---|---|
| 6 根火柴拼 4 个三角形 | 平面无解 | 正四面体 |
| 12 根火柴拼 6 个正方形 | 平面 3 个正方形 | 立方体 |
| 9 个人站 10 排,每排 3 人 | 平面无解 | 三维星形 |
| 切蛋糕 3 刀 8 块 | 平面 7 块 | 水平横切 |
通则:当低维看似无解时,问"加一维会怎样"。
题目 4:为什么井盖是圆的?
题面
为什么绝大多数井盖是圆形的,而不是方形、三角形或其他形状?
拆解与思考
经典答案:圆形井盖不会掉进井里。圆的每一条直径相等,无论怎么旋转、怎么放,最窄处都等于直径,所以无法从井口掉下去。而方形井盖沿对角线方向可以掉下去(对角线 > 边长),三角形同理。
额外优点:
- 圆形没有尖角,受力均匀,不易碎裂(铸铁材料的最佳形状)。
- 圆形井盖搬运方便——可以滚动。
- 圆柱形井壁施工最简单(钻挖设备天然旋转切削出圆形截面)。
- 不需要精确对齐方向就能盖上(旋转对称)。
- 圆形在承受圆周方向压力时最稳定(窖井的受力主要来自土压力)。
答案
核心原因:圆形是等宽曲线,任何方向的宽度相同,井盖不会掉入井口。这是微软等公司的经典面试题。
等宽曲线
有趣的延伸:等宽曲线不只有圆!
Reuleaux 三角形(鲁洛克斯三角形):以等边三角形三个顶点为圆心、边长为半径画三段圆弧组成的"曲边三角形"。它也是等宽曲线,理论上也可以做井盖,但制造更复杂。
![]()
应用:
- 转子发动机(马自达 RX-8)的三角转子。
- 比特币的"防伪"形状。
- 钻方形孔的特殊钻头。
工程意义
设计时要考虑:安全性 > 制造成本 > 维护便利。圆形在三者中都占优,所以成为行业标准。
题目 5:给一杯水称重
题面
桌上有一杯水,放在秤上。你拿一根手指伸进水里(不碰杯底、不碰杯壁),秤的读数会变化吗?
拆解与思考
直觉:手指没有碰杯子,没有施加力,读数不变?
物理分析:根据阿基米德原理,手指浸入水中会排开一定体积的水,水对手指产生向上的浮力。
根据牛顿第三定律(作用力反作用力),手指对水施加等大反向的力——向下压水。
这个力通过水传递到杯底,再传到秤上。
因此秤的读数会增加,增量恰好等于手指受到的浮力大小(即排开水的重量)。
答案
秤的读数会增大。增大量 = 手指排开水的重量(浮力)。
定量计算
手指浸入体积 V = 50 cm³(约一根手指的体积)。
水的密度 1 g/cm³,排开水质量 50 g = 0.05 kg。
秤读数增加约 0.05 kg × 9.8 ≈ 0.49 N(约 50 克力)。
延伸
类似的反直觉物理题:
气球在加速行驶的车里:往哪个方向飘?
- 直觉:惯性使气球向后。
- 真相:向前。空气因惯性向后聚集,后部气压高,把轻的气球推向前。
冰块浮在水杯里融化:水面上升还是下降?
- 答案:不变。冰排开水的重量等于自身重量,融化后体积正好填满原排开空间。
稳态转动的螺旋桨:在水中与空气中哪个转速更快?
- 答案:水中慢(水的阻力大),但水中推力更大(密度大)。
题目 6:把圆蛋糕切成 8 等份
题面
一个圆形蛋糕,只能切 3 刀(直线切),切成 8 块大小相等的 piece。怎么切?
拆解与思考
二维思维:在平面上切 3 刀最多 7 块(每刀增加的区域有限),而且大小不一。
横向思维:先竖直交叉切两刀(十字切),得到 4 个相等的扇形。第三刀从水平方向横切——把蛋糕从中间切成上下两层。4 × 2 = 8 块。
答案
先十字切两刀(竖直方向),再水平方向从蛋糕中间横切一刀。8 块等大的蛋糕。
前提条件
这个解法假设蛋糕有厚度(不是 2D 圆)。如果蛋糕是平面的(如披萨饼),3 刀最多 7 块。
平面 3 刀切圆的最多块数:第 1 刀 2 块,第 2 刀最多 4 块,第 3 刀最多 7 块。公式 n(n+1)/2 + 1。
延伸
很多横向思维题的共同模式:在低维看似无解时,考虑利用高维(三维切蛋糕、三维火柴、反方向使用工具)。
题目 7:点燃灯泡(三开关问题)
题面
房间外有 3 个开关,房间内有 3 个灯泡。你在房间外看不到里面。允许你进入房间一次,如何确定每个开关对应哪个灯泡?
拆解与思考
朴素思路:开一个开关进去看?只能确定一个对应关系。
关键洞察:灯泡除了"亮/不亮"还有第三个属性:温度(热的、温的、冷的)。
策略:
- 打开开关 A,等 5 分钟(让灯泡热起来)。
- 关闭开关 A,立即打开开关 B。
- 进入房间:
- 亮的灯泡对应 B。
- 不亮但热的灯泡对应 A。
- 不亮且冷的灯泡对应 C。
答案
利用灯泡的温度作为第三个状态变量,3 个开关可在一次进入后全部识别。
横向思维点
利用题目未明示但确实存在的物理属性。这种思路在工程中很常见:
- LED 灯的亮度和色温都可以承载信息。
- 网络延迟可以反映网络拓扑。
- CPU 缓存命中/未命中可以泄露信息(侧信道攻击)。
延伸
变体题:100 个开关、100 个灯泡,进入一次。能否全部识别?
利用等待时间差:开 1 号 100 分钟,关掉;开 2 号 99 分钟;…… 进入后用温度计精确测温,可全部识别。这是用连续变量承载信息的思路。
题目 8:用尺子量 4 加仑水
题面
给你一个 3 加仑桶和一个 5 加仑桶(都无刻度),以及无限水。如何量出恰好 4 加仑水?(电影《虎胆龙威 3》经典题目)
拆解与思考
操作类型只有四种:
- 装满任一桶。
- 倒空任一桶。
- 把一桶的水倒入另一桶(直到源头空或目标满)。
- 任意时刻停。
方法一(先装满 5):
- 装满 5 加仑桶 →
(5, 0)。 - 把 5 倒入 3 →
(2, 3)。 - 倒空 3 加仑桶 →
(2, 0)。 - 把 5 中的 2 倒入 3 →
(0, 2)。 - 装满 5 加仑桶 →
(5, 2)。 - 把 5 倒入 3(3 桶只能再装 1)→
(4, 3)。 - 此时 5 加仑桶中正好有 4 加仑。
方法二(先装满 3):
- 装满 3 →
(0, 3)。 - 倒入 5 →
(3, 0)(5 桶有 3)。 - 再装满 3 →
(3, 3)。 - 倒入 5(5 桶只能再装 2)→
(5, 1)(5 满,3 剩 1)。 - 倒空 5 →
(0, 1)。 - 把 3 中的 1 倒入 5 →
(1, 0)。 - 装满 3 →
(1, 3)。 - 倒入 5 →
(4, 0)(5 桶中正好 4)。
答案
两种方法都可量出 4 加仑水,方法一 6 步,方法二 8 步。
数学背景
贝祖定理:给定两个互素的整数 a、b,存在整数 x、y 使得 ax + by = c(c 为任意整数)。
3 和 5 互素,所以任何 1-8 加仑的水都能量出(最大 3+5=8)。
如果两个桶容量不互素(如 4 和 6),只能量出 gcd(4,6)=2 的倍数,即 2、4、6 加仑。
一般算法(BFS 搜索状态空间)
from collections import deque
def water_jug(a, b, target):
"""求 a, b 两桶量出 target 加仑的最少步数"""
start = (0, 0)
queue = deque([(start, [])])
visited = {start}
while queue:
(x, y), path = queue.popleft()
if x == target or y == target:
return path
for state, op in [
((a, y), f"装满 A"), ((x, b), f"装满 B"),
((0, y), f"倒空 A"), ((x, 0), f"倒空 B"),
((x - min(x, b - y), y + min(x, b - y)), f"A→B"),
((x + min(y, a - x), y - min(y, a - x)), f"B→A"),
]:
if state not in visited:
visited.add(state)
queue.append((state, path + [op]))
return None题目 9:电梯里的镜子
题面
为什么大部分电梯在门内对面墙上安装镜子?
拆解与思考
常见答案:
- 让电梯看起来更大(视觉扩展)。
- 方便乘客整理仪容。
- 增加照明反射。
真实的横向思维答案:
主要原因是为坐轮椅的残障人士设计——他们进入电梯后是面向电梯内部,倒车出去时无法回头看,镜子让他们能看到身后门何时打开、外面是哪层。
辅助作用:
- 减少拥挤时的视线对视尴尬。
- 让人有事可做(看镜子),降低"被关起来"的焦虑。
- 安全监控(镜子里能看到背后情况)。
答案
核心原因:无障碍设计,让轮椅用户能从镜子中看到电梯门和楼层指示。
横向思维点
真正的设计动机往往不是表面看到的"美观",而是深层用户需求。优秀设计兼顾多种用户场景。
延伸
类似"看似简单实则有深意"的设计:
- 地铁盲道:常人觉得多余,对视障人士是必需。
- 机场长走道:让人有事可走,缓解焦虑。
- 医院墙壁颜色:影响心理状态,加速康复。
题目 10:天平 12 球问题
题面
有 12 个外观相同的球,其中 1 个重量异常(不知偏重还是偏轻)。用天平称 3 次,找出异常球并说明它是重还是轻。
拆解与思考
信息论视角:12 球 × 2 状态(重/轻)= 24 种可能。每次称量 3 种结果(左倾/右倾/平衡),3 次称量最多 3³ = 27 种结果。信息量足够(27 > 24)。
分组策略:12 球分 3 组,每组 4 个。第一次称:4 vs 4。
情况 1:天平平衡
- 异常球在剩下的 4 个中。已知 8 个标准球。
- 第二次称:3 个嫌疑球 vs 3 个标准球。
- 平衡:剩下 1 个嫌疑球,第三次和标准球比即可。
- 不平衡:3 个嫌疑球且已知偏重还是偏轻。第三次称其中 2 个:1 vs 1,平衡则第三个异常,不平衡则按已知重/轻方向判断。
情况 2:天平不平衡
- 4 个嫌疑"重球"(左),4 个嫌疑"轻球"(右),4 个标准。
- 第二次称(巧妙组合):左 3 + 右 1 vs 左 1 + 标准 3。
- 详细组合需要仔细推导,原理是让信息最大化。
- 第三次称缩小到 ≤ 3 种可能,全部可解。
完整推导较长,关键思想是:每次称量尽量让三种结果对应的可能性数量相等(信息熵最大化)。
答案
3 次称量可以找出异常球并判断重轻。具体策略需精心设计。
推广
| 球数 | 异常球数 | 称量次数 |
|---|---|---|
| 3 | 1(不知重轻) | 2 |
| 12 | 1(不知重轻) | 3 |
| 13 | 1(不知重轻) | 3(已知额外标准球) |
| 39 | 1(不知重轻) | 4 |
公式:n 次称量最多分辨 (3ⁿ - 3) / 2 球。
工程意义
信息论 + 算法设计。每次操作的信息量要最大化,这是高效算法的本质。二分查找是 2 种结果(小于/不小于),三分查找是 3 种结果,效率更高。
题目 11:两扇门与两个守卫
题面
两扇门:一扇通往天堂,一扇通往地狱。两个守卫:一个永远说真话,一个永远说谎。你不知道哪个是哪个,也不知道哪扇门通往天堂。你只能问一个问题,如何确保走对门?
拆解与思考
核心难点:你不知道谁说真谁说谎,所以直接问"哪扇门通天堂"无法判断答案真假。
关键技巧——嵌套问题:让两个守卫的回答在嵌套结构下变得一致。
经典问题:问任一守卫:"如果我问另一个守卫哪扇门通天堂,他会怎么回答?"
分析:
- 问到说真话的守卫:他知道说谎者会指向地狱门,如实转述 → 指向地狱门。
- 问到说谎的守卫:他知道说真者会指向天堂门,但他说谎 → 指向地狱门。
两种情况下,得到的答案都是地狱门!所以反着走即可。
答案
问任一守卫:"如果我问另一个守卫哪扇门通天堂,他会指哪扇?" 得到的答案是地狱门,走另一扇。
横向思维点
通过双层嵌套让两个守卫的回答"在符号上抵消"。这是逻辑题中的"双蕴含"技巧,也是布尔逻辑中的"双重否定"。
等价简化
更简洁的问法:问任一守卫 "如果我问你哪扇门通天堂,你会指哪扇?"
- 说真者:直接指向天堂门。
- 说谎者:本来会撒谎指地狱,但要对"自己会怎么回答"再撒一次谎 → 双重否定 → 指向天堂门。
两种情况都指天堂门,直接走即可!
延伸
类似的双蕴含技巧用于:
- 密码学:双重加密抵消密钥偏差。
- 博弈论:让对手"自相矛盾"的机制设计。
- 问卷设计:用反向问法抵消应答者倾向。
题目 12:曼哈顿有多少钢琴键?
题面
估算曼哈顿所有钢琴上的琴键总数。
拆解与思考
这其实是费米估算,但横向思维点在于:不要被"钢琴"限制住——每个钢琴都有 88 个键(标准),所以琴键总数 = 钢琴数 × 88。
估钢琴数:
- 曼哈顿人口约 160 万。
- 家庭户约 80 万。
- 钢琴拥有率约 5%(中产及以上家庭)→ 4 万架家庭钢琴。
- 加学校、教堂、酒吧、音乐厅等约 1 万架。
- 总计约 5 万架钢琴。
琴键总数:50000 × 88 = 440 万个琴键。
答案
曼哈顿约 4-5 百万个琴键。
横向思维点
题目看似复杂,关键洞察是简化:不要估"键数",先估"琴数",乘以常数 88 即可。
工程意义:复杂问题先找不变量和乘法分解。
题目 13:100 楼扔两个鸡蛋(变体)
题面
如果鸡蛋数从 2 变成 100(即几乎可以随便碎),最少几次试验?
拆解与思考
横向思维:100 个鸡蛋 = "几乎可以二分查找"。
每次从中间层试:如果碎了,扔一个鸡蛋;如果不碎,继续二分。
但每次碎会少 1 个鸡蛋,所以是"二分 + 限额"。100 层 100 鸡蛋,实际只需 log₂100 ≈ 7 次。
答案
约 7 次(二分查找)。
延伸
| 鸡蛋数 | 最少试验次数(50 层) |
|---|---|
| 2 | 10 |
| 3 | 7-8 |
| 10 | 5-6 |
| 100 | 7 |
鸡蛋越多,越接近 log₂(n) 的二分查找下界。
题目 14:用一根绳子计时 15 分钟
题面
给你两根绳子,每根都不均匀(粗细不一),从一头烧到另一头恰好 1 小时(但中间速度不匀)。如何用这两根绳子精确计时 45 分钟?
拆解与思考
关键洞察:从两头同时点燃,绳子烧完恰好 30 分钟(不管中间怎么烧)。
理由:从一头烧要 60 分钟。两头同时烧,烧的总速率是 2 倍,但相遇的时刻正好是总"燃烧量"的一半,对应时间 30 分钟。
操作:
- 同时点燃绳子 A 的两头和绳子 B 的一头。
- 30 分钟后,绳子 A 烧完。此时绳子 B 还剩 30 分钟的"燃烧量"。
- 立即点燃绳子 B 的另一头。
- 绳子 B 在 15 分钟后烧完(剩余燃烧量减半)。
总时间:30 + 15 = 45 分钟。
答案
点燃 A 两头 + B 一头;A 烧完时点燃 B 另一头;B 烧完时即 45 分钟。
推广
变体:3 根绳子计时 1 小时 22.5 分钟?
- A 两头 + B 一头 + C 不动 → A 30 分钟烧完。
- A 烧完后,B 还剩 30 分钟,点燃 B 另一头 → B 15 分钟烧完。
- B 烧完后,C 是完整的,点燃 C 两头 → C 30 分钟烧完。
总时间:30 + 15 + 30 = 75 分钟(1 小时 15 分)。
要再得 7.5 分钟,需在 B 烧完时点燃 C 一头,过 7.5 分钟再点燃另一头……灵活组合。
工程意义
并行 vs 串行:两头同时烧 = 并行,时间减半。这是分布式计算的物理版。
解题模板(总结)
通用流程
- 识别隐含假设——列出所有你以为"理所当然"的前提。
- 逐个质疑假设——如果去掉这个假设会怎样?
- 换维度思考——2D→3D,正面→反面,整体→部分。
- 重新定义工具——物品的每个属性都是资源(盒子不只是容器)。
- 物理世界思维——有些"数学"题的答案在物理世界(浮力、重力、温度)。
- 逆向提问——"为什么不能?"而不是"怎么才能?"
信号清单
| 题面信号 | 横向思路 |
|---|---|
| "火柴/绳子/物体拼 X" | 升维(3D、折叠、共边) |
| "为什么 Y 是这个形状?" | 等价类、对称性、安全性 |
| "最少几次试验?" | 信息论下界、状态空间 |
| "进入一次 / 只问一次" | 嵌套问题、状态承载 |
| "称量 / 比较" | 三分查找、信息熵最大化 |
| "物品的非常规用途" | 功能固着的破解 |
| "物理直觉题" | 牛顿定律、阿基米德原理 |
| "嵌套条件" | 双蕴含、双重否定 |
常见陷阱
- 被表面规则束缚:题目没说不允许的事,就可以做。
- 维度固着:默认在 2D,忽略 3D 可能性。
- 功能固着:只看物品的常规用途。
- 目标固着:盯着字面目标,忽略真实需求。
- 过度复杂化:简单解往往被忽略。
- 不质疑假设:默认"杯子是满的""鸡蛋必须留一个"等。
延伸阅读
书籍
- 《Lateral Thinking》— Edward de Bono,横向思维概念创始人的经典著作
- 《The Matchbox That Ate a Forty-Two-Year-Old Woman》— 横向思维案例集
- 《Six Thinking Hats》— Edward de Bono,六顶思考帽法
- 《The Power of Innovative Thinking》— Jim Wheeler
- 《Fixed: How to Perfect the Fine Art of Problem Solving》— Amy Herman
文章与实验
- Duncker's Candle Problem — Wikipedia
- Functional Fixedness — APA Dictionary
- The Nine Dot Problem — "Think outside the box" 的来源