SM-2 間隔重複機制
複習網頁下方的四顆按鈕 ——「Again / Hard / Good / Easy」—— 並非隨機標籤,而是 SM-2 演算法的核心輸入。本頁將說明此演算法的運作邏輯,以及為何「誠實評分」對於長期記憶至關重要。
How SM-2 Spaced Repetition Works
The four buttons under each flashcard — Again, Hard, Good, Easy — are not arbitrary labels. They are the inputs to the SM-2 algorithm. This page explains how that algorithm thinks, and why honestly grading your own recall matters more than anything else.
為什麼需要間隔重複?
傳統「每天複習全部單字」的方式極度缺乏效率。對於已熟記的單字(如
international),每日重複複習只是浪費時間;而真正生疏的單字(如
unprecedented),若缺乏適時回顧也難以鞏固記憶。這並非努力不足,而是維持複習頻率(節奏)錯誤。
「間隔重複(Spaced Repetition)」是認知心理學中一項長期的研究發現:記憶會隨著時間淡忘,但若能在「快要遺忘」時及時回顧,記憶力便會顯著強化,遺忘曲線也會趨於平緩。隨著記憶加深,複習間隔可逐步拉長 —— 從 1 天、6 天、兩週、一個月,甚至到半年。掌握「遺忘臨界點」進行複習,便是最高效的學習方式。
SM-2 演算法由 Piotr Wozniak 於 1985 年提出,旨在精確估算「最佳複習時機」。其核心邏輯如下:
- 每張卡片皆包含兩個關鍵數值:複習間隔 (Interval)(距下次複習的天數)與易記度 (Ease)(間隔天數的增長倍率)。
- 系統根據您的評分調整數值:記憶良好則拉長間隔;一旦遺忘,間隔將重置為 1 天。
知名學習軟體 Anki 亦採用 SM-2
的衍生版本,這已成為語言學習界的標準。Morphowiki
的複習網頁(/review-word)將此演算法整合於本機環境,確保您的學習數據完整留存在個人電腦中。
實務效益:您無須再面對動輒數百張的龐大複習清單。系統每日僅會列出「今日到期」的少量卡片,完成即結束。長期而言,您能以更少的時間成本,達成更高的單字留存率。
Why this exists
The traditional "review every card every day" approach wastes time.
After a week, you know international cold but still
drill it daily, while unprecedented stays fuzzy no
matter how often it appears. The problem is not effort — it is
rhythm.
Spaced repetition is a well-established finding from cognitive psychology: memory fades, but each time a fading memory gets a successful refresh, the forgetting curve flattens. The better you remembered, the further you can push the next reminder — from 1 day, to 6 days, to two weeks, a month, half a year. The most efficient moment to review is the instant just before you would have forgotten.
SM-2 is the 1985 algorithm by Piotr Wozniak that estimates that moment. Its core idea is small:
- Every card carries two numbers: an interval (days until the next review) and an ease (a multiplier that controls how fast the interval grows).
- Each time you grade a card, the algorithm adjusts both numbers. Recalled well → interval grows. Forgotten → interval resets to 1 day.
The well-known Anki app uses a derivative of SM-2; the algorithm is
the de-facto standard in language-learning circles. The Morphowiki
review web app (/review-word) runs SM-2 locally on your
machine — no data leaves your device.
Why this matters in practice: you never face the "all 200 cards" wall again. The system tells you "12 cards due today" and the session ends when those 12 are done. Over weeks, the time spent goes down while the words retained go up.
執行範例:單張卡片的生命週期
以
unbelievable
為例,觀察在八次複習週期中,間隔天數與易記度的變化。假設今日為
2026-05-24,並將此卡片加入複習清單。
| 次序 | 複習日期 | 評分 | 新間隔 (Interval) | 易記度 (Ease) | 下次到期日 |
|---|---|---|---|---|---|
| 1 | 2026-05-24 | Good | 1 天 | 2.50 | 2026-05-25 |
| 2 | 2026-05-25 | Good | 6 天 | 2.50 | 2026-05-31 |
| 3 | 2026-05-31 | Good | 15 天 | 2.50 | 2026-06-15 |
| 4 | 2026-06-15 | Hard | 38 天 | 2.36 | 2026-07-23 |
| 5 | 2026-07-23 | Again | 1 天(重置) | 2.36 | 2026-07-24 |
| 6 | 2026-07-24 | Good | 1 天 | 2.36 | 2026-07-25 |
| 7 | 2026-07-25 | Good | 6 天 | 2.36 | 2026-07-31 |
| 8 | 2026-07-31 | Easy | 14 天 | 2.46 | 2026-08-14 |
執行過程中的關鍵機制:
-
前兩次複習間隔是固定的:
初次(Good)後的間隔固定為 1 天,第二次(Good)固定為 6
天。從第三次複習起,系統才會啟動
間隔 × 易記度的公式進行計算。 - 評分「Hard」的影響: 在第 4 次複習中按下 Hard,複習間隔雖仍有增長(15 → 38 天),但易記度(Ease)從 2.50 下降至 2.36。這意味著 Hard 的處分並非立刻縮短當前間隔,而是調降未來的成長倍率。
- 評分「Again」的影響: 在第 5 次複習中按下 Again,複習間隔會立即歸零並重置為 1 天(重新開始循環),但易記度不會再次扣減(系統設有 1.3 的下限),以避免陷入無法翻身的惡性循環。
- 評分「Easy」的影響: 在第 8 次複習中按下 Easy,易記度會提升 0.10。這是一個明確的訊號,告知系統:「這個單字我已滾瓜爛熟,未來可以大幅減少出現頻率。」
經過八次評分後,該單字的下次複習時間已推遲至兩週後。隨著正確率穩定,間隔會迅速跳躍至一個月、三個月甚至一年。您的時間將被精準導向至「真正模糊」的單字,而熟練的字彙則會安靜地等待下次驗證。
A concrete example: one card across eight sessions
Follow a single card, unbelievable, through eight
reviews and watch its interval and ease change. Assume today is
2026-05-24 and you just added this card to the review pile.
| Session | Date | Grade | New interval | Ease | Next due |
|---|---|---|---|---|---|
| 1 | 2026-05-24 | Good | 1 day | 2.50 | 2026-05-25 |
| 2 | 2026-05-25 | Good | 6 days | 2.50 | 2026-05-31 |
| 3 | 2026-05-31 | Good | 15 days | 2.50 | 2026-06-15 |
| 4 | 2026-06-15 | Hard | 38 days | 2.36 | 2026-07-23 |
| 5 | 2026-07-23 | Again | 1 day (reset) | 2.36 | 2026-07-24 |
| 6 | 2026-07-24 | Good | 1 day | 2.36 | 2026-07-25 |
| 7 | 2026-07-25 | Good | 6 days | 2.36 | 2026-07-31 |
| 8 | 2026-07-31 | Easy | 14 days | 2.46 | 2026-08-14 |
A few things worth pointing out:
- The first two intervals are fixed. First Good is always 1 day, second is always 6 days, regardless of ease. Only from the third recall onward does the formula become "interval × ease".
- After Hard at session 4, the interval still grows (15 → 38 days), but ease drops from 2.50 to 2.36. Hard's penalty is not to shorten this interval; it is to slow the next growth.
- Again at session 5 snaps the interval back to 1 day and starts the climb over. Ease is not pushed below its floor of 1.3. Again is much harsher than Hard.
- Easy at session 8 bumps ease up by 0.10, so the next multiplier is bigger. Easy is the "too simple, show me less often" signal.
After eight gradings, the card's next review is two weeks away; a few more clean sessions and it can leap to a month, three months, a year. Your time gets routed to the cards that actually need it, while well-known cards rest quietly.
SM-2 的決策邏輯
本節旨在解析演算法的「心智模型」,讓您了解系統為何在特定時間展示特定的卡片。其運作邏輯可拆解為以下五點:
-
核心數值: 每張卡片都具備
interval(距離下次複習的天數)與ease(間隔成長倍率,初始值 2.5,下限 1.3)。 -
Good (grade=4)「穩定記憶」: 基準模式。第 1 次為
1 天,第 2 次為 6 天,第 3 次起計算公式為:
新間隔 = round(舊間隔 × 易記度)。此時易記度保持不變。 -
Easy (grade=5)「過於簡單」:
加速模式。間隔計算公式同上,但
ease會額外增加 0.10,使未來的複習間距更快速地拉開。 -
Hard (grade=3)「勉強回想」:
減速模式。當前間隔雖會依舊
ease增長,但ease本身會減少 0.14。若連續對某單字評分 Hard,該字將進入高頻率複習的節奏。 -
Again (grade=0)「忘記/錯誤」:
重置模式。間隔立即歸零並重置為 1
天,學習次數全部清空。為了避免懲罰過重,此時
ease不會再次調降。
核心原則總結: Good 是標準、Easy 負責加速、Hard 負責減速、Again 則是徹底重來。您只需誠實反映「對單字的把握度」,其餘的日期計算交給演算法即可。
數據存儲結構
所有的複習狀態均存儲於
review/flashcards.json。單個卡片的數據結構範例如下:
{
"word": "unbelievable",
"added": "2026-05-24",
"due": "2026-08-14",
"interval": 14,
"ease": 2.46,
"repetition": 3,
"lastReview": "2026-07-31",
"history": [
{ "date": "2026-05-24", "grade": 4 },
{ "date": "2026-05-25", "grade": 4 },
{ "date": "2026-05-31", "grade": 4 },
{ "date": "2026-06-15", "grade": 3 },
{ "date": "2026-07-23", "grade": 0 },
{ "date": "2026-07-24", "grade": 4 },
{ "date": "2026-07-25", "grade": 4 },
{ "date": "2026-07-31", "grade": 5 }
]
}
-
請勿手動編輯此檔案: 所有的修改應透過
/flashcard(新增/移除)與/review-word(評分)進行。手動修改ease或interval可能會破壞演算法的連貫性。 -
日期格式: 一律採用 ISO 格式
YYYY-MM-DD。凡是due(到期日)小於或等於今天的卡片,皆會出現在複習清單中。 -
學習歷程:
history欄位由後端自動記錄,可作為日後分析個人學習曲線的依據。
How SM-2 thinks
This page is not about clicking buttons; it is about being able to answer yourself when you wonder, "Why am I seeing this card again?" The algorithm's mental model fits into five points:
-
Every card carries two key numbers:
interval(days until next review) andease(the multiplier that controls how fast the interval grows; starts at 2.5, floored at 1.3). -
Grade Good (grade = 4): the "I remembered it,
normally" signal. The first Good sets the interval to 1 day; the
second sets it to 6 days; from the third onward,
interval = round(old interval × ease). Ease stays the same. - Grade Easy (grade = 5): the "this is too easy" signal. The interval grows by the same formula as Good, but ease goes up by 0.10, so every future interval is pushed further out.
- Grade Hard (grade = 3): the "I just barely got it, that was a struggle" signal. The interval still grows (using the old ease), but ease drops by 0.14, slowing every future jump. Repeated Hards drag the ease down and the card lands in a "shown frequently" rhythm.
- Grade Again (grade = 0): the "I missed it, I could not recall" signal. Interval immediately resets to 1 day and the repetition count goes back to zero. The card starts the climb over. Ease is not pushed further down (to avoid stacking penalties to the floor).
In one line: Good is the baseline, Easy accelerates, Hard decelerates, Again restarts. You only have to know how confident you actually feel; the algorithm computes the date.
Where the data lives
Every card's state sits in one file:
review/flashcards.json. A single card looks like this:
{
"word": "unbelievable",
"added": "2026-05-24",
"due": "2026-08-14",
"interval": 14,
"ease": 2.46,
"repetition": 3,
"lastReview": "2026-07-31",
"history": [
{ "date": "2026-05-24", "grade": 4 },
{ "date": "2026-05-25", "grade": 4 },
{ "date": "2026-05-31", "grade": 4 },
{ "date": "2026-06-15", "grade": 3 },
{ "date": "2026-07-23", "grade": 0 },
{ "date": "2026-07-24", "grade": 4 },
{ "date": "2026-07-25", "grade": 4 },
{ "date": "2026-07-31", "grade": 5 }
]
}
A few notes:
-
Do not hand-edit this file. All changes should go
through
/flashcard(add / remove) and the/review-wordweb app (grading). Editing ease or interval by hand breaks the algorithm's internal consistency. -
Dates are always ISO format
YYYY-MM-DD. A card withdue ≤ todayis considered due and appears in today's review queue. -
The
historyfield is appended byreview/server.jsafter each grading, so you can use it later for learning-curve analysis.
常見誤區與補充說明
誠實評分是演算法維持精準度的唯一前提。 如果為了快速完成進度而盲目按下 Good,或為了「自我感覺良好」而刻意避開 Again,系統將接收到錯誤訊號,導致尚未記熟的單字被推遲至一個月後,而滾瓜爛熟的字卻天天出現。一週後,整個複習節奏就會徹底崩潰。
請記住:「按下 Again 並非失敗,而是提供正確訊號給系統,讓它在最需要的時候再次提醒您。」 這是所有學習習慣中最關鍵的一環。
「按下 Easy 代表以後再也不會看到這個字」—— 觀念錯誤。
Easy
只是將下一次的複習間隔拉長並調高倍率,這張卡片終究還是會出現,只是頻率極低。若要永久移除卡片,請使用
/flashcard remove。
「每天都應複習所有單字」—— 觀念錯誤。 那是傳統死背模式。SM-2 的核心在於「今日事今日畢」,只需複習當日到期的卡片。如果某天打開系統只顯示 3 張卡,代表演算法判斷您今天僅需鞏固這 3 個字。過度複習反而會干擾演算法判斷您的真實記憶強度。
易記度(Ease)越低代表表現越差? 其實這僅代表系統偵測到該單字對您而言較具挑戰性,演算法正在自動調整、減緩成長速度以增加複習頻率。這是系統自我修正的表現,而非對學習者的負面評價。
後續步驟
-
/review-word開始複習 — 將理論應用於今日的待複習清單。 -
/flashcard管理清單 — 學習如何新增或移除待複習單字。 - 深入了解 Morphowiki — 探索複習卡片背後的字典圖譜結構。
- 返回 首頁
Common misunderstandings & next steps
Honestly grading yourself is the only condition under which this algorithm works. If you smash Good on every card just to end the session, or avoid Again because it "feels bad", SM-2 receives wrong signals: cards you do not actually know get pushed a month out, while well-known cards keep appearing. Within a week the whole system collapses.
Remind yourself: "Pressing Again is not failing. It is giving the system the right signal so it can remind me again tomorrow." This single sentence matters more than any other habit you build around review.
"Pressing Easy means I will never see this card again." —
False.
Easy just pushes the next interval further out and nudges ease up
by 0.10; the card still returns, just less often. SM-2 never
permanently drops a card (for that, use
/flashcard remove).
"Opening the review page every day = practising every word." — False. That is rote drilling, not spaced repetition. The whole point of SM-2 is that today you see only today's due cards. If you open it and see three cards, the algorithm thinks three is what you need today. Do not force yourself to review extra cards on top — that breaks the rhythm.
"Lower ease means the card is bad or you are bad at it." Strictly, it just means "at the current growth rate, intervals need to lengthen more slowly." Low ease is not a failing on your part; it is the algorithm self-correcting. Note that consecutive Goods do not raise ease back up — only Easy does. So a card that gets a steady stream of Hards will sit stably in a "show often" rhythm. That is a design feature, not a bug.
Next
-
/review-word— open the review web app — turn the theory on this page into today's 12 cards. -
/flashcard— manage flashcards — add or remove words from the SM-2 schedule. - What is a Morphowiki — which cards is SM-2 reviewing? They come from the morphowiki dictionary.
- Back to home