平成25年度 春期 基本情報技術者試験 午前 問7
テクノロジ/アルゴリズム10進法で5桁の数 a₁a₂a₃a₄a₅ を,ハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a₁+a₂+a₃+a₄+a₅,13) とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,54321は配列のどの位置に入るか。ここで,mod(x,13) は,xを13で割った余りとする。
出典:平成25年度 春期 基本情報技術者試験 午前 問7
- ア1
- イ2
- ウ7
- エ11
正解:イ
解説
ハッシュ関数は各桁の和を13で割った余りです。54321の各桁の和は5+4+3+2+1=15であり,15を13で割った余りは2なので,配列の位置2に格納されます。
選択肢ごとの解説
- ア誤り。1になるのは桁の和を14などと誤って計算した場合に出る値で,本問の和15を13で割った余りではありません。
- イ正しい。桁の和15を13で割った余りは2なので,位置2に格納されます。
- ウ誤り。7になるのは桁の和を20(13×1+7)などと誤算した場合の値です。
- エ誤り。11になるのは桁の和を24(13×1+11)などと誤算した場合の値です。