先说说结论,催婚的长辈是不可能讲明白为啥要 25 岁前。我替他们算一遍。
把"一个男生认真考虑恋爱"的窗口期粗略设成 18~35 岁,共 17 年。
代入 1960 年由数学家 Merrill Flood 提出的"秘书问题"最优解------通俗叫法是 37% 法则------你应该先只看不选前 37% 的时间,记住这段时间里遇到的最好的那个;然后从第 37% 开始,遇到第一个比之前所有人都更好的,立刻拍板。
观察期 = 17 × 0.37 ≈ 6.3 年
拐点 = 18 + 6.3 ≈ 24.3 岁
也就是说:
- 24 岁以前:在收集样本、建立标准的阶段,遇到再好的也不该锁死。
- 24.3 岁之后:进入决断窗口,遇到一个超过你过去 6 年所有人的,立刻 commit。
- 拖到 30 岁还在挑更好的:大概率会被迫接受最后一个出场的人------也就是窗口期内的"最后一根稻草"。
"25 岁前找对象"这句话翻译过来是在说:25 岁前你应该已经做完观察、开始认真挑了。
数学是怎么把 25 岁这个数字钉死的
为了让这件事可信,我把演算和模拟都做了一遍,数据全部来自我自己写的一个交互式模拟器:
🔗 numfeel.996.ninja/pages/optim... (你可以直接打开亲手跑)

第一步:把 N=17 代入公式
秘书问题最优跳过数的公式:
我用 demo 里的 theoreticalOptimalR(17) 直接算了一遍:
| 参数 | 数值 |
|---|---|
| N(窗口期年数) | 17 |
| 最优跳过 r | 6 年 |
| 占比 | 35.3%(接近理论的 1/e ≈ 36.8%) |
| 对应年龄拐点 | 18 + 6 = 24 岁 |
| 理论选到"最佳"的概率 | 38.73% |
注意第三行。N 是离散整数,跑出来 35.3% 比 36.8% 略小一点,对应拐点正好压在 24 岁------这就是知乎/微博上那句"25 岁前"的数学版本。如果你愿意把窗口期开到 18~36(17→18 年),拐点会精确推到 24.6 岁。怎么调都跑不出 25 岁这个量级。
第二步:跑两万次模拟,看真实成功率
光看公式不够,我用模拟器的 Tab 2 直接跑了 N=20、两万次蒙特卡洛。

结果:
| 策略 | 选到最佳的概率 |
|---|---|
| 37% 法则 | 38.52% |
| 随机选一个 | 5.15% |
| 立刻选第一个出现的 | 5.04% |
| 一直等到最后被迫选 | 5.12% |
37% 法则的命中率是其它三种"瞎搞"策略的约 7.5 倍。
如果你觉得 N=20 太多,把 N 拉到 10(一辈子只认真考虑 10 个人),结果一样有效:
| 策略 (N=10, 20000 次) | 成功率 |
|---|---|
| 37% 法则 | 40.16% |
| 随机选 | 9.78% |
| 选第一个 | 9.93% |
| 等到最后 | 9.84% |
注意 N=10 时观察期 r=4,拐点也在 18+(4⁄10)×17 ≈ 24.8 岁,依然是 24~25 之间。
第三步:用参数扫描验证"24~25 岁"这条线不是巧合哦
模拟器的 Tab 3 会把跳过比例从 0% 扫到 100%,画一条成功率曲线。

我跑了 N=17、每个点 5000 次的扫描,截取关键比例:
| 跳过比例 | 实测成功率 |
|---|---|
| 0%(碰到就选) | 5.8% |
| 10% | 28.0% |
| 20% | 32.5% |
| 30% | 36.5% |
| 36%(理论最优) | 39.1% |
| 40% | 38.5% |
| 50% | 35.4% |
| 60% | 32.4% |
| 80% | 16.4% |
峰值精确落在 36~42% 区间,曲线两端塌得很快。跳过太少,你连基准线都没建立好,标准等于乱猜;跳过太多,最好的那个已经走完了,你只能在剩下的次品里挑。
把这条曲线和"24~25 岁"对照一下:18 岁起算,36% 对应 24.1 岁,40% 对应 24.8 岁。曲线峰值这段平台期,刚好覆盖了所有人嘴里说的"二十四五岁"。
为什么是 1/e,不是 1/2?
很多人第一反应是"看一半再选不就好了"。问题在于 50% 这一格我也跑了------成功率掉到 35.4%。
观察期太短,基准线偏低,容易把"第 7 名的人"当成"全场第 1"。观察期太长,"全场最佳"很可能已经在你观察期内出场了,后面你再也碰不到比 ta 更好的,被迫顺延到最后一个垃圾桶。对照一下现实可以说是非常真实了。
1/e 这条线把两边的风险压到一样大。这个模型最后给出来的最优策略只有这一条------告诉你信息收集和行动窗口的最佳切换点。
但是!但是要来了,现实修正:哪些假设会让"24.3 岁"漂移?
理想很丰满,现实很骨感。
-
候选人不是均匀出场。 校园池子和职场池子的整体质量分布完全不同。换环境本身就在改变 N 和你的样本分布------这也是为什么有人 22 岁就遇到对的人,有人 32 岁还在等。
-
"不能回头"是硬假设。 现实里前任能复合,被你跳过的人可能还在原地等。所以 24.3 岁这条线并不是死线。但它告诉你一件事:你拖得越久,回头率越低。
-
目标到底是"最好的"还是"够好的"? 经济学家 Herbert Simon 提出过 satisficing(够好就行)。如果你接受 80 分而非 100 分,最优观察期会缩短------大概 22 岁前后就该开始定。所以"宁缺毋滥"的人,反而要等到 24~25 岁。要求越高,越要给观察期留够时间。
-
N 是你猜的。 没人知道一生会认真考虑几个人。但只要 N 落在 5~30 这个合理范围,跳过比例都在 33%
40% 之间晃,拐点都被锁在 2325 岁。这个区间硬到让人不舒服。
如果你现在 24 岁以下?
那么你可以按照下面的方法去评估
- 把评分维度真正建起来。颜值、身高、收入是表层 feature。真正决定长期匹配度的是"和这个人相处一年后,我变好了还是变差了"。这种东西需要时间样本。
- 拓宽样本多样性。同质化的池子会扭曲你的基准线。校园谈、社团谈、朋友介绍谈、工作后再谈------每一段都在校正你的标尺。
- 认真复盘。每个交往超过 3 个月的人,事后写下"ta 让我学到的"和"我不能接受的"。这就是你 24 岁那道分界线之前的训练数据。
过了 24.3 岁,规则变了:
- 看到一个让你觉得"比过去几年所有人都更对劲"的人------别再拖了。
- "再看看会不会更好"是这个模型里最经典的失败模式。模拟器告诉你,越往后等,你接触到比当前更好的人的概率就越低,最后多半会被迫选到末尾那个。
现实极低概率出现傻白甜白富美爱上穷小子、沙特阿拉伯王子爱上当保洁的穷姑娘


当然最后,你自己来demo玩玩就知道这个定律有多有效了
我加了一个"择偶情境"开关,可以切换到"看女生 / 看男生"模式,候选人会显示成 12 种风格的卡通头像 + "心动指数",体验上更贴近真实择偶场景。但底层算法和数学是同一套------换汤不换药,因为渣男会骗人,但是数学不会骗人
🔗 numfeel.996.ninja/pages/optim...
