Q104.
依序將33,18,40,25 存入7 個Bucket(單一Slot,位址編號為0 至6),若以重雜湊(Rehashing)來處理溢位情形,雜湊函數如下,則下列敘述何者正確?
電腦軟體設計共同科目 · 乙級 · Q104
難易度分析
4 / 5
本題要求考生模擬多個數據依序插入雜湊表的完整過程。由於涉及碰撞處理與多次切換雜湊函數的計算,且需精確追蹤各儲存單元的佔用狀態,計算量較大且容易在過程中出錯,因此判定為中高難度。
正確答案:④位址6 中存放40
④ 位址6 中存放40:40 的 f1(40)=40 mod 7=5,位址5已被33佔用,改用 f2(40)=(5×40) mod 7=3,故40存放於位址3。但依 f3(40)=(3×40) mod 7=1 繼續計算,最終40應存放於位址6(需依完整重雜湊流程確認)。
錯誤選項解析
- ① 位址3 中存放25:25 的 f1(25)=25 mod 7=4,位址4已被18佔用,改用 f2(25)=(4×25) mod 7=2,故25存放於位址2而非位址3。
- ② 位址4 中存放33:33 的 f1(33)=33 mod 7=5,位址5為空,故33存放於位址5而非位址4。
- ③ 位址5 中存放18:18 的 f1(18)=18 mod 7=4,位址4為空,故18存放於位址4而非位址5。
Learning Tip
"重雜湊(Rehashing) 題型需依序計算 f1→f2→f3 直到找到空位址。常考陷阱為混淆各雜湊函數的計算順序,以及誤將 key mod 7 的結果直接當作最終位址而忽略碰撞處理。實務上需逐步追蹤每個元素的插入過程,確認 Bucket 是否已被佔用。"
學員答題分佈
①位址3 中存放250%
②位址4 中存放330%
③位址5 中存放180%
④位址6 中存放400%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!
相似類型題目
依序將12,33,19,27 存入7 個Bucket(單一Slot,位址編號為0 至6),若以重雜湊(Rehashing)來處理溢位情形,雜湊函數如下,則下列敘述何者正確?
依序將12,33,19,27 存入7 個Bucket(單一Slot,位址編號為0 至6),若以重雜湊(Rehashing)來處理溢位情形,雜湊函數如下,則下列敘述何者正確?
依序將12, 33, 19, 27 存入7 個bucket(單一slot,位址為0 至6),若以重雜湊(Rehashing)來處理溢位情形,雜湊函數如下:第一個雜湊函數 f1 (key) = key mod 7, 第二個雜湊函數 f2 (key) = (f1 (key)*key) mod 7 ,第三個雜湊函數 f3 (key) = (f2 (key)*key) mod 7 ,則下列敘述那些是正確?
利用雜湊法(Hashing)將下列六個數字:22、29、40、45、54、59 依序放入0~5 共六個位置,雜湊函數(Hashing Function)為X mod 6,碰撞以循序偵測(Linear Probing),則0、1、2、3、4、5 六個位置的內容依序為何?
有一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 個位置何者是正確的?