戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2015年 秋期 午前205


問題文

キーが小文字のアルファベット1文字 (a, b, zのいずれか)であるデータを、大きさが 10 のハッシュ表に格納する。ハッシュ関数として、アルファベットのASCIIコードを 10 進表記法で表したときの1の位の数を用いることにする。衝突が起こるキーの組合せはどれか。ASCII コードでは、昇順に連続した 2進数が、アルファベット順にコードとして割り当てられている。

選択肢

aとi
bとr
cとl
dとx(正解)

キーが小文字のアルファベット1文字のハッシュ衝突問題【午前2 解説】

要点まとめ

  • 結論:ハッシュ関数はASCIIコードの1の位を使うため、1の位が同じキー同士で衝突が起こる。
  • 根拠:小文字アルファベットはASCIIコードで連続しており、1の位の数字が同じなら同じハッシュ値になる。
  • 差がつくポイント:ASCIIコードの具体的な値を正確に把握し、1の位の数字を比較できるかが重要。

正解の理由

ASCIIコードで小文字のアルファベットは'a'が97、'b'が98、…と連続しています。
ハッシュ関数は「ASCIIコードの1の位の数字」を使うため、例えば'a'は97で1の位は7、'i'は105で1の位は5。
選択肢の中で1の位が同じになるのは'd'(100)と'x'(120)で、どちらも1の位が0となり衝突します。
よって正解はです。

よくある誤解

ASCIIコードの全体の値を使うと思い込み、1の位だけを見落とすことがあります。
また、アルファベットの順序とASCIIコードの対応を正確に理解していないことも多いです。

解法ステップ

  1. 小文字アルファベットのASCIIコードを調べる(例:a=97, b=98, …)。
  2. 各キーのASCIIコードの1の位の数字を抽出する。
  3. 1の位の数字が同じペアを探す。
  4. 衝突が起こる組み合わせを選択肢から特定する。

選択肢別の誤答解説

  • ア: a(97→7)とi(105→5) → 1の位が異なるため衝突しない。
  • イ: b(98→8)とr(114→4) → 1の位が異なるため衝突しない。
  • ウ: c(99→9)とl(108→8) → 1の位が異なるため衝突しない。
  • エ: d(100→0)とx(120→0) → 1の位が同じ0で衝突するため正解。

補足コラム

ASCIIコードは英数字や記号を数値で表現する標準で、小文字アルファベットは97から122まで連続しています。
ハッシュ関数の設計では、衝突を避けるためにキーの特徴をよく理解し、適切な関数を選ぶことが重要です。

FAQ

Q: なぜASCIIコードの1の位だけを使うのですか?
A: 問題文で指定されたハッシュ関数の仕様であり、簡単に計算できるためです。
Q: 衝突が起きるとどうなりますか?
A: 同じハッシュ値に複数のキーが割り当てられ、衝突解決の処理が必要になります。

関連キーワード: ASCIIコード、ハッシュ関数、衝突、小文字アルファベット、ハッシュテーブル
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について