SAシステムアーキテクト試験 午前Ⅰ
平成27年度秋期 システムアーキテクト 午前Ⅰ 問3
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アa と i
- イb と r
- ウc と l
- エd と x
解き方のヒントを見る
用語と前提を対応付ける視点
ハッシュ表の設問では、用語の定義だけを暗記して判断せず、問題文が置く入力・規則・格納先の関係を丁寧に対応付け、問われている条件の範囲を一つずつ確認することが重要です。
この問題で問われていること
確認の中心を、入力と処理規則、結果として扱われる位置や状態の対応関係に絞りましょう。文中の条件がどの概念を説明しているかを、表現の似ている選択肢に流されず整理してください。
視点
用語の意味を単独で当てはめるのではなく、問題文に示された対象・規則・結果の関係を同じ基準で読み取ります。特定の式や数値に進む前に、何と何を比較し、どの条件を確認する問いなのかを明確にすると、判断の軸がぶれにくくなります。
確認ポイント
- 問題文で与えられた対象と、変換や参照の対象を区別できているか
- 規則の適用前後で、比較しているものが同じ種類か確認したか
- 設問が求める条件と、単なる周辺情報を分けて読めているか
正解と解説を見る
正解
エ
解説
ハッシュ値はASCIIコードの10進表記の1の位なので、異なるキーでもコード末尾が一致すれば衝突する。小文字はaから連続したコードで割り当てられるため、候補ごとに末尾を比較する。
理由
ハッシュ値をh(k)=ASCII(k) mod 10と考える。小文字のコードはaが97で、アルファベット順に1ずつ増える。各候補を計算すると、dは100なのでハッシュ値0、xは120なのでハッシュ値0となり、同じ格納位置になる。
比較
aは97で7、iは105で5、bは98で8、rは114で4、cは99で9、lは108で8となるため、それぞれの組合せでは値が一致しない。一方、dとxはともに末尾が0であり、衝突条件を満たす。
選択肢ア
これは不正解だよ。aのASCIIコードは97でハッシュ値は7、iは105で5になる。1の位が一致せず、異なる表位置に格納されるため、この組合せでは衝突しない。したがって、ハッシュ関数の定義に基づく衝突条件を満たさない。
選択肢イ
これは不正解だよ。bのASCIIコードは98でハッシュ値は8、rは114で4になる。1の位が一致せず、異なる表位置に格納されるため、この組合せでは衝突しない。したがって、ハッシュ関数の定義に基づく衝突条件を満たさない。
選択肢ウ
これは不正解だよ。cのASCIIコードは99でハッシュ値は9、lは108で8になる。1の位が一致せず、異なる表位置に格納されるため、この組合せでは衝突しない。したがって、ハッシュ関数の定義に基づく衝突条件を満たさない。
選択肢エ(正解)
これは正解だよ。dのASCIIコードは100でハッシュ値は0、xは120で0になる。1の位が一致するため、異なるキーが同じ表位置を指し、ハッシュ値の衝突が起こる。この組合せは設問の条件に合致する。
学習のポイント
ASCIIコードの連続性と、10を法とする剰余の見方を身につける。
出典:独立行政法人 情報処理推進機構(IPA)平成27年度秋期 システムアーキテクト試験 午前Ⅰ 問3(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針