Начать
Изучение

Как работает алгоритм FSRS

Алгоритм интервальных повторений (FSRS), который решает, когда показать карточку снова.

Репка использует FSRS (Free Spaced Repetition Scheduler) — современный алгоритм интервальных повторений. Его задача: показать карточку в тот момент, когда вы вот-вот начнёте её забывать.

Ключевое отличие от механического «повторить через N дней» — расписание уникально для каждой карточки и для каждого человека. Алгоритм учитывает и то, насколько трудно даётся именно это слово, и то, как запоминаете именно вы, и пересчитывает срок после каждого вашего ответа: лёгкие слова уходят на недели и месяцы вперёд, трудные возвращаются чаще. Два человека с одной и той же колодой увидят разные интервалы.

Почему фиксированное расписание не работает

Только что выученное слово забывается за часы, а слово, которое вы успешно вспомнили несколько раз подряд, продержится месяцами.

Вероятность вспомнить падает не равномерно: резко в первые часы после знакомства и всё медленнее дальше. Именно эту кривую забывания FSRS и моделирует — по двум параметрам, которые он хранит для каждой карточки:

  • Стабильность — сколько знание держится в памяти, прежде чем шанс вспомнить заметно упадёт. Каждое удачное повторение её увеличивает, поэтому интервалы и растут.
  • Сложность — насколько тяжело именно эта карточка вам даётся, по шкале от 1 до 10. Чем она выше, тем медленнее растёт стабильность и тем осторожнее алгоритм раздвигает интервалы.

По этим двум числам алгоритм назначает дату следующего показа так, чтобы вероятность вспомнить оставалась около 90%. Оба параметра пересчитываются после каждого ответа — отсюда и индивидуальное расписание.

Шаги обучения

Новая карточка не уходит сразу на повторение. Сначала она проходит короткие шаги обучения. Только после этого она попадает в долгосрочный режим, и FSRS начинает считать для неё настоящие интервалы.

Смысл в том, чтобы закрепить слово, пока оно ещё держится в голове. Отправлять карточку, которую вы увидели тридцать секунд назад, на три дня вперёд — бессмысленно.

Оценка на этой стадии двигает карточку по шагам — как именно, разобрано ниже. Забытая карточка проходит такой же, но более короткий цикл.

Четыре оценки

Для каждой карточки, вы мысленно отвечаете на вопрос: Как сложно было вспомнить? Ответ и есть оценка — от неё зависит, когда вы увидите карточку в следующий раз.

  • — не вспомнили. Прогресс по карточке сбрасывается, и изучение начинается заново.
  • — вспомнили с усилием. Появится раньше обычного.
  • — вспомнили нормально. Обычный интервал.
  • — вспомнили мгновенно. Интервал вырастет быстрее всего — карточка появится нескоро.

Алгоритм полезен ровно настолько, насколько честны ваши оценки.

Состояния карточки

Каждая карточка находится в одном из четырёх состояний — эти же бейджи видны в списках карточек:

  • Новое слово — ещё ни разу не показывалась.
  • Изучение — первое знакомство, показывается несколько раз с короткими интервалами.
  • Повторение — выучена, показывается с растущими интервалами.
  • Повторное изучение — была выучена, но забылась; проходит короткий цикл заново.

Обычный путь карточки: Новая → Изучается → Повторение. Если на повторении вы её не вспомнили: Повторение → Переучивание → Повторение. Переход между состояниями происходит автоматически, вручную им управлять не нужно.

История повторений

Каждый ваш ответ сохраняется — вместе с оценкой, состоянием карточки на тот момент, её стабильностью, сложностью и запланированным интервалом. Историю любой карточки можно открыть и посмотреть, как менялись её показатели.

Алгоритм опирается на всю историю карточки, а не только на последний ответ — поэтому чем дольше вы пользуетесь приложением, тем точнее становятся интервалы.


Внутри приложения — открытая реализация FSRS под лицензией MIT. Она использует шестую версию FSRS, обученную примерно на трёх миллиардах реальных повторений.