🧩 每日思维趣题 | 第 006 期:毒酒与囚徒

🧩 每日思维趣题

每天一道原创思维题 · 让大脑保持活力

📅 2026 年 4 月 8 日 · 第 006 期


📖 题目

一个国王有 1000 瓶酒,其中恰好 1 瓶被下了毒。 毒药的特性: - 喝下后 24 小时才会发作(之前无任何症状) - 哪怕只喝一滴,也会中毒 - 毒药不会与其他液体反应 国王有 10 个死囚可以用来试酒。 问:如何在 24 小时内确定哪一瓶酒有毒?

💡 提示

先别往下看,思考一下:


⬇️ 想好了再往下滑 ⬇️

✅ 答案

用二进制编码。

210 = 1024 > 1000,所以 10 个囚犯恰好够用。

把 1000 瓶酒编号为 1 到 1000,每个编号转成 10 位二进制数。

10 个囚犯对应二进制的 10 个位——第 i 个囚犯负责第 i 位。

规则:如果某瓶酒的编号在第 i 位是 1,就让第 i 个囚犯喝这瓶酒的样本。

24 小时后,观察哪些囚犯死了:

  • 第 i 个囚犯死了 → 毒酒编号的第 i 位是 1
  • 第 i 个囚犯活着 → 毒酒编号的第 i 位是 0

把 10 个囚犯的死活拼成一个二进制数,就是毒酒的编号。


📚 举例

假设毒酒是第 739 瓶。

739 的二进制是 1011100011

囚犯 1 2 3 4 5 6 7 8 9 10
二进制位 1 0 1 1 1 0 0 0 1 1
结果

还原:1011100011 → 739

一次测试,10 条命,1000 瓶酒,全部搞定。


🎯 思维训练要点

训练方向 说明
信息编码 二进制的本质是用最少的”是/否”问题来编码最大量的信息
组合思维 n 个二值变量能区分 2ⁿ 种情况,这是信息论的基石
逆向设计 先想清楚”需要多少种结果”,再反推”需要多少个变量”

🧠 延伸思考


📅 明天同一时间,第 007 期见!

每天一道思维题,让大脑保持活力 🧠