作者mingrong2 (mingrong)
看板Examination
標題[課業] 資料結構-hashing table
時間Tue Mar 19 15:57:03 2013
題目如下:
若一個雜湊表包含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
1F:推 a1988152002:MOD 1000 餘數是1-999 有999個slots 03/19 16:07
2F:→ a1988152002:題目要1000 所以在加一 03/19 16:07
3F:推 bobobola:樓上點醒我了 03/19 16:13
4F:→ kaitouGamer:不是吧 MOD 1000 餘數為0~999才對 但因為標註要求為 03/19 16:14
5F:→ kaitouGamer:1~1000 所以+1 無關關鍵值介於多少 03/19 16:15
6F:→ kaitouGamer:h(1)=2 h(2)=3... h(1000)=1 h(1001)=2 03/19 16:15
7F:推 bobobola:1沒有放沒差 03/19 16:17
8F:→ bobobola:應該是說沒有0的slot 03/19 16:18
9F:→ mingrong2:了解!!謝謝各位指點~ 03/19 16:47
10F:推 carterdunk:若我要雜湊表的第一個標註1 ---> 題目沒有要求 03/19 16:53