基本情報技術者 2014年 春期 午前(科目A) 問05
問題文
表は、文字列を検査するための状態遷移表である。検査では、初期状態をaとし、文字列の検査中に状態がeになれば不合格とする。
解答群で示される文字列のうち、不合格となるものはどれか。ここで、文字列は左端から検査し、解答群中の△は空白を表す。

選択肢
ア:+0010
イ:-1
ウ:12.2(正解)
エ:9.△
🔒 解説は解答すると表示されます
文字列検査の状態遷移【午前解説】
正解の理由
正解は ウ です。
選択肢「12.2」を左から順に検査すると、遷移表に従って a→b→b→d→e と進み、最後の文字を読み込んだ時点で状態eに到達します。問題文は「状態がeになれば不合格」としているため、この文字列は不合格になります。
選択肢「12.2」を左から順に検査すると、遷移表に従って a→b→b→d→e と進み、最後の文字を読み込んだ時点で状態eに到達します。問題文は「状態がeになれば不合格」としているため、この文字列は不合格になります。
具体的な遷移(重要部分)
- a にて '1'(数字)→ b
- b にて '2'(数字)→ b
- b にて '.'(小数点)→ d
- d にて '2'(数字)→ e → 不合格確定
解法ステップ
- 文字を左端から順に読み、各文字を「空白/数字/符号/小数点/その他」のいずれかに分類する。
- 現在の状態と文字カテゴリから遷移表を参照し、新しい状態に移す。
- 各文字毎に遷移先が e になったかをチェックし、e に到達したら即座に不合格と判断する。
- 最後まで e に到達しなければ不合格にならない(合格扱い)とする。
選択肢別の誤答解説
- ア: +0010
- 遷移:a ―'+'(符号)→ c ―'0'→ b ―'0'→ b ―'1'→ b ―'0'→ b
- 結果:状態eには到達しない → 合格(不合格ではない)。
- イ: -1
- 遷移:a ―'-'(符号)→ c ―'1'→ b
- 結果:状態eには到達しない → 合格。
- ウ: 12.2 ← 正解(不合格)
- 遷移:a ―'1'→ b ―'2'→ b ―'.'→ d ―'2'→ e(ここで不合格確定)
- 解説:dから数字への遷移が e のため、最後の文字で不合格となる。
- エ: 9.△(9、ピリオド、空白)
- 遷移:a ―'9'→ b ―'.'→ d ―' '(空白)→ a
- 結果:途中でeにならず最終的にaへ戻る → 合格(不合格ではない)。
よくある誤解
- 小数点の後は普通に数字が続けばOKと誤解する:本表では d状態で数字を読むと e に遷移するため、不合格になる点を見落としがちです。
- 空白(△)の扱いを軽視する:空白は a や d などで受け入れ・復帰の挙動が異なるため、空白の遷移も必ず確認してください。
- 途中でeになったら処理を続けても良いと考える:問題では「状態がeになれば不合格」と明示されているため、到達した時点で判定は確定します。
補足コラム
この問題は有限状態機械(DFA)における遷移の追跡力を試す典型題です。試験対策としては「文字を分類する力」と「遷移表を逐一追う習慣」が鍵になります。特に「小数点などの特殊文字の後」の振る舞い(ここではd状態の挙動)を暗記ではなく表を見て確実に追えるようにしておくと時間短縮になります。
FAQ
Q1: 空白(△)はどのように扱えばいいですか?
A1: 遷移表の「空白」列を参照し、現在状態からの遷移先を必ず確認してください。空白で a に戻るケースなどがあるため見落とすと誤答になります。
A1: 遷移表の「空白」列を参照し、現在状態からの遷移先を必ず確認してください。空白で a に戻るケースなどがあるため見落とすと誤答になります。
Q2: 途中で e に到達したら残りは見なくてよいですか?
A2: はい。問題文で「状態が e になれば不合格」とあるため、到達した時点で判定は確定します。
A2: はい。問題文で「状態が e になれば不合格」とあるため、到達した時点で判定は確定します。
Q3: 記号の分類に迷ったら?
A3: 問題文の列見出し(空白/数字/符号/小数点/その他)に従って分類してください。判定基準が明確に示されています。
A3: 問題文の列見出し(空白/数字/符号/小数点/その他)に従って分類してください。判定基準が明確に示されています。
関連キーワード: 有限オートマトン、状態遷移表、文字分類、文字列検査、受理/非受理、遷移追跡技法

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

