基本情報技術者試験 基本情報技術者試験 令和6年度 科目A 公開問題 午前 問2: キーが小文字のアルファベット1文字(a, b, …, zのいずれか)であるデータを,大きさが10のハッシュ表に格納する。ハッシュ関数として,アルファベットのAS

基本情報技術者試験 令和6年度 科目A 公開問題
Q 22 / 20
キーが小文字のアルファベット1文字(a, b, …, zのいずれか)であるデータを,大きさが10のに格納する。として,アルファベットのASCIIコードを10進表記で表したときの1の位の数を用いることにする。衝突が起こるキーの組合せはどれか。ASCIIコードでは,昇順に連続した2進数が,アルファベット順にコードとして割り当てられている。
この問の正解率:70.04%(1,492件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

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

選択肢

  • .a と i
  • .b と r
  • .c と l
  • .d と x

正解

. d と x

解説

ハッシュ関数 = ASCII コード10進表記の1の位。ASCII で 'a'=97。各文字の値: a=97(1の位7), b=98(8), c=99(9), d=100(0), e=101(1)…と続き、i=105(5), l=108(8), r=114(4), x=120(0)。衝突するのは1の位が同じ組合せ。d(0) と x(0) が共に 0 で衝突します。エが正解。

選択肢ごとの解説

  • .a=97 の1の位は 7、i=105 の1の位は 5 で異なるため衝突しません。
  • .b=98 の1の位は 8、r=114 の1の位は 4 で異なるため衝突しません。
  • .c=99 の1の位は 9、l=108 の1の位は 8 で異なるため衝突しません。
  • .d=100 の1の位は 0、x=120 の1の位も 0 で衝突します。正解です。

基本情報技術者試験 令和6年度 科目A 公開問題過去問一覧へ戻る・問2