HOME»応用情報技術者試験掲示板»H20春 問12の別解
投稿する
H20春 問12の別解 [1840]
るーしさん(No.1)
暗算で導き出せる考え方です。
既出かもですが
下記の問題の解説では、
全ての16進数値を10進数に変換してますが
ハッシュ関数が8のため
16進数2桁目は本問題に限っては無視できると考えます(2桁目は8で必ず割り切れる)
例えば、
1Aの場合、A→10→mod(10,8)→2
35の場合、5→mod(5,8)→5
3Bの場合、B→11→mod(11,8)→3
Bに例えた場合
3Bも4Bも9Bも3となります。
1桁目を8で割るだけなので
時間もかからなくなります。
ーーー
16進数で表される9個のデータ1A,35,3B,54,8E,A1,AF,B2,B3を順にハッシュ表に入れる。ハッシュ値をハッシュ関数 f(データ)=mod(データ,8)で求めたとき,最初に衝突が起こるのはどのデータか。ここで,mod(a,b) はaをbで割った余りを表す。
既出かもですが
下記の問題の解説では、
全ての16進数値を10進数に変換してますが
ハッシュ関数が8のため
16進数2桁目は本問題に限っては無視できると考えます(2桁目は8で必ず割り切れる)
例えば、
1Aの場合、A→10→mod(10,8)→2
35の場合、5→mod(5,8)→5
3Bの場合、B→11→mod(11,8)→3
Bに例えた場合
3Bも4Bも9Bも3となります。
1桁目を8で割るだけなので
時間もかからなくなります。
ーーー
16進数で表される9個のデータ1A,35,3B,54,8E,A1,AF,B2,B3を順にハッシュ表に入れる。ハッシュ値をハッシュ関数 f(データ)=mod(データ,8)で求めたとき,最初に衝突が起こるのはどのデータか。ここで,mod(a,b) はaをbで割った余りを表す。
2019.12.26 09:28
管理人(No.2)
ご投稿ありがとうございます。とてもスマートなアイデアだと思います。
解説に別解として追記させていただきました。
https://www.ap-siken.com/kakomon/20_haru/q12.html
解説に別解として追記させていただきました。
https://www.ap-siken.com/kakomon/20_haru/q12.html
2019.12.26 18:45
るーしさん(No.3)
管理人様
ありがとうございます。
また何か発見しましたらご連絡します。
ありがとうございます。
また何か発見しましたらご連絡します。
2019.12.26 22:24