一个以可视化 + 交互 + 实际应用为导向的概率论在线教材。当前包含第 1、2 章完整内容(13 个小节), 共内置 18 个可交互实验、每节随堂小测与课后练习详解。
🌐 在线访问:https://ynzkai.github.io/probability-interactive/ (GitHub Pages 自动部署)
npm install # 安装依赖(如遇 npm 缓存权限问题:--cache /tmp/npm-cache)
npm run dev # 开发服务器 → http://localhost:5173
npm run build # 生产构建 → dist/
npm run preview # 预览生产构建
npm run typecheck # 仅类型检查| 层 | 技术 |
|---|---|
| 构建 | Vite 7 + TypeScript 5.8(strict) |
| UI | React 19(函数组件 + Hooks) |
| 数学渲染 | KaTeX(行内 $...$ 与块级公式) |
| 图表 | 自研轻量 SVG 图表库(无第三方图表依赖) |
| 路由 | 自研哈希路由(#/chapter/1/section/1-3) |
| 进度 | localStorage 记录已读小节与测验得分 |
src/
├── content/ # ★ 教学内容数据层(架构核心)
│ ├── types.ts # 结构化内容模型:章节/小节/块(Block)
│ ├── chapter1.ts # 第 1 章 随机事件与概率(6 节)
│ ├── chapter2.ts # 第 2 章 随机变量及其分布(7 节)
│ ├── index.ts # 章节索引与导航查询
│ └── registry.tsx # 交互组件注册表(name → 组件)
├── components/
│ ├── Blocks.tsx # 内容块渲染器:定义/定理/例题/应用/公式/测验/交互
│ ├── Quiz.tsx # 随堂小测(即时反馈 + 得分记录)
│ ├── layout/ # Header / Sidebar(目录+进度)
│ └── viz/ # ★ 交互可视化组件库(18 个)
│ ├── Chart.tsx # SVG 图表原语:坐标轴/折线/面积/柱状/悬停
│ ├── CoinFlipSim # 抛硬币:大数定律(第1章)
│ ├── DiceRoller # 掷骰子:样本空间与频率
│ ├── VennExplore # 韦恩图:事件关系与运算(可调概率+蒙版高亮)
│ ├── MontyHall # 蒙提霍尔:三门问题(可玩+自动统计)
│ ├── BayesCalculator # 贝叶斯公式:概率树 + 预设场景
│ ├── BirthdayProblem # 生日问题
│ ├── UrnDrawSim # 不放回摸球:条件概率
│ ├── ReliabilitySim # 系统可靠性:独立性应用(串联/并联/表决)
│ ├── BinomialViz # 二项分布(PMF/CDF/正态近似/模拟)
│ ├── PoissonViz # 泊松分布 + 泊松流到达演示
│ ├── ContinuousViz # 均匀 / 指数分布(含无记忆性演示)
│ ├── NormalViz # 正态分布(3σ 法则/区间概率/z 值)
│ ├── DiscreteCdf # 分布函数阶梯探索器
│ └── TransformViz # 随机变量函数 Y=g(X) 变换实验室
├── lib/ # 工具:KaTeX 内联标记解析 / 数学函数库 / 路由 / 进度
├── pages/ # 首页 / 章节页 / 小节页
└── styles/global.css # 设计系统(浅/深双主题、响应式)
内容全部是数据(chapterN.ts),渲染由通用渲染器完成,加新章节无需写页面代码:
- 在
src/content/chapterN.ts里按Chapter模型写数据;Section.blocks支持:p / h / def / axiom / thm / example / app / note / formula / list / table / interactive / quiz / keypoints; - 新增交互时,在
src/components/viz/写组件,并在registry.tsx注册名字; - 在内容里用
{ type: "interactive", name: "xxx", title: "…", caption: "…" }引用。
正文文本支持行内标记:$...$(KaTeX 数学)、**粗体**、*斜体*、`代码`。
- 实例先行:每个小节末尾都有「实际应用」卡片(医学筛查、六西格玛、保险精算、蒙特卡洛…);
- 模拟验证理论:大数定律、蒙提霍尔、3σ 法则等均配数千次随机模拟,理论与实验互相印证;
- 交互即理解:所有参数(概率、n、λ、μ、σ…)都可拖动,公式与图形实时联动;
- 学练闭环:每节目标 → 讲解 → 交互 → 小测 → 练习(含提示与详解),进度自动保存。