做口算训练工具,绕不开一个核心问题:怎么知道哪一道算式"还没练好"?

市面上的大多数工具给出的答案都很粗糙——练完一场,给你一个分数,或者一个正确率。然后就没有然后了。

但"7×6 这道题到底熟不熟"这件事,真的能用一个分数说清楚吗?

我们在设计秒算侠的时候,把这个问题的答案定为:不能。必须用两个独立的维度,逐题标注。这就是 ABCD 四态熟练度算法的由来。这篇文章讲讲这套算法的设计逻辑,以及几个反常识的取舍。

一个例子:同一道 7×6,三种完全不同的"不会"

假设三位练习者都在做 7×6:

  • 甲:1.2 秒答对。连续几次都稳定在 1 秒上下。
  • 乙:也答对了,但用了 4.5 秒——中途在心里从"一七得七"顺到了"六七四十二"。
  • 丙:1 秒就答了,但答成了 48。

如果只统计正确率,甲和乙完全一样(都对);如果只统计速度,甲和丙差不多(都快)。乙"会算但不熟"、丙"在蒙"这两种状态,单维度评估根本区分不出来。

而这两种状态恰恰是口算训练的主体:背熟了口诀却算不快的人,是"会算但不熟";抢答求快的人,容易滑向"靠蒙"。他们需要的干预方式完全不同——乙需要限时提速练习,丙需要慢下来重新建立算理。

把两种状态混成一个分数,等于把两种药混成一颗吃。

为什么不能合成一个"熟练度得分"

很多产品会把正确率和速度加权合成为一个 0-100 的分数。我们刻意没这么做,原因很实际:

四态对应的干预方向是两两相反的。B 态(准但慢)要加压提速,C 态(快但错)要减速纠错——合成一个标量之后,B 和 C 在分数上可能差不多,系统就不知道该往哪个方向推了。

更微妙的是 B 态本身:它的错误率通常很低(低错误率正是"基本会了"的表现),只有反应速度这个维度才能把它暴露出来。一旦合成标量,B 态就被"正确率还不错"掩盖掉了——而它恰恰是口算慢的根源。

所以秒算侠的底层原则是:错误率(wrong/total)和反应速度(单题用时中位数)两个维度独立计算、独立呈现,永不合成。

ABCD 四态矩阵

两个维度交叉,得到四种状态:

A · 已掌握
低错误率 + 快。这题过关,不用再练。
B · 待提速
低错误率 + 慢。"会算但没秒答",口算训练的痛点主体。
C · 需纠正
高错误率 + 快。抢答靠蒙,需要慢下来重建算理。
D · 未掌握
高错误率 + 慢。最需要优先补的薄弱项。

注意这套标注的对象是每一道算式,不是练习者整体。乘除法是有限题集(乘法模块 N 就是 N×1 到 N×9,除法按除数成组),这让逐题标注成为可能——也是我们认为口算训练区别于一般刷题的核心价值所在。

阈值怎么定:分龄 + 文献依据

"快"和"慢"的边界不能拍脑袋。不同年龄段的心算速度差异巨大,成人 1 秒以内的题,二年级初学者 3 秒都算正常。

我们的做法是把熟练度等级分为 L1 到 L5 五档,每档有不同的速度判定阈值(L1 启蒙档最宽松,约 3600ms;默认的 L4 成人标准档明显更严)和错误率阈值(15% → 8% 梯度收紧)。

基准数值来自认知心理学文献而不是空想:

  • Grenier 2020:成人口算约 905ms,小学 3-5 年级约 1380ms
  • Geary 2011:加法提取速度 2-4 年级从 2789ms 提升到 1633ms
  • 真实总用时 = 心算用时 + 界面搜索点击开销(约 800ms,来自界面实测)

低龄段的乘法样本在文献里本就稀缺,所以低龄阈值我们做了外推,并标注为"置信度较低、待真实数据校准"——宁可明说不确定,也不假装精确。

三个"反常识"的谨慎设计

1. 样本不足,宁可不评级

一道题只练过一两次,数据噪声太大。所以规则是:作答满 3 次且用时样本满 3 条,才参与四态判定;否则标注"样本不足",不下结论。用一两次的偶然表现给人贴标签,不如不贴。

2. 用中位数,不用平均数

速度维度取的是单题用时的中位数(保留最近 15 条样本)。一次走神点错让平均数暴涨,但中位数几乎不受影响——统计口径要对抗噪声,而不是放大噪声。

3. 乘法不归一化,除法按除数精确匹配

7×6 和 6×7 是两道独立的题,各自记录熟练度。有人会觉得"交换一下不都一样吗"——但真实表现里很多人就是 6×7 秒答、7×6 卡壳。合并归一会把这种不对称性抹掉。除法则按除数精确匹配、不跨模块混算,保证每一道算式的评价都能精确寻址。

还有一个模式层面的细节:测试模式不对单题限时。因为限时会把"对但慢"的 B 态直接误判成"错",恰好把最想捕捉的信号抹掉。限时属于闯关(压力挑战),不属于检测。

四态拿到手之后,怎么用

  • B 态(准但慢):限时速答、计时训练,把"提取"逼成"直出"
  • C 态(快但错):降速重练,要求先想再答,重建算理
  • D 态(未掌握):回到训练模式从正序开始,逐题攻克
  • A 态:不再占用练习时间,只做偶尔抽查保鲜

这就是"只练没掌握的那几道"的技术实现——训练时长没有变长,但每一分钟都花在刀刃上。

写在最后

口算评估的难点从来不是"算一个分数",而是承认"不会"有好几种,并且诚实地把它们区分开。

双维度、不合成、分龄阈值、样本不足不评级——这套算法没有什么炫技的成分,它只是把一件朴素的事做严谨了:让每一道算式都还差什么,清清楚楚。

知道还差什么,比知道"还差多少分"重要得多。

— 秒算侠团队