11-05 分析得分间隔
题目
读取上一章保存的每次得分时刻,用 diff 计算同一局的相邻间隔,比较平均数、中位数与最大间隔,并用直方图呈现;不同局先分开整理。
推导与做法
先按局分开时刻,再分别 diff。seed-7 的 1、1.75、2.75 得到 0.75、1;seed-8 的 0.5、1.5、3 得到 1、1.5。
分别比较均值、中位数、最大值,再用相同分箱画直方图,才能比较两局分布。代码把实际图保存成 score-intervals.svg;图中横轴是秒,纵轴是间隔条数。
实现与运行
查看带注释实现。本题与相关处理函数放在同一章节代码文件中;启动工具负责定位相邻项目和选择题号。
在配套目录的 NumPy与数值计算/analysis_project 中运行。先按项目 README 执行 uv sync --locked。
# 使用项目解释器运行本题,题号决定执行哪一组演示。
uv run python "../../学习索引/参考实现/代码/ch11.py" 11-05
程序按题号输出处理后的值、查询结果或状态。先和前面的手算比较,再修改一项输入重跑。
查看本题运行结果
# 与上面的手算状态和题目数值逐项比较。
{
"seed-7": {
"diff": [
0.75,
1.0
],
"mean": 0.875,
"median": 0.875,
"max": 1.0,
"histogram": {
"counts": [
0,
1,
1,
0
],
"edges": [
0.0,
0.5,
1.0,
1.5,
2.0
]
}
},
"seed-8": {
"diff": [
1.0,
1.5
],
"mean": 1.25,
"median": 1.25,
"max": 1.5,
"histogram": {
"counts": [
0,
0,
1,
1
],
"edges": [
0.0,
0.5,
1.0,
1.5,
2.0
]
}
}
}