免費開始練習
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。

運算精準度與鑑別點

▼ 還有更多解析內容

🏷️ 相關主題

演算法設計與分析:排序、搜尋與時間複雜度
查看更多「[資訊] 計算機原理、網路概論」的主題分類考古題