資料結構-hashing table - 考試

Table of Contents

題目如下:
若一個雜湊表包含1000 slots(標註為1~1000),若關鍵值是介於
1~99999之間,下面哪一個雜湊表是正確的?
(A)h(x)=x mod 1000
(B)h(x)=(x-1) mod 1000
(C)h(x)=((x+1)mod 999)
(D)h(x)=(x mod 1000)+1

答案是(D)

這題我的疑問是鍵值為1~9999,若我要雜湊表的第一個標註1,
那以答案(D)的雜湊函數不就無法得到,因為x最小為1,
那以1帶入的話,h(1)=(1 mod 1000)+1=2,最小也只能到2,
請問一下我的觀念是哪裡錯誤了??


--

All Comments

Puput avatarPuput2013-03-23
MOD 1000 餘數是1-999 有999個slots
題目要1000 所以在加一
Tracy avatarTracy2013-03-27
樓上點醒我了
Elizabeth avatarElizabeth2013-03-31
不是吧 MOD 1000 餘數為0~999才對 但因為標註要求為
Eden avatarEden2013-04-02
1~1000 所以+1 無關關鍵值介於多少
h(1)=2 h(2)=3... h(1000)=1 h(1001)=2
Puput avatarPuput2013-04-06
1沒有放沒差
Yedda avatarYedda2013-04-10
應該是說沒有0的slot
Jacky avatarJacky2013-04-13
了解!!謝謝各位指點~
Jacob avatarJacob2013-04-16
若我要雜湊表的第一個標註1 ---> 題目沒有要求