AnkiDroid 间隔重复算法原理:SM-2 与 FSRS

AnkiDroid 的间隔重复算法怎么工作?它给每张卡维护「难度」和「当前间隔」两组状态,根据你每次复习的作答评级,自动算出这张卡下次该隔几天出现。算法有两代:SM-2(旧版遗留算法)的一句话公式是「选良好≈当前间隔×难度系数;选简单再×Easy Bonus;选重来则重置并降难度」;FSRS(AnkiDroid 2.17 起支持、官方主推)则用你的历史复习数据拟合个人记忆模型,核心旋钮是「期望保留率」。下面先讲共通的间隔重复逻辑,再分两代拆开讲。

一、定义:什么是间隔重复,SM-2 与 FSRS 是什么关系

间隔重复(Spaced Repetition)是一种按「遗忘曲线」安排复习时点的学习法:在你即将遗忘的临界点安排复习,用最少次数把记忆钉进长期记忆。AnkiDroid 的排程器有两代——SM-2(SuperMemo 2,1987 年的经典算法)是上一代遗留算法,每张卡片维护难度系数(Ease Factor,默认 2.5)和当前间隔(Interval)两个变量,作答评级同时推动这两个变量,决定「几天后再见这张卡」;FSRS(Free Spaced Repetition Scheduler)是新一代算法,AnkiDroid 自 2.17 版本起支持,它不套固定公式,而是根据你的复习历史拟合每张卡的「难度(Difficulty)」与「稳定性(Stability)」,你只需设定一个期望保留率(Desired Retention,默认 90%),算法负责算出对应间隔。官方文档已将 SM-2 称为 legacy(旧版)算法,新装用户建议直接了解 FSRS。如果你还没安装 App 或建立第一个牌组,建议先读完AnkiDroid 新手入门教程再回来理解算法。

二、原理:一次作答如何改变复习间隔

2.1 SM-2(旧版):固定公式推算

当你对某张卡片作答时,SM-2 按评级更新间隔,典型规则如下(以默认参数为例):

作答评级(App 中文界面)含义间隔变化难度系数变化
简单(Easy)早已记住× 间隔修正 × 1.3(Easy Bonus)不变或微升
良好(Good)正常记住× 难度系数不变
困难(Hard)想了一会儿约 × 1.2不变
重来(Again)没记住重置为重新学习步骤−0.2(最低 1.3)

新间隔 ≈ 当前间隔 × 难度系数(选「良好」);选「简单」再 × Easy Bonus 1.3;选「重来」重置并降难度系数 0.2。

连续答「良好」了,间隔就会像滚雪球一样指数级拉长;一旦「重来」,间隔被打回原点、难度系数下降,后续复习会更密集。说白了,间隔重复就是靠这套规则用最少次数把记忆钉死——你越顺它越敢拉长,你一卡壳它立刻把你拽回来补课。

AnkiDroid 复习间隔增长柱状图:答对次数越多,复习间隔从 1 天逐步拉长到 90 天
图 1:SM-2 下复习间隔随连续答对次数指数式增长。

2.2 FSRS(新版):用你的数据拟合记忆模型

FSRS 把每张卡建模成两个量:难度 D(这张卡对你有多难)和稳定性 S(记住后能撑多久)。每次作答后,算法用你的历史复习记录重新拟合这两个参数,再按你设定的期望保留率 R反推间隔——目标是让卡片到期时,你的回忆概率刚好压在 R 附近。评级越高,S 增长越快、下次间隔越长;评级越低,S 被压低、间隔缩短。与 SM-2 的本质区别:SM-2 对所有卡用同一个乘法公式,FSRS 则一人一模型、一卡一参数,同样的评级在不同卡上会得到不同间隔。两代的评级行为对比如下:

作答评级(App 中文界面)SM-2(旧版)FSRS(新版)
重来(Again)重置为重新学习步骤,难度系数 −0.2进入重学步骤,难度上升、稳定性重置
困难(Hard)间隔约 × 1.2间隔小幅延长(注意:真忘了要按「重来」,误按「困难」会让间隔虚高)
良好(Good)间隔 × 难度系数(默认 2.5)按拟合的难度/稳定性与期望保留率计算
简单(Easy)再 × Easy Bonus 1.3稳定性大幅上升,间隔显著拉长

FSRS 还有一个 SM-2 没有的「优化(Optimize)」按钮:攒了一段复习记录后点一次,算法会用你的真实数据重拟合参数(若提示「当前参数已是最优」就不用动),之后每月点一次即可。期望保留率默认 90% 是官方推荐的平衡点,调高复习量陡增,官方建议保持在 97% 以下。

三、调优:两代算法各自的旋钮

长按牌组 → 在弹出的菜单里选「牌组选项」(桌面版 Anki 则在牌组列表点齿轮进入)。注意:FSRS 只能全局开启(所有牌组预设共享),开启后 SM-2 专属选项(Easy Bonus 等)会被隐藏。下面分两组说明(具体字段以 Anki 官方牌组选项说明 为准):

3.1 通用与 SM-2(旧版)参数

  • 新卡 / 到期上限:控制每天新增与复习量,避免堆积,两代算法通用。
  • 间隔修正(Interval Modifier):SM-2 专属,整体缩放间隔,想更保守就调小(如 0.9),更激进取 1.1。
  • Easy Bonus:SM-2 专属,对「简单」卡的额外加成,默认 1.3。
  • 最大间隔:上限默认 100 年(36500 天),一般无需调整;想主动收紧长期复习节奏再调小。

3.2 FSRS(新版)参数

  • 期望保留率(Desired Retention):FSRS 的核心旋钮,默认 90%;调高记得更牢但复习量快速上升,官方建议不超过 97%。
  • FSRS 参数优化(Optimize):用你的历史复习数据重拟合模型,攒了一段复习记录后点一次,之后每月一次。
  • 初学 / 重学步骤:官方建议全部短于 1 天(如 10 分钟 / 30 分钟),确保当天走完,避免跨天步骤拖慢节奏。
盲区提醒:「重新学习步骤(Relearning Steps)」决定答错后多久重新出现。如果你用 FSRS,Anki 官方明确建议初学/重学步骤全部短于 1 天(如「10 分钟 / 30 分钟」),当天完成回炉——差一小时满一天的「23 小时」同样不行,当天走不完;若仍用旧版 SM-2,也不建议把重学步骤设成跨天的「1 天 / 4 天」,二次遗忘率高时优先缩短步骤或精简卡片内容,而不是盲目加长。

四、案例:参数调整的思路推演

用一个推演例子说明两代算法的调优逻辑(非实测数据):同一批备考词汇卡,A 组完全用默认值;B 组分两代场景调整——SM-2 场景把「间隔修正」降到 0.9、让间隔整体更保守;FSRS 场景把期望保留率从默认 90% 提到 93%、并保证重学步骤当天完成。可以预期的结果是:B 组到期复习量上升,但弱卡被更早回炉,长期留存更高。背后的规律是把复习次数集中砸在最容易忘的那批卡上,比均匀拉长所有卡的间隔更划算。具体数值因人而异,建议一次只改一个参数,跑两周再看统计图表。

五、FAQ

难度系数是多少?会一直变吗?

这是 SM-2(旧版)的概念:默认 2.5,最低 1.3、无硬性上限,只在「重来」时下降、长期「简单」时缓慢上升,平时保持稳定。如果你用 FSRS,没有「难度系数」这个字段,改看「FSRS 参数」与期望保留率。

为什么我点了「简单」,后面反而很久不出现?

SM-2 下「简单」会触发 Easy Bonus(默认 1.3)大幅拉长间隔,FSRS 下「简单」同样会显著抬高稳定性、拉长间隔。不想拉太长:SM-2 可降低 Easy Bonus,FSRS 可适当下调期望保留率。

间隔修正调小会怎样?

这是 SM-2 专属选项:所有间隔整体缩短,复习更频繁、更保守,适合易忘或高价值内容(如考试重点)。FSRS 下没有该字段,用期望保留率达到类似目的。

算法和桌面版 Anki 一样吗?

一致。SM-2 与 FSRS 两代算法在 AnkiDroid 与桌面版 Anki 上行为相同(Anki 官方手册对两者有同一份说明),同步后复习计划完全对齐;多设备间的同步配置与冲突处理,见教程四:同步与备份。

误标了「重来」能补救吗?

可在复习记录里「撤销」本次作答,或手动在卡片浏览器调整间隔。FSRS 下误标同样可撤销,算法会按后续作答重新拟合。

该选 SM-2 还是 FSRS?

新用户建议直接用 FSRS(AnkiDroid 2.17+):官方主推,同样复习量下留存更高,且老牌组切换不丢历史数据——开启路径是牌组选项底部的「FSRS」分区。只有在用旧版客户端、或暂时不想改变现有排程体验时,才继续留在 SM-2。

六、总结

AnkiDroid 的间隔重复算法核心就一句话:越顺手越长、越卡壳越密。SM-2 靠「难度系数 × 当前间隔」的固定公式,FSRS 靠你的历史数据拟合个人记忆模型——新用户建议直接上 FSRS,把期望保留率留在 90%,攒了一段复习记录后点一次「优化」。想照着练,回到首页从教程一建好你的第一个牌组开始。

← 上一篇:新手入门

本篇读完,回到AnkiDroid 中文站首页或使用教程目录继续。