跳到主要内容

极简间隔重现算法

阐述

是一种从 Anki 算法简化得来的间隔重现算法,本质上是 Leitner 系统的电子化。其伪代码如下:

  • 对于每一张卡片,有一个与之关联的熟练度 dd
  • 初始时刻 d=0d=0
  • 每次学习该卡片,根据掌握程度的不同,有三种选择:
    • 遗忘:d:=max{d1,0}d:=\max\{d-1,0\}
    • 勉强记起:d:=dd:=d
    • 记起:d:=d+1d:=d+1
  • 学习该卡片后,该卡片会在 c2dc\cdot 2^d 天后重新出现,其中 cc 为一个待定的参数。

实例

相关内容

cc 取 1 时:

与 Leitner 系统比较

  • 相当于五个盒子学习间隔分别为 1,2,4,8,161, 2, 4, 8, 16 天,且实质上后面还有无限多个盒子;
  • 多了一个「保持盒子位置不变」的选项;

与 Anki (默认算法)比较

  • 少了学习阶段、重新学习阶段,且每张卡片进入复习阶段时间隔都是 1 天而不是 4 天;
  • 少了「简单」的按钮;
  • 若对同一张卡片在 Anki 中不断选择「良好」、在本算法中不断选择「记起」,则在 Anki 中其间隔将以 1, 2.5, 6.25, 15.625, ... 倍的等比数列增加(因为 Anki .,在本算法中其间隔将以 1, 2, 4, 8, ... 倍的等比数列增加,其效果类似,但学习数量稍多一些;
  • 若对同一张卡片在 Anki 中不断选择「困难」、在本算法中不断选择「勉强记起」,则在 Anki 中其间隔将以 1, 1.2, 1.44, 1.728, ... 倍的等比数列增加,在本算法中其间隔将不变;
  • 若对同一张卡片在 Anki 中不断选择「重来」并完成重新学习阶段、在本算法中不断选择「遗忘」,则在两种算法中间隔均保持为 1 天;

思考:

  • 由于大多数卡片在 Anki 中都应该是不断选择「良好」,两者的整体使用体验应该一样;
  • Anki 是用间隔、简易度两个参数来参数化的二阶算法,使得它选择「简单」的时候间隔增长的速度可以非常快(4, 13, 45, 164, ...),选择「困难」的时候对间隔的调整更为精细;
  • 但是,对于概念的费曼卡片的学习不需要这么快的增长速度;

性质

2021 年找实习工作时曾经用此算法在 Notion 中学习 LeetCode 题目,具体实现参见 Notion 笔记,但其中 c=7c=7

参考文献