No.16 10進法で5桁のa1a(***)a3a4a5をハッシュ法を用いて配列に格納したい。
ハッシュ関数を mod(a1+a(***)+a3+a4+a5,13) とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,543(***)1は次の配列のどの位置に入るか。
ここで,mod(x,13) は,xを13で割った余りとする。
ハッシュ関数を mod(a1+a(***)+a3+a4+a5,13) とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,543(***)1は次の配列のどの位置に入るか。
ここで,mod(x,13) は,xを13で割った余りとする。
⭕️
❌
💾
🖊 | ☑️ |
⭕️ | [[ AnswerCalc[0] ]] % | A | [[ AnswerCalc[1] ]] |
ハッシュ法とは、探索するデータのキー値からデータの格納アドレスを直接計算する方法で、この計算の際に使われる関数をハッシュ関数といいます。
ハッシュ関数が mod(a1+a2+a3+a4+a5、13) なので、そのまま"54321"を当てはめます。mod()は、第1引数を第2引数で割った余りを求めるので、
mod(5+4+3+2+1,13)=mod(15,13)=2
したがって、データ"54321"が格納されるのは配列の2番目の位置となります。
ハッシュ関数が mod(a1+a2+a3+a4+a5、13) なので、そのまま"54321"を当てはめます。mod()は、第1引数を第2引数で割った余りを求めるので、
mod(5+4+3+2+1,13)=mod(15,13)=2
したがって、データ"54321"が格納されるのは配列の2番目の位置となります。
💾
✔️
[[ d.CommentTxt ]] |
< | > |
🥇 |