间隔重复算法详解
深入解读 FSRS、SM-2 和 Leitner — 驱动现代闪卡应用的核心算法。了解每种算法的原理,以及哪些应用(Anki、RemNote、StudyGlen、Brainscape)实现得最好。
1885 年,赫尔曼·艾宾浩斯发现,我们会在 24 小时内忘记 70% 的新信息——除非按照科学优化的时间间隔进行复习。间隔重复已成为首屈一指的循证学习方法,但算法至关重要:在相同记忆留存下,FSRS 可比 SM-2 少安排 20-30% 的复习次数。我们将拆解每种算法的原理,以及哪些闪卡应用实现了它们。
为什么闪卡背后的算法至关重要
间隔重复的工作方式,是在你即将忘记之前向你展示一张闪卡。这个「即将之前」就是全部关键所在——而它由一个算法决定。
在间隔重复的数字化历史中,绝大多数时间使用的算法是 SM-2(SuperMemo 2),这是Piotr Wozniak 于 1987 年发表的一个公式。它驱动了最初的 SuperMemo、2023 年之前所有 Anki 用户,至今仍是 RemNote 的默认调度器。SM-2 经过了实战检验——但它也很僵化:每位学习者拿到的都是同一套调度曲线,与个人记忆的实际表现无关。
2022 年,一个名为 FSRS(Free Spaced Repetition Scheduler)的开源项目改变了这一点。FSRS 用统计模型拟合你真实的复习历史,并基于预测的回忆概率为每张卡片安排日程。在5 亿+ 条 Anki 复习记录上的基准测试显示,在相同记忆留存下,FSRS 比 SM-2 少需要 20-30% 的复习。Anki 在 23.10 版本(2023 年 11 月)将 FSRS 设为默认。
本指南讲解 FSRS、SM-2 和经典的 Leitner 盒子系统的工作原理——以及哪些闪卡应用实现了它们。如果你在 2026 年挑选学习工具,算法是最重要的差异化因素。
FSRS — Free Spaced Repetition Scheduler
FSRS 是一种现代化的开源调度算法,自 2022 年起由 Jarrett Ye 和 open-spaced-repetition 社区共同开发。它将记忆视为一个针对每位学习者自适应的统计模型,旨在准确度和效率上超越 SM-2。如今 Anki、RemNote 和 StudyGlen 都已实现该算法。
FSRS 的工作原理 — DSR 记忆模型
FSRS 用三个值来建模一张闪卡的记忆,并在每次复习后更新:
- Difficulty (D): 这张特定卡片对你而言有多难。范围 1-10。根据你按下 Again、Hard、Good 还是 Easy 进行校准。
- Stability (S): 你回忆这张卡片的概率下降到目标记忆留存率(默认 90%)所需的天数。在正确复习后增长,遗忘后重置。
- Retrievability (R): 你此刻能够回忆起这张卡片的预测概率——是 D、S 以及距上次复习天数的函数。
通过这三个值,FSRS 为每张卡片回答一个问题:在你设定的记忆留存目标下,最晚可以把这次复习排到什么时候,仍然能预期你记得它?
FSRS 与 SM-2 的不同之处
SM-2 使用固定乘数——所有人开箱即用得到的都是同一套间隔增长曲线。FSRS 使用 gradient descent,通常在 ~1,000 次复习之后,将你的个人参数拟合到你真实的复习历史。训练完成后,它会考虑你觉得哪些卡片类型更难、你遗忘的速度,以及失败如何影响长期稳定性。
你还可以设置一个「Desired Retention」目标——通常在 0.80 到 0.97 之间,多数用户落在 0.85-0.90 附近。留存越高,复习越多;越低则越少。SM-2 没有对应的控制项。
哪些闪卡应用使用 FSRS
- Anki: 自 v23.10(2023 年 11 月)起在桌面端、AnkiDroid 和 AnkiMobile 上都是默认调度器。SM-2 仍可作为后备使用。
- RemNote: 作为 SM-2 旁边的可选调度器提供。
- StudyGlen: 所有 AI 生成闪卡组的默认算法——无需手动配置。
FSRS 明显胜出的场景
大型卡组(2,000+ 张)、长期记忆留存目标,以及难度参差不齐的情况(部分卡片简单、部分困难)。复习数据积累得越多,FSRS 相比 SM-2 的优势越明显。
FSRS 影响不大的场景
在 ~1,000 次复习以下,FSRS 还无法拟合出有意义的个人模型——它会回退到默认参数,表现与 SM-2 接近。对于随手学习或短期突击,算法选择基本只是装饰。
SM-2 — Anki 的经典算法
SM-2 由 Piotr Wozniak 于 1987 年作为 SuperMemo 的一部分发表——这是首个商业间隔重复应用。从 2006 年发布到 2023 年末,它一直是 Anki 的默认调度器,至今仍是 RemNote 的默认。四十年的实际使用让它成为其他所有 SRS 算法的对照基线。
SM-2 的工作原理
SM-2 为每张卡片追踪两个数字:
- Ease factor (EF): 一个初始化为 2.5 的乘数,控制间隔增长的速度。
- Interval: 两次复习之间的天数。
每次复习后:
- 如果你答错了卡片,将间隔重置为 1 天,EF 保持不变。
- 如果你答对了,将当前间隔乘以 EF(Easy 时 EF 略微提高,Hard 时略微降低)。
一张典型的 SM-2 卡片序列可能是:1 天 → 通过 → 6 天 → 通过 → 15 天 → 通过 → 37 天 → 通过 → 92 天……
优点
SM-2 简单、透明,不需要训练数据。从第一次复习起就能工作。它的行为可以手算预测——查看一张卡片的 EF 和 interval,你就能精确解释为什么它被排到那里。35 年以上的实际使用让它成为任何 SRS 最安全的默认选择。
局限
SM-2 的乘数是通用的——算法不会针对个体学习者调整。如果你对地理事实的记忆比对方程式衰退得更快,SM-2 会一视同仁地处理它们。它也没有显式的记忆留存目标:你无法要求 95% 留存率,只能接受乘数隐含产生的约 85%。
哪些应用使用 SM-2
- Anki: 作为后备调度器提供。在 v23.10 切换到 FSRS 之前一直是默认。
- RemNote: 默认调度器。
- SuperMemo: Piotr Wozniak 的原版应用。仍在积极开发——现代 SuperMemo 使用 SM-2 的后继版本 SM-18。
Leitner 系统 — 纸上的间隔重复
Leitner 系统由德国科学记者Sebastian Leitner于 1972 年提出,比所有数字化 SRS 算法都要早。这是一种实体卡片方法,启发了整个品类——而且仍值得了解,因为一些应用(包括 Quizlet 的 Learn 模式)至今仍使用它的简化版本。
Leitner 的工作原理
你准备一组带编号的盒子(经典做法是 5 个)。所有新卡片从盒子 1 开始。
- • 答对——把卡片移到下一个更高的盒子。
- • 答错——把卡片送回盒子 1。
每个盒子都有自己的复习频率:盒子 1 每天,盒子 2 每两天,盒子 3 每四天,依此类推。你能稳定记住的卡片会逐渐流向更高的盒子;遗忘的卡片会被拉回到频繁复习。
优点和局限
Leitner 是最简单的 SRS——完全不需要数学,用纸卡和一个鞋盒就能运行。它的调度比 SM-2 或 FSRS 粗糙得多,间隔不会针对个人记忆或卡片难度做适配。对于短期学习或排斥数字工具的学习场景,它依然够用。但在大多数现代用例中,任何运行 SM-2 的数字 SRS——尤其是运行 FSRS 的——都会更有效率地安排复习。
FSRS vs SM-2:哪种算法表现更好?
Anki 团队在超过 5 亿条复习日志上对 FSRS 与 SM-2 做了基准测试。核心结论:在相同记忆留存率下,FSRS 大约只需要少 20-30% 的复习。对于一个每天复习的 2,000 张卡组,这意味着每周节省数小时。
FSRS 明显胜出的地方
- 长期记忆留存(30+ 天的间隔):FSRS 自适应的稳定性追踪比 SM-2 的固定乘数更准确地安排长间隔。
- 难度混合的卡组:FSRS 学习每张卡片的难度;SM-2 通用的乘数会过度安排简单卡片,对困难卡片则安排不足。
- 拥有 1,000+ 复习数据的用户:FSRS 需要训练数据来个性化。一旦有了数据,每多一次复习,与 SM-2 的差距就会进一步拉大。
SM-2 仍然站得住脚的地方
- 小卡组(500 张以下):FSRS 还无法拟合个人模型;SM-2 的默认参数有竞争力。
- 纯新手学习者:SM-2 第一天就能零配置工作。FSRS 用默认参数也没问题,但有意义的优势要等到你积累了数据之后才会显现。
- 可解释性:SM-2 的调度可以从 (EF, 间隔) 推断出来。FSRS 的拟合模型实际上是一个小型神经网络——更难手算推理。
如果你的闪卡应用提供 FSRS,请启用它。对大多数用户而言,20-30% 的复习削减是单一最大的体验提升——这正是 Anki 团队在 v23.10 把它设为默认的原因。继续坚持 SM-2 的唯一理由是:卡组非常小、复习历史很薄,或者你不愿意重新优化的中途迁移。
你应该使用哪种算法?
一个快速决策框架:
- 1.
大卡组(1,000+ 张)且追求长期记忆留存 → FSRS。Anki、RemNote 或 StudyGlen 都已实现。
- 2.
小卡组且短期学习(一次考试、一本旅行短语手册)→ 任何算法都行,包括最普通的 Leitner。不必想得太多。
- 3.
你想零配置 + AI 生成的卡片 → StudyGlen(默认 FSRS,AI 从 PDF、笔记或图片生成卡片)。
- 4.
你想要最大限度的控制 + 访问社区卡组 → Anki(v23.10 起 FSRS 为默认,SM-2 可作为后备)。
- 5.
你写长篇笔记并希望内置闪卡 → RemNote(默认 SM-2,FSRS 可选)。
- 6.
你想要专家精选的闪卡组 + 简单的基于信心的复习 → Brainscape(使用专有的非 FSRS 调度器 CBR)。
- 7.
你需要规模最大的现成闪卡库,并且不需要真正的 SRS → Quizlet(Leitner 风格,并非真正的 SRS)。
对 2026 年的大多数学生来说,搭载 FSRS 的应用是正确的默认选择。这种算法之所以取代 SM-2 成为业界最佳,是有原因的——而训练它所需的基础设施,如今已内置在每一款主流闪卡工具里。
实现这些算法的应用
下面是间隔重复中最常用的五款闪卡应用,按它们底层运行的算法分组。下面的结论与优缺点能帮你做对比——但如果你还在算法之间犹豫,请回到你应该使用哪种算法这一节。
Pros
- FSRS算法适应您的个人记忆模式,实现最佳复习时间
- AI从PDF、文本和图像输入生成闪卡(无需手动创建卡片)
- 设置您的目标记忆保持率,FSRS会通过数学方法安排复习
- 还可生成测验、教育漫画和实时测验课堂
- 支持37种语言及自动检测
- 提供免费套餐,采用基于积分的定价(无订阅)
- 在闪卡上显示AI生成的教育图像,作为视觉记忆辅助
Cons
- 较新的平台,社区正在发展
- 尚无移动应用(响应式网页版)
- 没有预制共享卡组库
Pros
- 免费开源(桌面版和Android版)
- 支持FSRS和SM-2算法(新用户默认使用FSRS)
- 高度可自定义的卡片模板、笔记类型和调度参数
- 庞大的社区,拥有数千个共享卡组(如医学AnKing等)
- 在所有平台上完全离线工作
- 强大的插件生态系统扩展了功能
Cons
- 学习曲线陡峭 — 对初学者来说令人生畏
- 没有内置AI卡片生成功能(需要手动创建或插件)
- iOS应用售价$24.99(一次性)
- 界面设计过时
Pros
- 基于信心的重复(CBR)根据您的自评信心(1-5级)调整复习频率
- 经认证的专家制作闪卡课程的大型市场
- 精致的原生移动应用(iOS和Android)
- 详细的进度跟踪和分析仪表板
- 内置教师和课堂工具
Cons
- 不支持从上传内容生成AI卡片
- CBR是专有的 — 不如FSRS透明且缺乏研究支持
- 需要Pro订阅才能访问完整库($9.99/月)
- 与Anki相比,卡片自定义选项有限
Pros
- SM-2间隔重复直接集成到笔记工作流中
- AI自动从您的笔记生成闪卡
- 双向链接创建相互连接概念的知识图谱
- 学习资料的PDF注释和导入
- 在一个工作区中结合了笔记、闪卡和复习
Cons
- SM-2算法的效率低于FSRS(相同记忆保持需要约20-30%更多的复习)
- 学习曲线比简单的闪卡应用更陡峭
- 免费套餐限制了AI功能和存储
- 社区比Anki更小,预制卡组更少
功能对比表
| 功能 | StudyGlen | Anki | Brainscape | RemNote | Quizlet |
|---|---|---|---|---|---|
| SR算法 | FSRS | FSRS/SM-2 | CBR | SM-2 | 基础 |
| AI卡片生成 | 是 | 插件 | 否 | 是 | 是 |
| PDF上传 | 是 | 插件 | 否 | 是 | 否 |
| 卡片类型 | 基础、填空、图片 | 基础、填空、自定义 | 仅基础 | 基础、填空 | 基础、图表 |
| 复习分析 | 是 | 是 | 是 | 有限 | 有限 |
| 免费套餐 | 免费 | 免费 | 有限 | 有限 | 带广告 |
| 移动应用 | 否 | 是 | 是 | 是 | 是 |
实际效果演示
看看StudyGlen如何在几秒内从任意学习材料生成闪卡。
常见问题
FSRS 是 Free Spaced Repetition Scheduler 的缩写。这是一种自 2022 年起由 Jarrett Ye 和 open-spaced-repetition 社区开发的开源间隔重复算法。Anki 在 23.10 版本(2023 年 11 月)将其设为默认调度器,取代了 SM-2。
FSRS 用三个值为每张闪卡的记忆建模:Difficulty(这张卡片对你有多难)、Stability(你的回忆概率下降到目标记忆留存率所需的天数)和 Retrievability(你此刻能记起这张卡片的预测概率)。每次复习后,FSRS 会更新这些值,并在最优时刻安排下一次复习,以达到你的目标记忆留存率。在大约 1,000 次复习之后,它可以使用 gradient descent 拟合出与你个人记忆模式匹配的个性化参数。
Piotr Wozniak 于 1987 年发表的 SM-2 使用固定乘数,根据你对每次复习的评分来增长间隔。2022 年发布的 FSRS 用统计模型拟合你的复习历史,并基于预测的回忆概率为每张卡片排程。在 5 亿+ 条 Anki 复习上的基准测试显示:在相同记忆留存率下,FSRS 大约比 SM-2 少需要 20-30% 的复习,因为它会针对个体学习者和单卡难度自适应。SM-2 更简单,不需要训练数据;FSRS 在拥有足够复习历史以个性化之后会更准确。
对几乎所有现代数字化用例而言,是的。Leitner 盒子系统(1972)使用固定的盒子间间隔(例如 1 天、2 天、4 天),不会针对个人记忆或单卡难度做调整。FSRS 会根据你的复习历史动态计算间隔长度,并显式瞄准你选择的记忆留存率。对于纸质闪卡或最简单的应用,Leitner 仍然够用,但任何运行 FSRS——甚至 SM-2——的 SRS 都会更有效率地安排复习。
据 Anki 维护者所言,当卡组累积 1,000+ 次复习后,每年重新优化 3-4 次就够了。更频繁地重新优化(例如每周)只能带来微乎其微的改进,并不值得花时间。一个不错的触发条件是:每当总复习卡片数大致翻倍时优化一次。
Anki(v23.10 起为默认)、RemNote(作为 SM-2 的替代选项)和 StudyGlen(AI 生成闪卡的默认选项)都原生支持 FSRS。算法本身是开源的——MIT-licensed 的 Python 和 Rust 实现位于 GitHub 上的 open-spaced-repetition 组织——预计未来会有更多应用陆续采用。
FSRS 需要复习数据来拟合个性化模型。在大约 1,000 次复习以下,它会回退到默认参数,行为与 SM-2 类似,所以你还看不到 20-30% 的复习削减。不过,提早启用 FSRS 没有任何坏处:Anki 现在会自动启用,而个性化带来的准确度提升会在你积累足够复习历史之后开始显现。
这取决于目标应用。StudyGlen 支持直接上传 .apkg 和 .colpkg 文件,并可选择将您的 Anki SM-2 复习状态 — 间隔、熟练度、失误次数 — 转换为 FSRS,已学会的卡片不会归零。大多数其他工具要么根本不支持 .apkg 格式,要么将导入的卡片视为全新卡片并丢失您的复习历史。如果保留多年积累的 Anki 复习进度对您来说至关重要,请在迁移前确认目标应用是否明确支持 SM-2 → FSRS 转换。StudyGlen 的免费套餐每天支持 5 次导入;积分包可解锁无限次导入。