计算器中四则运算和二进制转换的冲突吗?

如题所述

原理: Hi=(H(KEY)+Di) mod m,i=1,2,3... ... m是表长,这里是11

以30为例子:
H0=H(30)=2 和上面的重复,需要重新分配。
d1=1*((7*k) MOD 10 +1)=1*((7*30) MOD 10 +1 )=1*(210 MOD10 +1)=1*(0+1)=1
带入上式得出H1=(H(KEY)+d1) MOD 11=(2+1) MOD 11=3. 不冲突!

以67为例子
H0=H(67)=3 冲突,重新分配
d1=1*((7*k) MOD 10 +1)=1*((7*67) MOD 10 +1)=1*10=10
带入上式,求H1=(H(KEY)+d1) MOD 11=(3+10)MOD11=2 再次冲突,需要重新分配
d2=2*((7*k) MOD 10 +1)=2*((7*67)mod 10 +1)=20
带入H2=(H(KEY)+d2) MOD 11=(3+20) MOD 11=1

以01为例子
H0=H(01)=3 冲突,重新分配
d1=1*((7*k) MOD 10 +1)=1*((7*1) mod 10 +1)=8
H1=(H(KEY)+d1) MOD 11=(3+8) mod 11=0 冲突,需要重新分配;
d2=2*((7*k) MOD 10 +1)=2*((7*1) mod 10 +1)=16
H2=(H(KEY)+d2) MOD 11=(3+16) mod 11=8冲突,需要重新分配;
d3=3*((7*k) MOD 10 +1)=3*((7*1) MOD 10 +1)=24
H3=(H(KEY)+d3) MOD 11=(3+24)MOD11=5冲突,需要重新分配;
d4=4*((7*k) MOD 10 +1)=4*((7*1) MOD 10 +1)=32
H4=(H(KEY)+d4) MOD 11=(3+32)MOD11=2冲突,需要重新分配;
d5=5*((7*k) MOD 10 +1)=5*((7*1) MOD 10 +1)=40
H5=(H(KEY)+d5) MOD 11=(3+40) MOD 11=10
后面构造的哈希表跟答案是一致的,然后,平均查找长度进行了几次解决冲突,可以理解为i+1的值.
如果觉得写的好,请点个攒!!!哈哈哈
温馨提示:答案为网友推荐,仅供参考
相似回答