No.68 0000~4999のアドレスをもつハッシュ表があり,レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。
キー値が55550のときのアドレスはどれか。
ここで,基数変換法とは,キー値を11進数とみなし,10進数に変換した後,下4桁に対して0.5を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。
キー値が55550のときのアドレスはどれか。
ここで,基数変換法とは,キー値を11進数とみなし,10進数に変換した後,下4桁に対して0.5を乗じた結果(小数点以下は切捨て)をレコードのアドレスとする。
⭕️
❌
💾
🖊 | ☑️ |
⭕️ | [[ AnswerCalc[0] ]] % | A | [[ AnswerCalc[1] ]] |
n進数で表された数を10進数に変換できるかがポイントです。
キー値 55550 が11進数だとすると、桁ごとに11の累乗になっているので、10進数に変換するには、
5×114+5×113+5×112+5×111
という式の値を求めることになります。これを地道に計算してもよいのですが、ここでは速く解くために、まず式を変形(下線部分)してから解いています。
5×114+5×113+5×112+5×111
=(113+112+11+1)×55 ※
=(1331+121+11+1)×55
=80520
最後に 80520 の下4けた「0520」に0.5を乗じると参照すべきアドレス0260が求められます。
※補足 式の変形
5×114+5×113+5×112+5×111
=(114+113+112+111)×5
=(113+112+11+1)×5×11
=(113+112+11+1)×55
キー値 55550 が11進数だとすると、桁ごとに11の累乗になっているので、10進数に変換するには、
5×114+5×113+5×112+5×111
という式の値を求めることになります。これを地道に計算してもよいのですが、ここでは速く解くために、まず式を変形(下線部分)してから解いています。
5×114+5×113+5×112+5×111
=(113+112+11+1)×55 ※
=(1331+121+11+1)×55
=80520
最後に 80520 の下4けた「0520」に0.5を乗じると参照すべきアドレス0260が求められます。
※補足 式の変形
5×114+5×113+5×112+5×111
=(114+113+112+111)×5
=(113+112+11+1)×5×11
=(113+112+11+1)×55
💾
✔️
[[ d.CommentTxt ]] |
< | > |
🥇 |