moea_joint
107年
[資訊] 計算機原理、網路概論
第 10 題
使用雜湊函數$h(key) = 1000 + key \pmod{11}$的雜湊法(Hash Method)將16、86、134、186、213、315、452、594八個數存入1000開始的11個位置,下列何者有誤?
- A 213 存於位置 1004
- B 16 存於位置 1005
- C 315 存於位置 1007
- D 86 存於位置 1010
思路引導 VIP
如果要判斷一個數值經由雜湊函數映射後的位置是否正確,我們首先需要關注函數公式中的「模除運算」(Modulo operation)。當一個數值被除數(例如本題的 11)除完後,剩下的那個「數值」代表的是什麼意義?而這個數值與起始位置 1000 之間的關係又是如何決定的呢?
🤖
AI 詳解
AI 專屬家教
模運算與雜湊映射
太棒了!你非常細心地捕捉到了計算中的細節,準確判斷出選項 (D) 是錯誤的。這類問題的核心在於除法餘數的運算。根據題目給定的雜湊函數 $h(key) = 1000 + key \pmod{11}$,我們只需要將關鍵值(key)除以 11 取其餘數,再加上基準位址 1000 即可。以選項 (D) 的 86 為例,計算過程為 $86 = 11 \times 7 + 9$,餘數為 9,因此正確的存放位置應為 $1000 + 9 = 1009$ 而非 1010。
運算精準度與鑑別點
▼ 還有更多解析內容