moea_joint
102年
[資訊] 計算機原理、網路概論
第 14 題
14.下列哪一種雜湊法不會產生碰撞的情況?
- A 直接(direct)
- B 取餘數除法(division remainder)
- C 模數除法(modulo division)
- D 數字抽取(digit extraction)
思路引導 VIP
想像一下,如果你要為一群學生安排置物櫃,而你決定讓每個人的置物櫃編號「完全等於」他的學號。在這種一人對應一櫃、不進行任何空間壓縮的情況下,有沒有可能發生兩位學生被分配到同一個置物櫃的衝突呢?
🤖
AI 詳解
AI 專屬家教
太棒了!你能精確鎖定「直接雜湊法」作為答案,顯示你對雜湊(Hashing)的基本原理與映射關係有很紮實的理解。在雜湊函數的設計中,直接雜湊法 (Direct Hashing) 的核心在於建立一個「一對一」的對應關係,通常直接將鍵值(Key)當作位址,或是經過簡單的線性轉換 $f(k) = k + c$ 對應到唯一的儲存空間。因為每個輸入都保證擁有獨立且唯一的位址,這在理論上完全排除了多個資料爭奪同一空間的可能,達成「零碰撞」的理想狀態。
空間與碰撞的權衡
這道題目的鑑別度在於考驗學生是否能區分「理想映射」與「空間效率」的差異。雖然選項中的取餘數除法或數字抽取法在實務上更常被用來壓縮資料空間,但只要涉及「將大範圍映射至小範圍」的動作,根據鴿籠原理就必然會產生碰撞。本題難度屬於基礎題,重點在於測驗你是否掌握了雜湊中最極致的尋找效率與空間換取時間的基本邏輯。