- 技術 💻
Ankiとは・使い方|間隔反復の仕組み・設定・FSRSを実物で解説
結論
Ankiは、忘れかけた頃にカードを出し直す「間隔反復」の無料の暗記アプリです。答えを思い出し、4つのボタンで評価するだけで次の復習日が決まります。
この記事でわかること
- インストールから同期までの手順と、4つのアプリの違い
- 4つのボタンで次の間隔が伸びる表(SM-2とFSRSの4通り)
- .apkgの中身と、復習がたまる量を計算した実物
Anki は、カードの表(問題)を見て答えを思い出し、どれだけ思い出せたかをボタンで伝えるアプリです。Anki はその評価から「次にいつ出すか」を計算し、覚えているカードほど間隔をあけていきます。
flowchart TD
A[カードの問題を見る] --> B[答えを思い出す]
B --> C[4つのボタンで評価]
C --> D[Ankiが次の<br>復習日を計算]
D --> E[忘れかけた頃に<br>また出題]
E --> A
急いでいる人向けに、よく調べられることの答えを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| Anki とは | 間隔反復で覚える暗記カードのアプリ | Ankiとは |
| 無料? | PC 版・Android 版・AnkiWeb は無料、iPhone 版は 4,000円 | インストール |
| まず何をする? | デッキを作り、ノートを追加して「今すぐ学習」 | カードの作り方 |
| ボタンの使い分け | 思い出せた→正解、出なかった→もう一度 | 評価ボタン |
| FSRS とは | 忘れる確率を予測する新しい計算方式 | 設定 |
| 復習がたまった | 新規カードの上限を下げ、復習を先に片づける | よくある悩み |
| 同期のしかた | AnkiWeb のアカウントで「同期」 | 同期 |
| 他人のデッキを使う | 「共有デッキを入手」で .apkg を読み込む | 共有デッキ |
確認環境:Anki の仕組み・手順・既定値・料金は、Anki 公式マニュアル(docs.ankiweb.net)、Anki のダウンロードページ(apps.ankiweb.net)、App Store の AnkiMobile のページ、AnkiDroid のマニュアル、Anki の GitHub で確かめました。画面の日本語の文言は、Anki 本体の日本語の翻訳データ(anki 26.9.3 に入っているもの)から取り出しています。ボタンごとの次の間隔は、PyPI で配られている Anki 本体の中核部分(anki 26.9.3。デスクトップ版 26.09.3 と同じ計算エンジン)で実際にカードを作って評価し、FSRS の忘却曲線は py-fsrs 6.3.2 で計算しました。.apkg は genanki 0.13.1 で作り、UnZip 6.00・SQLite 3.45.1・zstd 1.5.5 で中身を開いています。すべて Ubuntu 24.04.4 LTS 上の Python 3.11.15 で動かし、AnkiWeb には接続していません(確認日 2026年10月23日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Ankiとは・使い方|間隔反復の仕組み・設定・FSRSを実物で解説」
Ankiとは(読み方・無料か・できること)
この節では、Anki がどんなアプリで、どの端末で、いくらで使えるのかが分かります。
Anki(アンキ)は、問題と答えの組(カード)を、忘れかけた頃に出し直して記憶を定着させる、フラッシュカード(暗記カード)のアプリです。 名前は日本語の「暗記」から来ています。作者はオーストラリアのプログラマー Damien Elmes さんで、デスクトップ版のソースコードは GNU AGPL v3 以降のライセンスで公開されています。
1出す日を自動で決める
思い出せたかどうかの評価から、次の復習日をカードごとに計算する。覚えたカードは間隔が伸び、忘れたカードはすぐに戻ってくる。
21つの情報から複数のカード
「用語→意味」と「意味→用語」のように、1つのノートから向きの違うカードを作れる。穴埋めや画像の穴埋めもある。
3PC とスマホで同期
無料の AnkiWeb を通して、PC・iPhone・Android のあいだで学習の記録とカードを同期する。
4共有デッキとアドオン
ほかの人が作ったデッキを読み込んだり、アドオンで機能を足したりできる。
Anki のアプリは4種類(料金の違い)
| アプリ | 端末 | 料金(2026年10月23日時点) |
|---|---|---|
| Anki(デスクトップ版) | Windows・Mac・Linux | 無料。最新版は 26.09.3 |
| AnkiMobile Flashcards | iPhone・iPad | 4,000円(買い切り。App Store) |
| AnkiDroid | Android | 無料。有志が開発するオープンソース |
| AnkiWeb | ブラウザ | 無料。同期とブラウザでの学習 |
料金は、Anki のダウンロードページと App Store の表示です。ダウンロードページは、AnkiMobile を「公式の iOS アプリで、購入代金が Anki の開発資金になる」、AnkiDroid を「無料で、協力者が開発している」と説明しています。App Store では、AnkiMobile は 1回の購入で複数の端末で使え、ファミリー共有に対応しています。
AnkiDroid のマニュアルによると、AnkiDroid は Anki のデスクトップ版や AnkiWeb とは別の、有志のコミュニティが開発しているアプリです。それでも AnkiWeb で同期でき、デスクトップ版と同じデッキを使えます。
Ankiの仕組み:忘却曲線と間隔反復(SM-2とFSRS)
この節では、なぜ「忘れかけた頃」に復習すると覚えやすいのかと、Anki が次の復習日を決める2つの計算方式の違いが分かります。
Anki は、「思い出す練習(アクティブリコール)」と「間隔をあけた復習(間隔反復)」の2つを組み合わせています。 公式マニュアルの「背景」の章は、問題を出されて答えを思い出そうとするテストは、読み返すだけの勉強よりずっと強い記憶を作ると説明し、復習の間隔をあけると1回にまとめて詰め込むより覚えていられることを、1885年にドイツの心理学者エビングハウスが報告した「分散効果」として紹介しています。
| 用語 | 意味 |
|---|---|
| アクティブリコール | 答えを見る前に、自分で思い出そうとすること |
| 間隔反復 | 覚えている度合いに合わせて、復習の間隔を少しずつ伸ばすこと |
| 忘却曲線 | 時間がたつと思い出せる確率が下がっていく様子を表した曲線 |
| SM-2 | 1987年の SuperMemo の計算方式。Anki はこれをもとにした方式を使ってきた |
| FSRS | 忘れる確率を予測する新しい方式。Anki 23.10 から選べる |
忘却曲線を数字で見る(FSRS の式で計算)
FSRS は、カードごとに「安定性」(思い出せる確率が 100% から 90% に下がるまでの日数)を持ち、そこから「いま思い出せる確率」を計算します。FSRS を有効にすると、Anki のカードの情報にも「安定性」「思い出せる確率」「忘却曲線」が表示されます。FSRS-6 の既定のパラメーターで、前回の復習から t 日後に思い出せる確率を計算しました(py-fsrs の関数で同じ値になることも確かめています)。
"""FSRS-6 の忘却曲線:前回の復習から t 日後に思い出せる確率 R を、安定性 S ごとに計算する"""
from fsrs import Scheduler
w20 = Scheduler().parameters[20] # 曲線の形を決めるパラメーター(既定 0.1542)
factor = 0.9 ** (-1 / w20) - 1 # t = S のときにちょうど 90% になるように決まる値
def R(t, S):
return (1 + factor * t / S) ** (-w20)
for t in (0, 1, 2, 7, 10, 30, 100):
print(t, *[f"{R(t, S) * 100:.1f}%" for S in (1, 10, 100)], sep="\t")
t(日) S=1日 S=10日 S=100日
0 100.0% 100.0% 100.0%
1 90.0% 98.6% 99.8%
2 84.6% 97.3% 99.7%
7 72.8% 92.3% 99.0%
10 69.3% 90.0% 98.6%
30 59.1% 80.9% 96.1%
100 49.2% 69.3% 90.0%
安定性が1日のカードは7日後に 72.8% まで下がりますが、安定性が100日のカードは100日後でも 90.0% 残ります。 復習に成功するたびに安定性が上がるので、同じ「90% まで下がる日」がどんどん先になります。これが、Anki で復習の間隔が伸びていく理由です。
SM-2 と FSRS の違い
次の間隔の決め方
どちらも「覚えているほど間隔を伸ばす」考え方は同じ
自分に合わせられること
FSRS はコレクション全体に適用される
公式マニュアルの FAQ によると、Anki 23.10 から2つの方式を選べるようになり、FSRS は「記憶の3要素モデル」(思い出せる確率・安定性・難しさ)にもとづいています。Anki の画面の説明(日本語の翻訳)は、FSRS を「Anki の従来の SuperMemo 2 (SM-2) アルゴリズムに代わるスケジューラー」で、「カードを忘れる可能性をより正確に推定することで、同じ時間内により多くの内容を記憶できるよう支援」するもの、と書いています。
Ankiのインストール(Windows・Mac・Linux・iPhone・Android)
この節では、端末ごとの入れ方と、動く OS の条件が分かります。
PC はダウンロードページ apps.ankiweb.net から自分の OS のファイルを選び、スマホはストアから公式のアプリを入れます。 ダウンロードページには、2026年10月23日時点で次のファイルが並んでいます。
| OS | 選ぶもの(ダウンロードページの表示) | 条件(公式マニュアル) |
|---|---|---|
| Windows | Windows 10+ (x64)・Windows 11 (ARM) | 64ビットの Windows 10(1703 以降)か 11 |
| Mac | macOS 13+ (Apple Silicon)・(Intel) | macOS 13 以降 |
| Linux | Linux 2022+ (x64)・2024+ (ARM) | glibc 2.35 以降(ARM は 2.39 以降) |
| iPhone・iPad | App Store の AnkiMobile Flashcards | iOS・iPadOS 15.2 以降 |
| Android | AnkiDroid | ― |
ダウンロードする
apps.ankiweb.net を開き、自分の OS のファイルを選んで保存する。Windows は「設定」>「システム」>「バージョン情報」で x64 か ARM かを確かめる。
インストールする
Windows はインストーラーをダブルクリックする。Mac は開いた画面で Anki を「アプリケーション」フォルダーかデスクトップにドラッグする。
起動する
Windows はデスクトップの星のアイコンから起動する。表示言語は環境設定で変えられ、日本語の表示もある。
AnkiWeb のアカウントを作る
同期を使うなら、ankiweb.net で無料のアカウントを作る。PC だけで使うなら後回しにできる。
- Linux は、公式マニュアルの手順でアーカイブを展開して入れます。Debian・Ubuntu では先に必要なライブラリを入れます。
sudo apt install libxcb-xinerama0 libxcb-cursor0 libnss3 libxcb-icccm4 libxcb-keysyms1
sudo apt install zstd
tar xaf Downloads/anki-2X.XX-linux-x86_64.tar.zst # 2X.XX は版の番号
cd anki-linux-2X.XX-*
sudo ./install.sh
anki # 起動
- 更新:Windows 版は、Anki 2.1.6 以降からの更新なら前の版を消さずに上書きでき、カードもそのまま残ります(公式マニュアル)。
- 以前の Windows・Mac:Windows 7・8.1 に対応した最後の版は 2.1.49、32ビットの Windows は 2.1.35-alternate です。
- 偽物に注意:iPhone の公式アプリの販売元は「Anki Software LLC」です。似た名前のアプリと見分けるときは販売元を見ます。
デッキ・ノート・カードの違い(図で理解する)
この節では、Anki でいちばん混乱しやすい「デッキ」「ノート」「カード」「ノートタイプ」の関係が分かります。
ノートは「覚えたい情報のまとまり」、カードは「そこから作られる1問」、デッキは「カードを入れる箱」です。 1つのノートから、向きの違う複数のカードが作られます。公式マニュアルは、関連する情報のまとまりを「ノート」、その1つ1つを「フィールド」、カードの作り方の型を「カードの種類」と呼んでいます。
flowchart TD
D[デッキ<br>ITパスポート::用語] --> N[ノート<br>用語・意味・分野]
T[ノートタイプ<br>フィールドとカードの型] -.-> N
N --> C1[カード1<br>用語→意味]
N --> C2[カード2<br>意味→用語]
| 用語 | 意味 | 例 |
|---|---|---|
| カード | 問題と答えの1組。復習の単位 | 「DNS」→「ドメイン名と IP アドレスを対応づける仕組み」 |
| ノート | 関連する情報のまとまり。ここから カードができる | 用語・意味・分野の3つの欄 |
| フィールド | ノートの中の1つ1つの欄 | 「用語」「意味」「分野」 |
| ノートタイプ | フィールドの並びと、カードの作り方の型 | 「基本」「穴埋め問題」 |
| デッキ | カードを入れる箱。中にデッキを入れて木の形にできる | 「ITパスポート::用語」 |
| コレクション | Anki に入っている全部(カード・ノート・デッキ・設定) | 1人分のデータ一式 |
デッキの名前に :: を入れると、親子のデッキになります。 「ITパスポート::用語」と付けると、「ITパスポート」の下に「用語」ができます(後の節で作った .apkg を本物の Anki に読み込むと、この2段のデッキになりました)。
最初から入っているノートタイプ(6種類)
Anki 26.9.3 で新しいコレクションを作り、日本語の表示で一覧を取り出すと、次の6つが入っていました。
| ノートタイプ(日本語表示) | 作られるカード |
|---|---|
| 基本 | 表面→裏面の1枚 |
| 基本 (表面と裏面を反転したカードも作成) | 表→裏と、裏→表の2枚 |
| 基本 (任意で反転カードを作成) | 欄に何か入れたときだけ反転のカードも作る |
| 基本 (解答を入力) | 答えを打ち込んで照らし合わせる |
| 穴埋め問題 | 文章の一部を隠した問題。隠した数だけカードができる |
| 画像穴埋め | 図の一部を隠した問題(Anki 23.10 から標準) |
「基本」のフィールドは「表面」「裏面」の2つで、カードの型は「カード 1」の1つでした。
Ankiのカードの作り方(基本・穴埋め・画像穴埋め)
この節では、デッキを作ってから最初のカードを追加し、学習を始めるまでの手順が分かります。
デッキを作る
画面下の「デッキを作成」を押し、名前を入れる。「親::子」の形でサブデッキになる。
「追加」を開く
上の「追加」を押す。ノートタイプ(例:基本)と、入れるデッキを選ぶ。
フィールドに書いて保存する
表面に問題、裏面に答えを書き、Ctrl+Enter(Mac は Command+Enter)で追加する。
デッキを選んで学習する
デッキ名をクリックし、「今すぐ学習」を押す。答えを思い出してから「解答を表示」を押し、ボタンで評価する。
公式マニュアルによると、Anki は1番目のフィールドが同じノートを追加しようとすると警告します。ほかのフィールドの重なりは自動では調べないので、「カード管理」の重複を探す機能で確かめます。
穴埋め問題の書き方
ノートタイプを「穴埋め問題」にし、隠したい部分を {{c1::…}} で囲みます。:: の後ろに書いた文字は、隠した部分のヒントとして表示されます(公式マニュアル)。
{{c1::DNS}} は、ドメイン名と {{c2::IP アドレス::数字の住所}} を対応づける仕組みです。
この1つのノートから、c1 を隠したカードと c2 を隠したカードの2枚ができます。同じ番号(c1 を2か所など)にすると、1枚のカードで両方が隠れます。Anki の編集画面には「穴埋めを作成 (新しいカード)」と「穴埋めを作成 (同じカード)」のボタンがあり、選んだ文字を囲めます。
穴埋めは、ノートタイプを「穴埋め問題」にしたときだけ働きます。Anki の注意の文言も「穴埋めは、穴埋め問題のノートタイプでのみ使用できます。」です。Anki 26.9.3 のエンジンで確かめると、c1 と c2 を使ったノートからはカードが2枚、c1 を2か所に使ったノートからは1枚できました。
画像穴埋め(図の一部を隠す)
ネットワーク図や構成図の一部を隠して覚えるときは、ノートタイプ「画像穴埋め」を使います。 Anki 23.10 から標準の機能になりました。「追加」の画面でノートタイプを「画像穴埋め」にして画像を選び、「長方形」「楕円」「多角形」などの道具で隠したい所を囲みます。公式マニュアルによると、囲んだ形(またはグループにまとめた形)ごとにカードが1枚でき、学習のときに全部を隠して1か所ずつ答えるか、1か所だけを隠すかを選べます。
覚えやすいカードにするコツ
- 11枚のカードで聞くことは1つ答えが長いと、どこまで言えたら「正解」かがぶれる
- 2フィールドを分けておく用語・意味・例文を別の欄にすると、あとで向きの違うカードを足せる
- 3自分の言葉で書く教科書の文を写すより、思い出す手掛かりが増える
- 4似たカードは同時に増やさない公式マニュアルも、混ざりやすいものは1つに集中して覚えるよう勧めている
評価ボタン(もう一度・難しい・正解・簡単)と次の間隔
この節では、4つのボタンをどう使い分けるかと、押したボタンで次の間隔がどう変わるかが分かります。
思い出せなければ「もう一度」、思い出せたら基本は「正解」を押します。 公式マニュアルは、「正解」を使う割合を 80〜95%、「もう一度」を 5〜20% と書いています。「もう一度」と「正解」の2つだけを使う方法も紹介されています。
| ボタン | キー | いつ押すか(公式マニュアル) |
|---|---|---|
| もう一度 | 1 | 答えが違った・思い出せなかった |
| 難しい | 2 | 合っていたが、自信がない・時間がかかった |
| 正解 | 3・スペース・Enter | 少し考えて正しく思い出せた |
| 簡単 | 4 | 考えなくてもすぐ思い出せた |
答えを見る前にスペースか Enter を押すと答えが表示され、答えが出ているときにもう一度押すと「正解」になります。各ボタンの上には、そのボタンを押したときに次に出る時期が表示されます。
新しいカードで押したときの表示(本物のエンジンで確認)
Anki 26.9.3 の計算エンジンに、日本語の表示で新しいカードを1枚入れ、ボタンの上に出る時期を取り出しました(既定の設定)。
1回目(新規カード) もう一度=<1 分 難しい=<6 分 正解=<10 分 簡単=4 日
2回目(10分後) もう一度=<1 分 難しい=<10 分 正解=1 日 簡単=4 日
3回目(翌日) もう一度=<10 分 難しい=2 日 正解=3 日 簡単=4 日
4回目(3日後) もう一度=<10 分 難しい=5 日 正解=8 日 簡単=11 日
新しいカードは、1分後・10分後の「学習ステップ」を通ってから、1日後の復習に移ります。 「簡単」を押すと学習ステップを飛ばして、4日後になります。何度か実行すると「簡単」の日数は 3〜5 日の間で変わりました。公式マニュアルの「Fuzz Factor」の項が説明しているとおり、復習の日がそろいすぎないよう、間隔に少しの揺らぎ(fuzz)を足すためです。
ボタンごとに何が変わるか(SM-2 の場合)
公式マニュアルの FAQ が説明する、復習カードでのボタンの働きです。
| ボタン | 間隔係数(ease) | 次の間隔 |
|---|---|---|
| もう一度 | 20 ポイント下がる | 再学習(10分後)→ 忘却後の間隔 |
| 難しい | 15 ポイント下がる | 前回の間隔 × 1.2 |
| 正解 | 変わらない | 前回の間隔 × 間隔係数(既定 250%) |
| 簡単 | 15 ポイント上がる | 前回の間隔 × 間隔係数 × 1.3 |
本物のエンジンで、同じボタンを続けて押したときの間隔係数を取り出すと、この表のとおりに動きました。
「難しい」を5回 ease 250% → 235% → 220% → 205% → 190% → 175% 間隔 2→3→5→6→7 日
「簡単」を3回 ease 250% → 265% → 280% 間隔 3→11→42 日
4回目に「もう一度」 ease 250% → 230% 間隔 4日 → 再学習 → 1日 → 3日 → 6日 → 12日
「難しい」を押し続けると、間隔係数が下がり続けて間隔がほとんど伸びなくなります。 正しく思い出せたなら「正解」を押す、というマニュアルの使い分けには、この理由があります。公式マニュアルによると、間隔係数は 130% より下がりません。
間隔反復の計算を実物で確かめる(SM-2・FSRS)
この節では、評価ごとに次の復習日が伸びていく様子を、元の SM-2 の式と Anki 本体の計算の両方で確かめます。
元の SM-2 を Python で書く
SuperMemo の SM-2(1987年)は、評価を 0〜5 の6段階で付け、3 以上なら正解とします。間隔は1回目が1日、2回目が6日、3回目からは「前回の間隔 × EF(易しさの係数。最初は 2.5)」です。評価のたびに EF を EF + (0.1 − (5 − q) × (0.08 + (5 − q) × 0.02)) で直し、1.3 より小さくしません。評価が 3 未満なら、回数を 0 に戻して1日からやり直します。
"""SM-2(1987年の SuperMemo の方式)を Python で書いて、評価ごとに次の復習日を計算する"""
from datetime import date, timedelta
def sm2(q, n, ef, ivl):
"""q: 評価 0〜5 / n: 連続で正解した回数 / ef: 易しさの係数 / ivl: 前回の間隔(日)"""
if q >= 3: # 3 以上は正解
if n == 0:
ivl = 1
elif n == 1:
ivl = 6
else:
ivl = round(ivl * ef)
n += 1
else: # 2 以下は不正解 → 最初からやり直し
n, ivl = 0, 1
ef = ef + (0.1 - (5 - q) * (0.08 + (5 - q) * 0.02))
ef = max(ef, 1.3) # 1.3 より小さくしない
return n, ef, ivl
def run(title, grades, start=date(2026, 10, 23)):
print(f"--- {title}")
n, ef, ivl, day = 0, 2.5, 0, start
for i, q in enumerate(grades, 1):
n, ef, ivl = sm2(q, n, ef, ivl)
day = day + timedelta(days=ivl)
print(f"{i:>2} {q:>4} {ef:>5.2f} {ivl:>4}日 {day}")
run("毎回 4(少し考えて正解)", [4] * 7)
run("毎回 5(すぐ正解)", [5] * 7)
run("毎回 3(やっと正解)", [3] * 7)
run("4回目に 1(忘れた)", [4, 4, 4, 1, 4, 4, 4])
--- 毎回 4(少し考えて正解)
回 評価 EF 間隔 次の復習日
1 4 2.50 1日 2026-10-24
2 4 2.50 6日 2026-10-30
3 4 2.50 15日 2026-11-14
4 4 2.50 38日 2026-12-22
5 4 2.50 95日 2027-03-27
6 4 2.50 238日 2027-11-20
7 4 2.50 595日 2029-07-07
--- 毎回 5(すぐ正解)
7 5 3.20 1218日 2031-10-07
--- 毎回 3(やっと正解)
7 3 1.52 156日 2027-10-07
--- 4回目に 1(忘れた)
1 4 2.50 1日 2026-10-24
2 4 2.50 6日 2026-10-30
3 4 2.50 15日 2026-11-14
4 1 1.96 1日 2026-11-15
5 4 1.96 1日 2026-11-16
6 4 1.96 6日 2026-11-22
7 4 1.96 12日 2026-12-04
| 評価 q | 1回あたりの EF の変化 |
|---|---|
| 5(すぐ正解) | +0.10 |
| 4(少し考えて正解) | ±0 |
| 3(やっと正解) | −0.14 |
| 2・1・0(不正解) | −0.32・−0.54・−0.80 |
毎回 4 なら7回目の間隔は 595日、毎回 3 なら 156日でした。 「やっと正解」が続くと EF が下がり、間隔の伸びが遅くなります。一度忘れると EF が 1.96 に下がり、間隔は1日に戻りました。
Anki 本体のエンジンで「正解」を押し続ける
Anki の方式は SM-2 をもとにしていますが、ボタンが4つで、最初に分単位の学習ステップがあるなど違いがあります(公式 FAQ)。そこで、Anki 本体の計算エンジン(anki 26.9.3)に新しいカードを入れ、実際にボタンを押して次の間隔を取り出しました。次の復習日を待つ代わりに、期日と前回の復習の時刻を「間隔の日数だけ前」にずらして、期日どおりに復習したのと同じ状態にしています。
"""本物の Anki エンジン(anki 26.9.3)で、ボタンごとの次の間隔を表示する(主な部分)"""
from anki.collection import Collection
from anki.scheduler.v3 import CardAnswer
col = Collection("/dev/shm/s406/sm2.anki2") # 新しいコレクション
# FSRS で試すときは col.set_config("fsrs", True) と目標保持率を設定する
n = col.new_note(col.models.by_name("Basic"))
n["Front"] = "DNS"; n["Back"] = "ドメイン名とIPアドレスを対応づける仕組み"
col.add_note(n, 1)
R = {1: CardAnswer.AGAIN, 2: CardAnswer.HARD, 3: CardAnswer.GOOD, 4: CardAnswer.EASY}
for rating in [3, 3, 3, 3, 3, 3, 3, 3]: # 3 = 正解
q = col.sched.get_queued_cards(fetch_limit=1)
if not q.cards: # 期日まで待つ代わりに、期日を今日にずらす
c = col.get_card(col.find_cards("")[0])
c.due = col.sched.today
c.last_review_time -= c.ivl * 86400 # 前回の復習を ivl 日前にする
col.update_card(c)
q = col.sched.get_queued_cards(fetch_limit=1)
qc = q.cards[0]
card = col.get_card(qc.card.id); card.start_timer()
print(col.sched.describe_next_states(qc.states)) # 4つのボタンの上に出る時期
col.sched.answer_card(col.sched.build_answer(card=card, states=qc.states, rating=R[rating]))
card.load(); print("ivl:", card.ivl, "ease:", card.factor)
同じプログラムを、SM-2(既定)と、FSRS の目標保持率 90%・95%・80% の4通りで動かし、「正解」を8回押したときの間隔(日)を並べました。
| 回 | SM-2 | FSRS 90% | FSRS 95% | FSRS 80% |
|---|---|---|---|---|
| 1回目(新規) | 10分後 | 10分後 | 10分後 | 10分後 |
| 2回目 | 1日 | 2日 | 1日 | 7日 |
| 3回目 | 4日 | 9日 | 4日 | 75日 |
| 4回目 | 8日 | 38日 | 9日 | 484日 |
| 5回目 | 17日 | 151日 | 20日 | 2,657日 |
| 6回目 | 47日 | 448日 | 47日 | 11,326日 |
| 7回目 | 123日 | 1,175日 | 98日 | 36,464日 |
| 8回目 | 302日 | 3,043日 | 180日 | 36,476日 |
- 目標保持率を上げるほど、間隔は短くなり、復習の回数が増えます。 95% では8回目でも 180日でした。80% では7回目で最大間隔(既定 36,500日=約100年)の近くに達しました。
- FSRS の値は、まだ復習の記録が無い状態の既定のパラメーターで計算したものです。実際に使い続けて「最適化」すると、自分の記録に合わせて変わります。
- 間隔には fuzz が入るため、同じ操作でも数日ずれます。何度か実行しても、伸び方の傾向は変わりませんでした。
FSRS で4回目に「もう一度」を押すと、安定性が 10.97日から 1.51日に下がり、難しさが 2.10 から 7.39 に上がりました。その後「正解」を続けると、間隔は 2→2→4→12→30日と、最初より遅いペースで伸び直しました。
評価はどこに記録されるか(revlog)
押したボタンは、コレクションの SQLite の revlog 表に1回ずつ残ります。上の SM-2 の実行のあとで中を見ると、ease 列がボタン(1=もう一度〜4=簡単)、ivl 列が次の間隔でした。負の値は秒で、-600 は「10分後」です。
$ sqlite3 -header -column sm2.anki2 "select ease, ivl, lastIvl, factor, type from revlog order by id;"
ease ivl lastIvl factor type
---- ---- ------- ------ ----
3 -600 0 0 0
3 1 -600 2500 0
3 4 1 2500 1
3 8 4 2500 1
3 20 8 2500 1
3 47 20 2500 1
3 111 47 2500 1
3 288 111 2500 1
この記録は上の比較表とは別の実行で取ったもので、fuzz の分だけ間隔が違います。FSRS の最適化は、この復習の記録をもとにパラメーターを決めます。
Ankiの設定(1日の上限・学習ステップ・FSRS・目標保持率)
この節では、デッキオプションの主な項目の意味と既定値、FSRS の有効にしかたが分かります。
デッキ一覧の歯車のアイコンから「オプション」を開くと(デッキを選んで画面下の「オプション」、学習中に O キーでも開く)、「デッキオプション」の画面で上限やステップを変えられます。 Anki 26.9.3 で新しく作ったコレクションの既定値を、エンジンから読み出しました。項目名は日本語の表示です。
| 項目(日本語表示) | 既定値 | 意味 |
|---|---|---|
| 1 日の新規カード上限 | 20 | 1日に新しく学び始めるカードの数 |
| 1 日の復習上限 | 200 | 1日に出す復習カードの数 |
| 学習ステップ | 1m 10m | 新規カードを出し直す待ち時間 |
| 初回学習後の間隔 | 1日 | 学習ステップを終えたあとの間隔 |
| [簡単] の間隔 | 4日 | 新規カードで「簡単」を押したときの間隔 |
| 再学習ステップ | 10m | 忘れたカードを出し直す待ち時間 |
| 最大間隔 | 36,500日 | これより間隔を伸ばさない |
| 初期間隔係数 | 2.50 | SM-2 の最初の係数 |
| [簡単] のボーナス | 1.30 | 「簡単」で余分に掛ける倍率 |
| [難しい] の間隔 | 1.20 | 「難しい」で掛ける倍率 |
| 定着しにくいカードと判定する忘却回数 | 8 | これだけ忘れると「定着しにくいカード」 |
| 目標保持率(FSRS) | 0.90 | 復習のときに思い出せる確率の目標 |
Anki の画面の説明では、1日の新規カード上限は「通常は復習上限の 10 分の 1 以下にします」とされています。既定の 20 枚と 200 枚は、この割合になっています。また、日付の切り替わり(「翌日分のカードに切り替わる時刻」)は既定で午前4時です。夜中の0時をまたいで勉強しても、2日分のカードが一度に出ないようにするためです(公式マニュアル)。
FSRS を有効にする
デッキオプションを開く
デッキ一覧の歯車のアイコン →「オプション」。
下の「FSRS」の欄でオンにする
コレクション全体に適用される。プリセットごとには切り替えられない。
目標保持率を決める
既定は 90%。上げると復習が増え、下げると忘れるカードが増える。
記録がたまったら最適化する
「現在のプリセットを最適化」で、自分の復習の記録に合うパラメーターを求める。公式マニュアルは月に1回ほどを勧めている。
- 公式マニュアルによると、FSRS には Anki 23.10・AnkiMobile 23.10・AnkiWeb が対応し、AnkiDroid は 2.17 以降が対応しています。Anki の画面の説明も、同期しているすべての端末がこれらの版以降であることを確かめるよう書いています。
- FSRS の使用中に1日以上の学習ステップを付けると、Anki は「FSRS の使用中は、1 日以上のステップは推奨されません。」と表示します。
- 目標保持率の説明(日本語の表示)は、「高すぎる値は学習量を大幅に増やし、低すぎる値は忘れることが多くなって意欲を損なう場合があります」としています。
AnkiWebで同期する(PC・スマホのデータを合わせる)
この節では、PC とスマホのカードと学習の記録をそろえる手順と、同期の注意点が分かります。
PC のメイン画面の右上の「同期」を押し(キーボードの Y でもよい)、AnkiWeb のメールアドレスとパスワードでログインします。 1回目は、どちらのデータを残すかを選びます。
flowchart TD
P[PCのAnki] <-->|同期| W[AnkiWeb<br>無料]
W <-->|同期| M[AnkiMobile<br>AnkiDroid]
カードが入っている端末から同期する
「同期」→ ログイン。PC にだけカードがあるなら「AnkiWeb へアップロード」を選ぶ。
スマホで同じアカウントにログインする
AnkiDroid はデッキ一覧の上の矢印が回る形のボタン。AnkiWeb にだけカードがあるので「AnkiWeb からダウンロード」を選ぶ。
あとは自動で同期される
Anki はプロファイルを開くときと閉じるときに自動で同期する。環境設定で切ることもできる。
- ふつうの復習やノートの編集は、両方の端末で行っても自動でまとめられます。 フィールドの追加やカードの型の削除など、まとめられない変更をすると、Anki は「一方向の同期」を求めます。そのときは「AnkiWeb からダウンロード」(AnkiWeb の内容で置き換える)か「AnkiWeb へアップロード」(この端末の内容で置き換える)を選びます。選ばなかった側の、前回の同期のあとの変更は失われます。
- 画像と音声も同期されます。 環境設定の「メディアを定期的に同期する」をオンにすると、15分ごとにメディアを同期します。
- 6か月以上使わないと、AnkiWeb のデータが消されることがあります。 公式マニュアルによると、消す前にメールが届き、30日以内に ankiweb.net にログインしてカードを1枚学習するか、端末から同期すると残ります。AnkiWeb から消えたデータは AnkiWeb からは戻せません。
バックアップと書き出し
公式マニュアルによると、デスクトップ版は既定で30分ごとに自動のバックアップを作り、「ファイル」の「プロファイルを切り替える」→「バックアップを開く...」で戻せます。自動のバックアップには画像と音声が入らないため、メディアも残したいときは「Anki コレクションパッケージ」(.colpkg)に「メディアを含める」を付けて書き出します。
| 書き出しの形式 | 中身 |
|---|---|
| Anki コレクションパッケージ(.colpkg) | コレクション全体(全デッキ・学習の記録) |
| Anki デッキパッケージ(.apkg) | 選んだデッキとその子デッキ |
| ノート (テキスト形式) | ノートの中身をタブ区切りで |
共有デッキの使い方と自作との使い分け
この節では、ほかの人が作ったデッキを入れる手順と、自作との使い分けが分かります。
デッキ一覧の下の「共有デッキを入手」を押すと、AnkiWeb の共有デッキの一覧が開きます。 使いたいデッキの「Download」で .apkg を保存し、ダブルクリックするか「ファイル」→「読み込む」で取り込みます(公式マニュアル)。
- 共有デッキは、AnkiWeb のアカウントに直接は追加できません。 いったん PC・AnkiMobile・AnkiDroid に読み込み、それから同期します。
- AnkiDroid では、.apkg を Android で開くと AnkiDroid が読み込みの確認を出します(AnkiDroid のマニュアル)。
共有デッキが向くとき
量の多い基本の語(英単語など)を早く始めたい
内容を別の教材で学んだあとの確認に使う
作る時間より、復習する時間を取りたい
自作が向くとき
自分が間違えた所・苦手な所だけを覚えたい
教材の説明と結びつけて覚えたい
試験の範囲に合わせて量を絞りたい
公式マニュアルは、共有デッキは作った人が背景の説明を入れていないことがあり、その分野を知らない人には難しいことがあるため、複雑な分野では外部の教材を補うものとして使うよう書いています。
.apkgファイルの中身を見る(genankiとSQLiteで実物を確認)
この節では、共有デッキの .apkg ファイルの中に何が入っているかを、自分でデッキを作って確かめます。
.apkg は ZIP の形のファイルで、中にカードとノートを入れた SQLite のデータベースが入っています。 Python のライブラリ genanki(MIT ライセンス)で IT 用語のデッキを作り、開いてみました。
"""genanki で IT 用語のデッキ(.apkg)を作る"""
import genanki
model = genanki.Model(
1607392319, # モデル ID(一度決めたら変えない)
"IT用語(用語→意味)",
fields=[{"name": "用語"}, {"name": "意味"}, {"name": "分野"}],
templates=[
{"name": "用語→意味",
"qfmt": "<span class='term'>{{用語}}</span><br><span class='tag'>{{分野}}</span>",
"afmt": "{{FrontSide}}<hr id=answer>{{意味}}"},
{"name": "意味→用語",
"qfmt": "{{意味}}",
"afmt": "{{FrontSide}}<hr id=answer><span class='term'>{{用語}}</span>"},
],
css=".card{font-family:sans-serif;font-size:20px;text-align:center}.term{font-weight:bold}.tag{font-size:14px;color:#888}",
)
deck = genanki.Deck(2059400110, "ITパスポート::用語") # :: でサブデッキになる
words = [
("DNS", "ドメイン名と IP アドレスを対応づける仕組み", "テクノロジ"),
("RAID 1", "同じデータを2台のディスクに書くミラーリング", "テクノロジ"),
("SSD", "フラッシュメモリにデータを記録する記憶装置", "テクノロジ"),
("フィッシング", "本物に似せたサイトやメールで ID やパスワードを盗む手口", "セキュリティ"),
("PDCA", "計画・実行・評価・改善をくり返す管理の手法", "マネジメント"),
("SLA", "サービスの提供者と利用者が品質の水準を取り決めた合意", "マネジメント"),
]
for term, meaning, field in words:
deck.add_note(genanki.Note(model=model, fields=[term, meaning, field], tags=[field]))
genanki.Package(deck).write_to_file("it_terms.apkg")
print("notes:", len(deck.notes), "→ cards:", len(deck.notes) * len(model.templates))
$ python make_deck.py
notes: 6 → cards: 12
$ file it_terms.apkg
it_terms.apkg: Anki APKG file
$ unzip -l it_terms.apkg
Length Date Time Name
--------- ---------- ----- ----
53248 2026-10-23 22:05 collection.anki2
2 2026-10-23 22:05 media
ノート6つ・カードの型2つで、カードは12枚になりました。 中の collection.anki2 は SQLite のデータベースで、media は画像や音声のファイル名の対応表(このデッキは空の {})です。
$ sqlite3 collection.anki2 ".tables"
cards col graves notes revlog
$ sqlite3 -header -column collection.anki2 \
"select mid, tags, replace(flds, char(31), ' | ') as flds, sfld from notes limit 3;"
mid tags flds sfld
---------- ------- --------------------------------------- ------
1607392319 テクノロジ DNS | ドメイン名と IP アドレスを対応づける仕組み | テクノロジ DNS
1607392319 テクノロジ RAID 1 | 同じデータを2台のディスクに書くミラーリング | テクノロジ RAID 1
1607392319 テクノロジ SSD | フラッシュメモリにデータを記録する記憶装置 | テクノロジ SSD
$ sqlite3 -header -column collection.anki2 \
"select nid, did, ord, type, queue, due, ivl from cards order by nid, ord limit 4;"
nid did ord type queue due ivl
------------- ---------- --- ---- ----- --- ---
1792760715916 2059400110 0 0 0 0 0
1792760715916 2059400110 1 0 0 0 0
1792760715919 2059400110 0 0 0 0 0
1792760715919 2059400110 1 0 0 0 0
$ sqlite3 collection.anki2 "select hex(substr(flds,1,4)) from notes limit 1;"
444E531F
| 表 | 入っているもの | 見えたこと |
|---|---|---|
| notes | ノート1つが1行。フィールドは1つの列 flds にまとめて入る |
欄の区切りは 0x1F(444E53 が「DNS」、1F が区切り) |
| cards | カード1枚が1行。どのノート(nid)の何番目の型(ord)か | 1つのノートから ord 0 と 1 の2行 |
| revlog | 評価の記録 | 新しいデッキなので 0 行 |
| col | デッキ・ノートタイプ・設定 | ― |
SQLite を Python から読み書きする方法は、関連記事「Python sqlite3の使い方|CRUDコピペ用コードと実行結果一覧」で扱っています。
本物の Anki に読み込み、書き出し直す
この .apkg を Anki 26.9.3 のエンジンで新しいコレクションに読み込むと、ノート6つが入り、デッキは「ITパスポート」の下に「ITパスポート::用語」の2段になりました。新規・学習中・復習の数は (12, 0, 0) です。
これを Anki から .apkg に書き出し直すと、中身が変わりました。
== Anki 26.9.3 が書き出した .apkg(ふつうの形式)
2 meta
6388 collection.anki21b ← 本当のデータ(zstd で圧縮)
51200 collection.anki2 ← 以前の版の Anki 向けの案内だけ
9 media
$ sqlite3 collection.anki2 "select replace(flds,char(31),' | ') from notes"
Please update to the latest Anki version, then import the .colpkg/.apkg file again. |
$ zstd -d collection.anki21b -o real.db && sqlite3 real.db ".tables"
cards config decks graves notetypes tags
col deck_config fields notes revlog templates
いまの Anki の .apkg は、本当のデータを zstd で圧縮した collection.anki21b に入れています。 同じ名前の collection.anki2 には「最新版の Anki に更新してから読み込み直して」という1枚のノートだけが入っていて、以前の版で開いた人に更新を促す作りでした。公式マニュアルも、新しい形式は読み込みと書き出しが速く、メディアも圧縮されるかわりに、以前の版の Anki では読めないと説明しています。書き出しの画面の「以前のバージョンの Anki に対応する」をオンにすると、以前の形式(collection.anki21 の SQLite)で書き出されました。
アドオンの入れ方と、うまく動かないとき
この節では、アドオンで機能を足す手順と、アドオンが原因で不具合が出たときの切り分け方が分かります。
アドオンの一覧を見る
「ツール」→「アドオン」→「アドオンを探す」、またはブラウザで ankiweb.net/shared/addons を開く。
コードを貼り付ける
アドオンのページに出ている数字のコードを、「アドオンを入手...」で開く画面の「コード:」の欄に貼り付けて OK。
Anki を再起動する
アドオンは起動のときに読み込まれる。
- アドオンは Anki の内部の多くの部分に手を入れられるので、Anki の動きに影響することがあります(公式マニュアル)。必要なものだけを入れます。
- Anki を更新すると、以前のアドオンが動かなくなることがあります。 公式マニュアルは、作者に報告するか、必要ならアドオンが更新されるまで以前の版の Anki を使うよう書いています。
- アドオンの画面の「ファイルからインストール...」で、ファイルから入れることもできます。
不具合が出たときは、Shift キーを押したまま Anki を起動します。公式マニュアルによると、これでアドオンを止めた「セーフモード」で起動します(Linux で効かなければ anki --safemode)。Anki のエラーの画面も、同じ手順を案内しています。
エラーが発生しました。Shift キーを押したまま Anki を起動し、インストール済みのアドオンを一時的に無効にしてください。
アドオンが有効なときだけ問題が起きる場合は、[ツール] > [アドオン] でいくつかのアドオンを無効にして Anki を再起動してください。
よくある悩み:復習がたまる・同期できない・覚えられないカード
この節では、Anki を続けるうえで多い3つの悩みについて、原因と直し方が分かります。
復習がたまる(毎日の枚数が増えすぎる)
復習の枚数は、新規カードを足すほど後から増えます。 Anki 本体のエンジンに入っている FSRS のシミュレーター(デッキオプションの「FSRS シミュレーター」と同じ計算)で、毎日の復習の枚数を計算しました。30日間だけ新規カードを足し、31日目からは足さない、目標保持率 90% の条件です。
"""Anki 本体(26.9.3)の FSRS シミュレーターで、毎日の復習枚数を計算する"""
from anki.collection import Collection
from anki import scheduler_pb2 as s
from fsrs import Scheduler # 既定のパラメーター(FSRS-6 の 21 個)
col = Collection("/dev/shm/s406/sim.anki2")
params = list(Scheduler().parameters)
def sim(new_limit, deck_size, days, dr=0.9):
req = s.SimulateFsrsReviewRequest(
params=params, desired_retention=dr, deck_size=deck_size,
days_to_simulate=days, new_limit=new_limit, review_limit=9999,
max_interval=36500, search="deck:none", learning_step_count=2,
relearning_step_count=1)
return list(col._backend.simulate_fsrs_review(req).daily_review_count)
for n in (10, 20, 40):
r = sim(n, n * 30, 60) # 毎日 n 枚 × 30日分のカード
print(f"新規{n}/日×30日: 7日目{r[6]} 14日目{r[13]} 30日目{r[29]} 最大{max(r)}({r.index(max(r))+1}日目) 45日目{r[44]} 60日目{r[59]}")
for dr in (0.8, 0.9, 0.95):
r = sim(20, 600, 60, dr)
print(f"目標保持率{dr}: 30日目{r[29]} 最大{max(r)} 60日間の合計{sum(r)}")
新規10/日×30日: 7日目23 14日目27 30日目35 最大48(24日目) 45日目14 60日目13
新規20/日×30日: 7日目42 14日目59 30日目61 最大84(31日目) 45日目39 60日目30
新規40/日×30日: 7日目78 14日目98 30日目142 最大180(31日目) 45日目85 60日目67
目標保持率0.8: 30日目39 最大52 60日間の合計1661
目標保持率0.9: 30日目61 最大84 60日間の合計3006
目標保持率0.95: 30日目134 最大140 60日間の合計4858
新規を毎日20枚足すと、1か月後には毎日 60〜80 枚ほどの復習が来ました。 新規を止めると、45日目には 39 枚、60日目には 30 枚まで減りました。シミュレーターは既定のパラメーターで「思い出せたかどうか」を確率で決めて計算したもので、実際の枚数は人によって変わります。
- 1新規カードの上限を下げる・0にする復習が減るまで新規を止める。上のとおり、新規を止めれば復習は減っていく
- 2たまった復習を先に片づける1日の復習上限で、その日に出す枚数の上限を決められる
- 3目標保持率を見直す(FSRS)95% から 90% にすると、60日間の復習は 4,858 枚から 3,006 枚になった
- 4覚えにくいカードを書き直す何度も忘れるカードは、分ける・手掛かりを足すと復習が減る
1日の上限に達すると、Anki は「今日の復習上限に達しましたが、復習待ちのカードがまだあります。」と表示します。
同期できない(エラーの文言から原因を探す)
同期のエラーの文言は、Anki 26.9.3 の日本語の翻訳データから取り出したものです。
同期できません。コンピューターの時刻が正しく設定されていません。
同じアカウントに複数の端末から同時に同期することはできません。数分待ってから、もう一度試してください。
メールアドレスまたはパスワードが正しくありません。もう一度試してください。
[データベースを検査] を実行してから、もう一度同期してください。問題が続く場合は、環境設定で一方向の同期を強制してください。
AnkiWeb で問題が発生しました。数分待ってから、もう一度試してください。
お使いの Anki はバージョンが古いため、同期を続行できません。最新版へ更新してください。
| 表示の要点 | 原因 | 直し方 |
|---|---|---|
| コンピューターの時刻が正しく設定されていません | PC の時計がずれている | OS の日付・時刻を自動設定にする |
| 複数の端末から同時に同期することはできません | 別の端末が同期の途中 | 数分待って同期し直す |
| メールアドレスまたはパスワードが正しくありません | ログイン情報の誤り | ankiweb.net でログインできるか確かめる |
| [データベースを検査] を実行してから | コレクションの中に不整合がある | 「ツール」→「データベースを検査」の後に同期 |
| AnkiWeb で問題が発生しました | AnkiWeb 側の一時的な問題 | 数分待って同期し直す |
| 同期を続行できません。最新版へ更新 | Anki の版が以前のもの | 最新版に更新する |
「データベースを検査」でも直らないときは、環境設定の「次回の同期で一方向の同期を強制する」をオンにして、どちらかのデータで置き換えます。置き換える前に、残す側の端末が新しい記録を持っていることを確かめます。
何度も忘れるカード(定着しにくいカード)
同じカードを8回忘れると、Anki はそのカードを「定着しにくいカード」と判定し、ノートに leech のタグを付けます。 判定のあとも、最初の回数の半分ごと(既定では 12回目・16回目)に知らせます(公式マニュアル)。公式マニュアルは判定したカードを休止すると説明していますが、26.9.3 で新しく作ったコレクションの既定値を読み出すと、処理は「タグのみ」(休止はせず、タグと通知だけ)でした。デッキオプションの「定着しにくいカードへの処理」で変えられます。
公式マニュアルが勧める扱い方は、カードを小さく分ける・覚えやすい手掛かりを足すなどの「書き直す」、覚える価値が低ければ「削除する」、似た内容とぶつかるなら片方を休止して「待つ」、の3つです。「カード管理」で「定着しにくいカード」を検索すると、一覧で見直せます。
資格の勉強にAnkiを使う例(ITパスポートの用語)
この節では、IT の資格の勉強で Anki のデッキをどう組むかを、例で示します。
覚える対象は「用語と意味」にし、問題の文は自分の言葉で作ります。 試験の過去問題そのものをカードに写すと、問題の形を覚えてしまい、用語の意味を思い出す練習になりにくくなります。この記事でも、試験の問題は載せていません。IPA は、公表している過去の試験問題を使うことについて、法令に特別の定めがある場合を除き許諾や使用料は要らないとし、留意点をよくある質問で確かめるよう書いています。
| デッキ | 入れるもの | ノートタイプ |
|---|---|---|
| ITパスポート::用語 | 用語と意味(DNS・SLA など) | 用語→意味・意味→用語の2枚 |
| ITパスポート::略語 | 略語と元の言葉 | 基本 |
| ITパスポート::計算 | 計算の手順を穴埋めにしたもの | 穴埋め問題 |
| ITパスポート::図 | ネットワーク図・構成図の部品の名前 | 画像穴埋め |
| ITパスポート::間違えた所 | 模擬試験で間違えた論点 | 基本 |
- 1教材で理解してからカードにする意味の分からない用語を覚えても、試験の文章で使えない
- 2分野のフィールドとタグを付けるテクノロジ・マネジメント・ストラテジで絞って学習できる
- 3試験日から逆算して新規の数を決める試験直前に足した新規カードの復習は、試験の後に回ってくる
- 4間違えた所は、その日のうちにカードにする模擬試験の結果をそのまま復習の対象にできる
前の節のシミュレーターでは、新規を止めてから復習が半分ほどに減るまでに2週間ほどかかりました。試験の2〜3週間前には新規の上限を下げ、覚えたカードの復習に時間を回すと、直前に復習が増えすぎません。
ほかの資格の範囲と勉強の進め方は、関連記事「AWSクラウドプラクティショナーとは|CLF-C02の範囲・配点・対策」と関連記事「応用情報の午後(科目B)対策|過去問の使い方・選び方・答え方」で扱っています。覚える前の「理解する」ためのノートの作り方は、関連記事「Obsidianとは・使い方|保管庫の中身・同期・料金とNotionとの違い」で扱っています。
よくある質問
Q. Ankiとは何ですか?読み方は? A. 忘れかけた頃にカードを出し直す「間隔反復」で覚える、無料の暗記カードのアプリです。読み方は「アンキ」で、名前は日本語の「暗記」から来ています。
Q. Ankiは無料ですか?iPhone版は有料ですか? A. Windows・Mac・Linux のデスクトップ版、Android の AnkiDroid、同期の AnkiWeb は無料です。iPhone・iPad の AnkiMobile は App Store で 4,000円(2026年10月23日時点)の買い切りです。
Q. Ankiは日本語で使えますか? A. 使えます。表示言語は環境設定で変えられ、ボタンは「もう一度」「難しい」「正解」「簡単」と表示されます。
Q. 1日の新規カードは何枚がよいですか? A. 既定は 20 枚です。シミュレーターでは、新規20枚を毎日足すと1か月後の復習は1日 60〜80 枚ほどになりました。復習に使える時間から逆算して決め、復習がたまったら新規を減らします。
Q. 4つのボタンはどう使い分けますか? A. 思い出せなければ「もう一度」、思い出せたら「正解」が基本です。「難しい」を押し続けると間隔係数が下がり、間隔がほとんど伸びなくなりました。
Q. FSRSは有効にしたほうがよいですか? A. FSRS は、忘れる確率を予測して復習日を決める方式で、Anki 23.10 から選べます。同期するすべての端末が対応する版(AnkiDroid は 2.17 以降)であることを確かめてから有効にし、記録がたまったら「最適化」します。
Q. 目標保持率はいくつにすればよいですか? A. 既定は 90% です。実測では、95% にすると「正解」8回目の間隔が 180日、80% にすると最大間隔近くまで伸びました。上げるほど復習が増えます。
Q. 復習がたまってしまいました。どうすればよいですか? A. 新規カードの上限を下げるか0にして、たまった復習を先に片づけます。新規を止めると、復習の枚数は少しずつ減っていきます。
Q. Ankiで同期できないときは? A. エラーの文言で原因を分けます。時刻のずれ、別の端末の同期中、パスワードの誤り、コレクションの不整合(データベースを検査)、Anki の版が以前のもの、が主な原因です。
Q. 共有デッキと自作のどちらがよいですか? A. 量の多い基本の語は共有デッキ、苦手な所や教材と結びつけたい所は自作が向きます。公式マニュアルは、複雑な分野では共有デッキを外部の教材の補いとして使うよう書いています。
Q. .apkgとは何ですか? A. Anki のデッキを1つのファイルにまとめたものです。中身は ZIP で、カードとノートの SQLite のデータベースが入っています。いまの Anki が書き出す形式は zstd で圧縮されています。
Q. アドオンを入れたらAnkiがおかしくなりました。 A. Shift キーを押したまま Anki を起動すると、アドオンを止めたセーフモードで起動します。それで直るなら、アドオンを1つずつ無効にして原因を探します。
まとめ
- Anki は、アクティブリコールと間隔反復で覚える無料の暗記アプリ。iPhone の AnkiMobile だけ有料(4,000円)。
- ノートは情報のまとまり、カードはそこから作られる1問、デッキはカードの箱。
::で親子のデッキになる。 - 思い出せなければ「もう一度」、思い出せたら「正解」。新規カードは 1分・10分の学習ステップを経て1日後の復習へ移る。
- 本物のエンジンで「正解」を8回押すと、SM-2 は 302日、FSRS 90% は 3,043日、95% は 180日まで間隔が伸びた。
- .apkg は ZIP で、中は SQLite。いまの形式は zstd で圧縮した
collection.anki21bに本当のデータがある。 - 復習がたまったら新規を止める。新規20枚/日を1か月続けると、復習は最大で1日 84 枚になった。
次に読むとよい記事です。.apkg の中の SQLite を Python から扱う方法は関連記事「Python sqlite3の使い方|CRUDコピペ用コードと実行結果一覧」で、genanki のようなライブラリを入れる仮想環境の作り方は関連記事「Python venvの使い方|仮想環境の作成・有効化・削除をOS別にコピペ」で扱っています。
参考・出典
確認日はいずれも 2026年10月23日です。
- Anki 公式サイト(ダウンロード):https://apps.ankiweb.net/
- Anki Manual「Background」:https://docs.ankiweb.net/background.html
- Anki Manual「Getting Started」:https://docs.ankiweb.net/getting-started.html
- Anki Manual「Studying」:https://docs.ankiweb.net/studying.html
- Anki Manual「Deck Options」:https://docs.ankiweb.net/deck-options.html
- Anki Manual「Editing and More」:https://docs.ankiweb.net/editing.html
- Anki Manual「Syncing with AnkiWeb」:https://docs.ankiweb.net/syncing.html
- Anki Manual「Backups」:https://docs.ankiweb.net/backups.html
- Anki Manual「Exporting」:https://docs.ankiweb.net/exporting.html
- Anki Manual「Leeches」:https://docs.ankiweb.net/leeches.html
- Anki Manual「Add-ons」:https://docs.ankiweb.net/addons.html
- Anki Manual「Preferences」:https://docs.ankiweb.net/preferences.html
- Anki Manual「Troubleshooting」:https://docs.ankiweb.net/troubleshooting.html
- Anki Manual「Installing on Windows」:https://docs.ankiweb.net/platform/windows/installing.html
- Anki Manual「Installing on Mac」:https://docs.ankiweb.net/platform/mac/installing.html
- Anki Manual「Installing on Linux」:https://docs.ankiweb.net/platform/linux/installing.html
- Anki FAQ「What spaced repetition algorithm does Anki use?」:https://docs.ankiweb.net/faqs/what-spaced-repetition-algorithm
- App Store「AnkiMobile Flashcards」:https://apps.apple.com/jp/app/ankimobile-flashcards/id373493387
- AnkiDroid Manual:https://docs.ankidroid.org/manual.html
- ankitects/anki「LICENSE」(GitHub):https://github.com/ankitects/anki/blob/main/LICENSE
- ankitects/anki Releases(GitHub):https://github.com/ankitects/anki/releases
- open-spaced-repetition「ABC of FSRS」:https://github.com/open-spaced-repetition/awesome-fsrs/wiki/ABC-of-FSRS
- Wikipedia「SuperMemo」(SM-2 の手順):https://en.wikipedia.org/wiki/SuperMemo
- Wikipedia「Anki (software)」:https://en.wikipedia.org/wiki/Anki_(software)
- genanki(GitHub):https://github.com/kerrickstaley/genanki
- py-fsrs(PyPI):https://pypi.org/project/fsrs/
- IPA「過去問題」:https://www.ipa.go.jp/shiken/mondai-kaiotu/index.html
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Ankiとは・使い方|間隔反復の仕組み・設定・FSRSを実物で解説」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。