算法¶
SM-2¶
警告
该条目长时间未更新, 请注意阅读 源代码.
(除 PageRanks 之外,卡片复习采用相同规划算法)
- 该算法为 Anki 所采用的基于 SM-2 算法 的变种。
- 使用三级打分制,即在复习阶段自评对某个概念的掌握程度为
困难
,记得
或简单
。 - 初始熟练度会根据链接笔记的平均熟练度、当前笔记的重要性和基本熟练度进行加权(使用 最大外链因子)。
当存在外链时: 初始熟练度 = (1 - 链接加权) * 基础熟练度 + 链接加权 * 外链平均熟练度
链接加权 = 最大外链因子 * min(1.0, log(外链数目 + 0.5) / log(64))
(以自适应不同情况)
- 不同概念/笔记的优先级由 PageRank 算法设定(笔记之间存在轻重缓急)
- 大多数情况下基础概念/笔记具有更高优先级
- 当用户对某个概念/笔记的自评为:
- 简单, 熟练度增加
20
复习间隔更新为原复习间隔 * 更新后熟练度 / 100 * 1.3
(1.3 是简单奖励) - 记得, 熟练度不变,复习间隔更新为
原复习间隔 * old_ease / 100
- 困难, 熟练度降低
20
,复习间隔更新为原复习间隔 * 0.5
0.5
可在设置中更改最小熟练度 = 130
- 当复习间隔不小于
8
天时间隔 += 随机取值({-扰动, 0, +扰动})
- 设定
扰动 = 向上取整(0.05 * 间隔)
- Anki 文档: > "[...] Anki 还会加入少量的随机扰动,以防止同时出现且评级相同的卡片获得相同的复习周期,导致其它们是在同一天被复习。"
- 设定
- 简单, 熟练度增加
- 复习规划信息将被存储于笔记的yaml front matter部分