平成21年度 春期 午前 問2
アルゴリズム
基数変換法に関する問題
0000 〜 4999 のアドレスをもつハッシュ表があり,レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。キー値が 55550 のときのアドレスはどれか。ここで,基数変換法とは,キー値を 11 進数とみなし,10 進数に変換した後,下 4 けたに対して 0.5 を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。
- ア0260
- イ2525
- ウ2775
- エ4405
答えと解説を見る
✓ これが正解ア0260
解説
11 進数として読み、下 4 けたを半分にします。
設問が定めている基数変換法は、三つの段を順に踏む決め方です。まずキー値の並びを 11 進数とみなして 10 進数に直し、次にその結果の下 4 けただけを取り出し、最後に 0.5 を掛けて小数点以下を切り捨てます。見分けるときの軸は、この三つをどれも飛ばさずに順どおり踏むことです。キー値 55550 を 11 進数として読むと、桁の重みは大きいほうから 14641 、1331 、121 、11 、1 なので、上から四つの重みに 5 を、一の位の重みに 0 を掛けて足し合わせると 80520 になります。ここから下 4 けたを取ると 0520 で、これに 0.5 を掛けると 260 、すなわち 0260 です。下 4 けたは 0 から 9999 までにしかならず、その半分は 0 から 4999 までに必ず収まるので、この手順そのものがハッシュ表のアドレスの範囲へ落とし込む工夫になっています。
ほかの選択肢はなぜ違うのか
- イ2525:2525 を挙げる内容です。キー値を 11 で割った 5050 の半分にあたる数で、11 進数として桁の重みを掛け直すという最初の段を、11 で割ることと取り違えた場合に現れます。
- ウ2775:2775 を挙げる内容です。キー値を 10 進数のまま扱い、その下 4 けたである 5550 を半分にした数にあたります。桁の重みを掛け直す最初の段を丸ごと飛ばしています。
- エ4405:4405 を挙げる内容です。この決め方のどの段からも出てきません。10 進数に直しても、下 4 けたを先に取っても、切り捨てたあとにこの数へ届く道はありません。
この問題の用語
- ハッシュハッシュ関数で作られた値そのもの。元に戻せないので、中身を見せずに同じかどうかだけを確かめるのに使えます。
- アルゴリズム問題を解くための、決まった手順や考え方そのものです。同じ問題でも手順によって、処理にかかる時間や必要な記憶量が変わります。
出典:平成21年度 春期 基本情報技術者試験 午前 問2
同じ用語が出る問題
- 令和5年度 科目B 問4:ハッシュに関する問題(ハッシュ)
- 平成31年度 春期 午前 問18:理想的なハッシュ法の説明(アルゴリズム)
- 平成30年度 秋期 午前 問2:排他的論理和に関する問題(アルゴリズム)
- 平成30年度 春期 午前 問7:表探索におけるハッシュ法の特徴(ハッシュ)
- 平成29年度 春期 午前 問27:ソートマージ結合法に関する記述(ハッシュ)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)