基本情報技術者試験 |
2005年度 = 平成17年度・秋期 |
午前 |
問2 |
0000~4999のアドレスをもつハッシュ表があり、レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。キー値が55550のときのアドレスはどれか。ここで、基数変換法ではキー値を11進数と見なし、10進数に変換した後、下4けたに対して0.5を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。
ア 0260
| イ 2525
| ウ 2775
| エ 4405
|
ア
ハッシュ法は、キー値に対して何らかの変換関数を適用することによって、そのデータを格納する位置(レコード番号や配列の添字など)を求める手法です。なお、変換関数のことをハッシュ関数と呼びます。
本問のハッシュ関数は基数変換法であり、問題文で指示されたとおりに変換を行えば、キー値からアドレスが得られます。
- ■ キー値を11進数とみなして10進数に変換
- 11進数のキー値55550を10進数に変換します。
5×114 + 5×113 + 5×112 + 5×111 + 0 = 80520
- ■ 下4けたに対して0.5を乗じる
- 80520の下4けた0520に0.5を乗じます。
520 × 0.5 = 260