第一步:成绩表体检
这里只检查源表识别结果。缺考学生在后续测算中会按 0 分参加同方向排名。
识别学生{{ summary.n }}
班级{{ summary.n_class }}
考试次数{{ summary.exams|length }}
异动备注{{ summary.moves }}
{{ w }}
{% endfor %}
工作表
| 名称 | 类型 | 行数 |
|---|---|---|
| {{ s.name }} | {{ s.kind }} | {{ s.rows }} |
考试识别
| 考试 | 有分人数 | 最低 | 最高 | 平均 |
|---|---|---|---|---|
| {{ e.exam }} | {{ e.n }} | {{ e.min }} | {{ e.max }} | {{ e.mean }} |
有分人数不等于测算人数:未排除的异动学生若缺考,仍会按 0 分进入排名。
第二步:口径、层次与线
{% endif %} {% if step == 3 %}第三步:相邻命中概率与拟合
{% if not result %}还没有测算结果。请回到第二步点击测算。
去设置 {% elif result.get('algorithm') != 'adjacent-layer-markov-v2' %}这是旧算法结果。请回到第二步重新测算一次。
{% else %}
进入测算{{ result.n_selected }} 人
缺考处理0 分排名
异动排除{{ '是' if result.exclude_moves else '否' }}
相邻对数{{ result.pair_count }}
{{ g.group }}方向:{{ g.n }} 人,{{ g.layer_size }} 名一层,共 {{ g.n_layers }} 层;
尖子线前 {{ g.line_settings.top }} 名,特控线前 {{ g.line_settings.control }} 名。
汇总概率与拟合概率
拟合规则与 basedata.xlsx 保持一致:第 1 层保留合成概率;中间层用加权 logistic 拟合;首个命中为 0 的层及其后取 0。最后一次考试也已纳入相邻转移计算。
{% for line_id in ['top', 'control'] %}
{% set sm = g.summary[line_id] %}
{% endfor %}
{{ '尖子线' if line_id == 'top' else '特控线' }}
| 前一次层次 | 样本 n | 命中 k | 合成概率 | 拟合概率 |
|---|---|---|---|---|
| {{ x.label }} | {{ x.previous_n }} | {{ x.hit_n }} | {{ '%.2f'|format(x.probability * 100) if x.probability is not none else '—' }} | {{ '%.2f'|format(x.fitted_probability * 100) }} |
每次相邻比较明细
{% for line in g.pairs %} {% for pair in line.pairs %}{{ line.line }}:{{ pair.from_exam }} → {{ pair.to_exam }}
| 前一次层次 | 人数 | 下次到线 | 概率 |
|---|---|---|---|
| {{ x.label or x.layer }} | {{ x.previous_n }} | {{ x.hit_n }} | {{ '%.2f'|format(x.probability * 100) if x.probability is not none else '—' }} |
第四步:最后一次成绩摊派
{% if not result or result.get('algorithm') != 'adjacent-layer-markov-v2' %}还没有新算法结果。请回第二步重新测算。
去设置 {% else %}按最后一次考试的各班层次人数,乘以汇总后的拟合概率;加权计算四舍五入为摊派指标。点击班级可查看学生最后一次名次。
{% for g in result.groups %} {% for t in g.targets %}{{ g.group }}方向 · {{ t.name }}(前 {{ t.k }} 名)
年级最后一次在线 {{ t.sum_current }} 人;加权合计 {{ t.sum_expected }};摊派合计 {{ t.sum_assigned }} 人。
| 班级 | 测算人数 | 最后在线 | 加权计算 | 摊派指标 | 相对最后在线 |
|---|---|---|---|---|---|
| {{ row.class_name }}班 | {{ row.n }} | {{ row.current }} | {{ '%.2f'|format(row.expected) }} | {{ row.assigned }} | {% if row.delta > 0 %}+{{ row.delta }}{% else %}{{ row.delta }}{% endif %} |
| {{ class_comment(row, t.name) }} | |||||
| 合计 | {{ g.n }} | {{ t.sum_current }} | {{ t.sum_expected }} | {{ t.sum_assigned }} | — |
查看班级层次分布
| 班级 | {% for label in t.labels %}{{ label }} | {% endfor %}
|---|---|
| {{ row.class_name }}班 | {% for c in row.layer_counts %}{{ c }} | {% endfor %}
| 拟合概率 | {% for p in t.fitted %}{{ '%.2f'|format(p * 100) }} | {% endfor %}