返回赛题列表
高尔顿板(Galton Board)
挑战模拟经典高尔顿板——小钢珠从顶部落下,经钉阵随机弹跳,底部堆积成正态分布曲线。用物理模拟直观演示中心极限定理。
规则说明▼
模型需要生成一个单文件 HTML 网页。
页面是一个高尔顿板(Galton Board / Bean Machine)的交互式物理模拟。小钢珠从顶部中央释放,经过三角形排列的钉阵,每遇到一颗钉子随机向左或右弹跳,最终落入底部的收集槽中。随着钢珠数量增加,底部槽中的堆积自然呈现正态分布(钟形曲线)。
phase1:仅给出一句话需求,零约束,考验模型是否知道高尔顿板是什么、能否实现基本的物理弹跳和分布可视化
phase2:给出完整的功能列表,要求参数可调、实时统计、理论曲线叠加、性能优化等
phase3:在 phase2 基础上追加物理约束提醒,针对常见致命 Bug(钢珠过大、边界反弹导致 U 形分布)给出明确修复指引,考察模型在提示下的纠错能力
Prompt▼
phase1:▼
做一个单文件 HTML 的高尔顿板(Galton Board)模拟器,小钢珠从顶部落下经过钉阵弹跳,底部堆积出正态分布。
phase2:▼
做一个单文件 HTML 的 **高尔顿板(Galton Board)** 交互式物理模拟。小钢珠从顶部落下,经过钉阵随机弹跳,底部堆积成正态分布曲线。
````
### 物理模拟
- 钢珠受重力加速度下落
- 钉子呈三角形/等距网格排列,钢珠碰到钉子后随机向左或右弹开(各 50% 概率)
- 碰撞要有物理感:弹跳角度自然、速度衰减合理,不能是瞬移式的左右跳
- 钢珠之间不需要互相碰撞(穿透即可,优先保证性能)
- 钢珠落入底部收集槽后堆叠,像真实的小球一样一颗颗垒起来
### 参数控制面板
1. **钉子行数**:可调范围 6–20 行(默认 12),行数决定底部槽的数量(行数 + 1)
2. **钢珠释放速度**:控制每秒释放多少颗钢珠(慢速 1 颗/秒 ~ 快速 50 颗/秒)
3. **左右概率偏移**:默认 50/50,可调为如 60/40,观察分布偏移效果
4. **重力强度**:可调,影响下落速度
5. **一键释放**:按钮点击后一次性释放大量钢珠(如 100/500 颗)
6. **暂停/继续**:暂停物理模拟
7. **重置**:清空所有钢珠和统计数据
### 统计与可视化
8. 底部收集槽旁显示每个槽的钢珠计数
9. 实时柱状图:以收集槽的堆积高度直接作为柱状图
10. **理论正态曲线叠加**:根据当前参数(n 行钉子、左右概率 p)计算二项分布 B(n, p) 的理论概率质量函数,以半透明曲线叠加在柱状图上方,随钢珠数量增加观察实际分布逼近理论曲线
11. 实时统计面板显示:已释放钢珠总数、均值(μ)、标准差(σ)、当前分布与理论分布的拟合度
12. 可选:显示每颗钢珠的路径轨迹(淡色线条,展示随机游走路径)
### 视觉设计
- 钢珠有金属质感(径向渐变 + 高光点模拟球体感)
- 钉子用小圆点表示,排列整齐
- 整体配色科学感/教具感:深色或浅色背景均可,重点是清晰可读
- 钢珠下落和弹跳的动画流畅(目标 60fps)
- 底部堆积的钢珠有轻微的随机色差,增加视觉层次
- 理论曲线用醒目但不抢眼的颜色(如半透明红色虚线)
- 响应式布局,移动端可用
````
phase3:▼
做一个单文件 HTML 的 **高尔顿板(Galton Board)** 交互式物理模拟。小钢珠从顶部落下,经过钉阵随机弹跳,底部堆积成正态分布曲线。
````
### 物理模拟
- 钢珠受重力加速度下落
- 钉子呈三角形/等距网格排列,钢珠碰到钉子后随机向左或右弹开(各 50% 概率)
- 碰撞要有物理感:弹跳角度自然、速度衰减合理,不能是瞬移式的左右跳
- 钢珠之间不需要互相碰撞(穿透即可,优先保证性能)
- 钢珠落入底部收集槽后堆叠,像真实的小球一样一颗颗垒起来
### 参数控制面板
1. **钉子行数**:可调范围 6–20 行(默认 12),行数决定底部槽的数量(行数 + 1)
2. **钢珠释放速度**:控制每秒释放多少颗钢珠(慢速 1 颗/秒 ~ 快速 50 颗/秒)
3. **左右概率偏移**:默认 50/50,可调为如 60/40,观察分布偏移效果
4. **重力强度**:可调,影响下落速度
5. **一键释放**:按钮点击后一次性释放大量钢珠(如 100/500 颗)
6. **暂停/继续**:暂停物理模拟
7. **重置**:清空所有钢珠和统计数据
### 统计与可视化
8. 底部收集槽旁显示每个槽的钢珠计数
9. 实时柱状图:以收集槽的堆积高度直接作为柱状图
10. **理论曲线叠加**:根据当前参数(n 行钉子、左右概率 p)计算二项分布 B(n, p) 的理论概率质量函数,以半透明曲线叠加在柱状图上方,随钢珠数量增加观察实际分布逼近理论曲线
11. 实时统计面板显示:已释放钢珠总数、均值(μ)、标准差(σ)、当前分布与理论分布的拟合度
12. 可选:显示每颗钢珠的路径轨迹(淡色线条,展示随机游走路径)
### ⚠️ 物理约束提醒(务必注意)
以下是常见的致命实现错误,请特别注意避免:
13. **钢珠半径必须远小于钉子间距**:钢珠半径应不超过钉子水平间距的 1/4,否则钢珠会卡在钉子之间无法正常弹跳,导致分布严重失真
14. **边界不能反弹**:钢珠碰到左右边界墙壁时应沿墙壁滑入对应的最边缘收集槽,而不是反弹回钉阵。反弹会导致钢珠堆积在两侧,形成 U 形分布(两边高中间低),这与正态分布完全相反
15. **收集槽必须有明确的物理边界**:每个槽之间要有隔板,钢珠落入槽后不能滑到相邻槽中
16. **钢珠释放点要在第一行钉子正上方足够高的位置**:释放点与第一颗钉子之间需要有足够的下落空间,让钢珠获得初速度后再碰到钉子
### 视觉设计
- 钢珠有金属质感(径向渐变 + 高光点模拟球体感)
- 钉子用小圆点表示,排列整齐
- 整体配色科学感/教具感:深色或浅色背景均可,重点是清晰可读
- 钢珠下落和弹跳的动画流畅(目标 60fps)
- 底部堆积的钢珠有轻微的随机色差,增加视觉层次
- 理论曲线用醒目但不抢眼的颜色(如半透明红色虚线)
- 响应式布局,移动端可用
````