经典智力题高频题库规格说明
本规格定义 iq 单页书的内容边界、交互方式和验收标准。页面面向零基础读者:每道题先把题面讲清楚,再从第一原则解释为什么这样想,最后用可操作的交互演示把关键状态跑一遍。
路由
- 中文默认页:
/books/iq/ - 中文镜像页:
/books/zh/iq/ - 规格页:
/books/iq/spec.html - 中文规格镜像:
/books/zh/iq/spec.html
默认页和中文镜像内容一致,canonical 指向 /books/iq/,避免同一中文内容产生两个主地址。
字体与数学排版
本书继承 BOOK_STYLE.md 的全站书籍样式契约:正文、标题、导航、
控件、表格、图注和普通 UI 文本默认使用苹方字体栈;代码块、行内代码、
终端片段和代码编辑器默认使用 Cursor/LeetCode 代码字体栈
Monaco, "Cascadia Code", Consolas, "Courier New", ui-monospace, SFMono-Regular, Menlo, monospace。数学符号、状态数、复杂度、概率、约束范围、
公式和可量化指标能用 LaTeX/KaTeX 表达时必须优先使用 LaTeX。
内容范围
题库收录高频、可教学、适合面试或课堂讲解的经典智力题,覆盖以下类型:
- 编码类:用状态数表示答案,例如毒酒老鼠、帽子奇偶。
- 调度类:在约束下最小化总时间,例如过桥点灯、25 匹马。
- 信号类:把不可直接观察的事件转成可计数信号,例如囚犯灯泡。
- 公共知识类:沉默、等待、公开宣告都能传递信息,例如帽子题、蓝眼岛民。
- 信息论类:每次测试尽量多分叉,例如 12 球三称、两鸡蛋高楼。
- 概率类:条件概率、对称性和随机过程,例如蒙提霍尔、100 囚犯盒子。
- 构造类:用有限操作造出目标状态,例如量水、水桶、香计时、过河。
- 逆推类:从终局往前倒推,例如海盗分金、约瑟夫环。
题库不承诺包含互联网所有变体。它的目标是覆盖最常见的题型母题,让读者能迁移到同类变体。
单题结构
每道题必须包含:
- 清晰题面:说明对象、限制、目标、是否要求最坏情况。
- 一句话答案:先给结论,降低阅读负担。
- 第一原则解释:解释为什么不能靠直觉,应该看哪些不变量、状态数或递推关系。
- 分步解法:步骤必须能被初学者复述。
- 常见误区:指出最容易犯错的假设。
- 变体提示:说明同类题如何改参数或换约束。
- 交互演示:提供逐步播放、前进、后退、暂停,且每一帧对应解法中的一个关键状态。
页面交互
页面必须提供:
- 顶部搜索框,支持按题名、分类、核心关键词过滤。
- 分类按钮,便于只看编码、概率、构造等题型。
- 题目卡片列表,显示编号、分类、难度、核心答案。
- 每道题内嵌演示器,演示器必须能独立播放。
- 演示器必须显示当前帧标题、解释、状态 token 和关键结论。
- 移动端和桌面端都不能出现文字遮挡、横向溢出或按钮文字挤压。
数据模型
页面使用静态数据驱动。每道题至少包含:
id:稳定锚点。number:展示编号。title:中文题名。category:题型分类。difficulty:入门、常见、进阶或困难。answer:短答案。keywords:搜索关键词。problem:题面段落数组。principle:核心原理段落。solution:分步解法数组。pitfalls:常见误区数组。variants:变体数组。demo:交互演示数据,包含标题、说明和逐帧状态。
视觉风格
风格参考站内 LeetCode book 的题库工作台感,但阅读体验更接近长书:
- 版面应密集、清晰、可扫描,不做营销式落地页。
- 颜色使用站点现有 cream、charcoal、terracotta、border 等主题色。
- 卡片圆角不超过 8px。
- 按钮使用真实按钮元素,状态变化清晰。
- 交互区以边框和背景区分,但不做卡片套卡片。
资料与归因
题库题面和解法使用通用经典表述,不复制第三方长文本。页面底部列出参考资料地图,用于说明题型选择和答案核对来源。
验收
实现完成后至少验证:
npm run check:contentnpm run buildnpm run check:dist- 本地打开
/books/iq/,检查搜索、分类、每道题演示器按钮和自动播放。
如修改 .go 文件才需要执行 gofmt;本书实现不涉及 Go 代码。