民國110年 第2梯次 電腦軟體設計(JAVA)乙級 學科
第6題
有一Hash Table 其 Hash 函數定義為 h1(key)=key%11,其中%表示兩數相除後之餘數,當發生碰 撞(Collision)時採Double…
題目
有一Hash Table 其 Hash 函數定義為 h1(key)=key%11,其中%表示兩數相除後之餘數,當發生碰 撞(Collision)時採Double Hashing 方式處理,其函數定義h(key, j)=(h1(key)+ j × h2(key))% 11, 其中j=0, 1, 2,..., 11; h2(key)=1+(key%10)。欲將26 放入Hash Table,在Hash Table 之探測順 序,前5 個位置何者是正確的?
- (1) 4, 7, 10, 2, 5
- (2) 7, 0, 4, 8, 1
- (3) 4, 0, 7, 3, 6
- (4) 4, 0, 7, 3, 10
官方答案
(4) 4, 0, 7, 3, 10
解析
h1(26)=26%11=4;h2(26)=1+(26%10)=1+6=7。依 h(26,j)=(4+j×7)%11 逐次探測:j=0 得 4;j=1 得 (4+7)%11=0;j=2 得 (4+14)%11=18%11=7;j=3 得 (4+21)%11=25%11=3;j=4 得 (4+28)%11=32%11=10。前五個探測位置依序為 4、0、7、3、10。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。