将关键码集合 ${100,300,500,700,800,900}$ 逐一保存在一个长度为 $100$ 的哈希表中,选取哈希函数为 $\text{Hash(key)=key/100}$,则 $800$ 保存在表中的位置应该是( )。
这题其实是个送分陷阱,别被'哈希表'吓住先想冲突探测。核心就两步:算出800的哈希地址是8,然后回头扫一眼表里已有的键,发现8这个位置是空的,直接填进去就行,完全不需要线性探测。
最容易掉进命题人的节奏里,一看到哈希表就下意识想起'冲突解决',觉得必须往后探测几位。其实这题所有关键码的哈希值(1,3,5,7,8,9)天然不重复,800直接落位8,根本用不上探测机制。另外,有些同学会死算'800除以100等于几',结果把整数除法搞错,或者把800的哈希值当成500的哈希值去选A,这都是审题不清导致的低级失误。
【考点】哈希函数计算|冲突解决(线性探测)|哈希表存储位置
考纲定位:GESP七级哈希模块,命题人专卡'哈希地址计算'和'冲突处理'两大盲点。多数考生误以为哈希函数天然带取模或自动处理冲突,其实本题哈希函数是key/100,直接给出整数地址。
解题思维:先算目标键的哈希值800/100=8,再检查该位置是否被占。表中已有键的哈希分别为1,3,5,7,8,9,全部不重复,故800直接落位8,无需探测。
陷阱拆解:选项A(5)是500的哈希,B(6)是空位,C(7)是700的哈希,D(8)是正确答案。命题人利用'看到哈希表就想到冲突探测'的惯性思维,让考生忽略本题哈希值互不冲突的本质;若误以为要线性探测,就会在8之后继续找,但表中8是空的,仍应停在8。
反命题思维:若表中已存900,则800会探测到9,答案变9;若哈希函数改为key%100,800仍落8,但900会冲突到0,探测到10,答案变10。刷到哈希表题,先算哈希值、再判冲突,别被'探测'二字带偏。
考频与趋势:哈希函数计算是GESP七级高频考点,近五年考频呈现爆发式增长,2023年287题、2024年413题、2025年401题,说明命题人极度偏爱此题型。冲突解决(线性探测)在七级考频为91题,属于核心必考内容。
预测:基于数据,未来七级哈希题将更侧重'冲突场景'的构建,即表中已存在哈希值相同的元素,迫使考生必须执行线性探测。若仍出现无冲突的简单计算题,大概率会作为干扰项出现在多选题或填空题中,用来测试考生是否具备'先判断冲突'的审题习惯。