[課業] 資料結構-hashing table

看板Examination (國家考試)作者 (mingrong)時間13年前 (2013/03/19 15:57), 編輯推噓4(406)
留言10則, 5人參與, 最新討論串1/1
題目如下: 若一個雜湊表包含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, 請問一下我的觀念是哪裡錯誤了?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.199.76.237

03/19 16:07, , 1F
MOD 1000 餘數是1-999 有999個slots
03/19 16:07, 1F

03/19 16:07, , 2F
題目要1000 所以在加一
03/19 16:07, 2F

03/19 16:13, , 3F
樓上點醒我了
03/19 16:13, 3F

03/19 16:14, , 4F
不是吧 MOD 1000 餘數為0~999才對 但因為標註要求為
03/19 16:14, 4F

03/19 16:15, , 5F
1~1000 所以+1 無關關鍵值介於多少
03/19 16:15, 5F

03/19 16:15, , 6F
h(1)=2 h(2)=3... h(1000)=1 h(1001)=2
03/19 16:15, 6F

03/19 16:17, , 7F
1沒有放沒差
03/19 16:17, 7F

03/19 16:18, , 8F
應該是說沒有0的slot
03/19 16:18, 8F

03/19 16:47, , 9F
了解!!謝謝各位指點~
03/19 16:47, 9F

03/19 16:53, , 10F
若我要雜湊表的第一個標註1 ---> 題目沒有要求
03/19 16:53, 10F
文章代碼(AID): #1HI1fIeH (Examination)
文章代碼(AID): #1HI1fIeH (Examination)