最終更新日:2026年7月28日
fe technology basic-theory state-transition
まず結論
状態遷移表は、現在の状態と入力の組合せから、次の状態を確認するための表です。
科目Aでは、次の順で追えば解けます。
現在状態を確認する
↓
入力との交点を見る
↓
次の状態へ更新する
↓
次の入力を処理する
一番大切なのは、状態が変わったら、次の入力は新しい状態から読むことです。
直感的な説明
状態遷移表は、機械やシステムの「動作ルール表」と考えると分かりやすいです。
たとえば、自動販売機を考えます。
- 待機中に硬貨が入る
- 商品選択待ちへ移る
- 商品ボタンが押される
- 商品を出して待機中へ戻る
このように、システムは今いる状態と入力によって次の状態を変えます。
現在状態 + 入力 → 次状態
状態遷移表では、この関係を行と列の交点で表します。
定義・仕組み
状態遷移表には、主に次の3つがあります。
| 項目 | 意味 |
|---|---|
| 現在状態 | 今いる状態 |
| 入力 | 今回与えられる信号やイベント |
| 次状態 | 入力後に移る状態 |
たとえば、次のような表があるとします。
| 入力\状態 | S1 | S2 | S3 |
|---|---|---|---|
| t1 | S2 | S1 | |
| t2 | S3 | S2 |
現在状態がS1で、入力がt1なら、交点はS2です。
S1 --t1--> S2
次の入力を処理するときは、S1ではなくS2から読みます。
空欄の扱い
問題文で「空欄は状態が変化しない」と指定されている場合、現在状態をそのまま維持します。
現在状態:S2
入力:t1
交点:空欄
→ S2のまま
空欄を「処理終了」や「未定義」と決めつけないようにします。空欄の意味は、必ず問題文の条件を確認します。
科目Aでどう出る?
状態遷移表の問題では、複数の入力を順番に与え、最後の状態を求める形式がよく出ます。
次の作業表を自分で書くと、途中の見落としを防げます。
| 手順 | 現在状態 | 入力 | 次状態 |
|---|---|---|---|
| 1 | S1 | t1 | S2 |
| 2 | S2 | t2 | S3 |
| 3 | S3 | t1 | S1 |
解く手順は次のとおりです。
- 初期状態を書く
- 入力を1つだけ読む
- 表の交点を確認する
- 現在状態を次状態へ書き換える
- 次の入力へ進む
判断表
| 問題文の表現 | 見るポイント |
|---|---|
| 現在の状態がS1 | 最初に見る列はS1 |
| 入力を順番に与える | 1つずつ処理する |
| 空欄は変化なし | 現在状態を維持する |
| 最後の状態を求める | 全入力を処理した後の状態を見る |
| 行が入力、列が状態 | 見出しを確認して交点を読む |
どんな場面で使う?
状態遷移の考え方は、状態によって動作が変わるシステムで使われます。
たとえば、次のような場面です。
- 自動販売機
- エレベーター
- 信号機
- ログイン処理
- 通信プロトコル
- 組込み機器の制御
- ゲームキャラクターの動作
同じ入力でも、現在状態が違えば次の動作が変わることがあります。
入力が同じ
≠
結果も同じ
現在状態と入力をセットで見ることが重要です。
よくある誤解・混同
最初の状態の列を最後まで見る
一度状態が変わった後も、最初の状態の列を見続ける誤りです。
S1 → S3
となった後は、次の入力をS3列で確認します。
状態が変わるたびに、見る列も変わります。
空欄なら入力を無視する
空欄が「状態変化なし」を表す場合でも、入力は1回分処理されています。
状態はそのまま
↓
次の入力へ進む
同じ入力をもう一度読むわけではありません。
行と列を逆に読む
表によって、行と列の配置は異なります。
- 行が入力、列が状態
- 行が状態、列が入力
どちらの場合もあります。最初に見出しを確認します。
状態遷移表と状態遷移図は別の仕組み
状態遷移表と状態遷移図は、表現方法が違うだけで、表している内容は同じです。
| 表現 | 特徴 |
|---|---|
| 状態遷移表 | 交点から次状態を探しやすい |
| 状態遷移図 | 状態と移動の流れを直感的に見やすい |
どちらも基本は次の関係です。
現在状態 + 入力 → 次状態
まとめ(試験直前用)
- 状態遷移表は、現在状態と入力から次状態を決める表
- 入力は必ず1つずつ順番に処理する
- 遷移後は、新しい状態から次の入力を読む
- 空欄の意味は問題文を確認し、「変化なし」なら現在状態を維持する
- 行と列の見出しを先に確認する
- 迷ったら、
手順|現在状態|入力|次状態の作業表を書く