底部的三个时间如何设置呢,怎么样的时间间隔才算合理?

这三个时间间隔是由 Anki 的安排算法计算得出的。

关于 Anki 算法的通俗介绍可以看这篇文章:

叶峻峣:Anki 算法与术语浅谈

嫌简单?那继续往下看吧!


Anki 术语

新卡片

graduating interval: 新卡片学习以 ‘Good’ 结束后进入复习阶段的第一个间隔

easy interval: 新卡片学习以 ‘Easy’ 结束后进入复习阶段的第一个间隔

starting ease: 初始间隔基数,默认 250%

复习

easy bonus: 简单奖励系数,默认 130%

interval modifier: 间隔系数修饰,默认 100%

maximum interval: 最大间隔

hard interval: ‘Hard’ 间隔系数,默认为 120%

遗忘

new interval: 遗忘间隔系数

minimum interval: 遗忘最小间隔

leech threshold: 顽固卡片遗忘次数门槛

leech action: 对顽固卡片的处理

Anki 算法

初始化

间隔系数 = 初始间隔基数​,默认为 250%

again/重来

新间隔 = 上次规划间隔 * 遗忘间隔系数

间隔系数减少 20%

hard/困难

新间隔 = 上次规划间隔 * ‘Hard’ 间隔系数

间隔系数减少 15%

good/一般

新间隔 = (上次规划间隔 + 延迟 ) * 间隔系数

间隔系数不变

easy/简单

新间隔 = (上次规划间隔 + 延迟) * 间隔系数 * 简单奖励系数

间隔系数增加 15%

early/提早

新间隔 = (上次规划间隔 - 提早) * 间隔系数 * 提早奖励系数

提早奖励系数 = (简单奖励系数 - 100%) / 2 + 100%

间隔系数由具体选项确定

通用

规划间隔 = 新间隔 ​* 间隔系数修饰

code/代码

    def _rescheduleRev(self, card: Card, ease: int, early: bool) -> None:
        # update interval
        card.lastIvl = card.ivl
        if early:
            self._updateEarlyRevIvl(card, ease)
        else:
            self._updateRevIvl(card, ease)

        # then the rest
        card.factor = max(1300, card.factor + [-150, 0, 150][ease - 2])
        card.due = self.today + card.ivl

        # card leaves filtered deck
        self._removeFromFiltered(card)
        
    def _nextRevIvl(self, card: Card, ease: int, fuzz: bool) -> int:
        "Next review interval for CARD, given EASE."
        delay = self._daysLate(card)
        conf = self._revConf(card)
        fct = card.factor / 1000
        hardFactor = conf.get("hardFactor", 1.2)
        if hardFactor > 1:
            hardMin = card.ivl
        else:
            hardMin = 0
        ivl2 = self._constrainedIvl(card.ivl * hardFactor, conf, hardMin, fuzz)
        if ease == BUTTON_TWO:
            return ivl2

        ivl3 = self._constrainedIvl((card.ivl + delay // 2) * fct, conf, ivl2, fuzz)
        if ease == BUTTON_THREE:
            return ivl3

        ivl4 = self._constrainedIvl(
            (card.ivl + delay) * fct * conf["ease4"], conf, ivl3, fuzz
        )
        return ivl4

以上就是 Anki 算法的介绍。