哈希函数H(k)=(3k)MOD11,用开放定址发处理冲突d=i((7k)MOD10+1)i=1,2,3...是不是H(k)=3k就是把数据除以3,那开放定址处理冲突d=i((7k)MOD10+1)是什么意思呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 22:22:34

哈希函数H(k)=(3k)MOD11,用开放定址发处理冲突d=i((7k)MOD10+1)i=1,2,3...是不是H(k)=3k就是把数据除以3,那开放定址处理冲突d=i((7k)MOD10+1)是什么意思呢?
哈希函数H(k)=(3k)MOD11,用开放定址发处理冲突d=i((7k)MOD10+1)i=1,2,3...
是不是H(k)=3k就是把数据除以3,那开放定址处理冲突d=i((7k)MOD10+1)是什么意思呢?

哈希函数H(k)=(3k)MOD11,用开放定址发处理冲突d=i((7k)MOD10+1)i=1,2,3...是不是H(k)=3k就是把数据除以3,那开放定址处理冲突d=i((7k)MOD10+1)是什么意思呢?
H(k) = (3k) mod 11是一种类计算机语言的描述,它的意思是,将k存入到3*k与11取模的空间中,也就是说所有的都放在11个地址空间中,但有时会发生冲突,这时可以考虑使用开放定位地址,而转向使用下一个地址中.而11是一个素数,这里做为哈杀系数.对于哈杀系数一般是使用比需要存储空间的数字略大的素数.素数的冲突机率最小,而数据选用越小,冲突机率越大,而越大则越存储越稀,浪费空间越大.
很多时间书上是这样教你的,一般是将所存储的数据与哈希系数取模.但这里只是用其3倍取模也是一样的,如以下数字放在哈希表中:
1,62,15,32,45,78,65,95,7,12
这个数据是10个,所以我选用的哈杀系数是11,如果使用H(k)=k mod 11采用地址开链法时是这样的:
1 mod 11 存放在1号空间中
62 mod 11 存放在7号空间中
15 mod 11 存放在4号空间中
32 mod 11 存放在10号空间中
45 mod 11 存放在1号空间中,这时发生了冲突,地址开链,则存在另一个地址中空间中
78 mod 11 存在1号发现存在,另存.
.
但是有时我们知道地址的冲突机充非常大时,这样是不行的,因为效率问题,我们可以使用另一个较小的素数进行改变:
如:以下数据列:
12,23,35,46,58,69,81,92,104,115
你会发现这时10个待存数据,可应该选用11作为哈希系数,但你会发现这几个都会产生冲突,如果还用H(k)=k mod 11非常不利,但如果是均匀冲突时则可以用h(k)=3k mod 11解决的!它的好处就是跨大距离而留足开放定地址法进行解决的.如果遇到冲突可以用另一个式子重新放入空间中,当然,如果遇到已经放入的情况,则将i的值进行顺次增加.
以此为例子,你的开放地址法处理冲突存放是:
12*3 mod 11 放在3号空间中
23*3 mod 11 放在3号空间中,但已经存放了,解使用冲突,
23*7 mod 10 +1 放在2号空间中.
35*3 mod 11 放在6号空间中,(若不使用3k mod 11时则放在2号空间,又冲突了,所以乘的作用就是跨大一下跟离而已!)
46*3 mod 11 放在6号空间中,重复冲突,使用开放地址法解决
46*7 mod 10 +1 放在3个空间中,又重复,使用前边的系数解决
2(46*7 mod 10 +1)放在6号空间中,又重复,(这次真是巧合,46*3 mod 11与2*(46*7 mod 10 +1)相等的时候根本不多!)只好换一下系数放在9号空间中了,问题是数据往往有很大的随机性,不像我举例子也找这样规律性的数字!
但原理你是知道了吧?

哈希函数H(k)=(3k)MOD11,用开放定址发处理冲突d=i((7k)MOD10+1)i=1,2,3...是不是H(k)=3k就是把数据除以3,那开放定址处理冲突d=i((7k)MOD10+1)是什么意思呢? 用开放定址法求造哈希表并求成功时的平均查找长度(求解释详细谢谢)选取哈希函数H(k)=(3k)mod11用开放定址法处理冲突di=i((7k)mod10+1)(i=1,2,3.)是在0~10的散列地址空间对关键字序列(22,41,53,46 证明10^k≡(-1)^k(mod11)我要的是证明过程! 若函数h(x)=2x-k/x+k/3在(1,正无穷)上是增函数,则实数k的取值范围是? 谢谢 数据结构 哈希函数 平方探查法假如一个数为55,H(K)=K%11本来要填在0的位置,这时0和1都放了数,那么再探测那个位置?也就是H(K),H(k)+1的平方都探测了,有数字,然后再探测-1的平方,可是左边 V坑土方=(a+2c+kh)*(b+2c+kh)*h+1/3k*k*h*h*h,1/3k*k*h*h*h是什么意思 已知一次函数y=(k-1)X的|K|次方+3,则K= C语言程序:计算s=1k+2k+3k+...+nk 用函数 解同余式3X=7(mod11) 当k为何值时,y=(k^2+2k)x^k^2-3是正比例函数. 若函数h(x)=2x-k/x+k/3在x>1上是增函数,则实数k的取值范围是------- 若函数h(x)=2x-k/x+k/3在(1,+)上是增函数,则实数k的取值范围 若函数h(x)=2x-k/x+k/3在(1,+∞)上是增函数,则实数k的取值范围是? 若函数h(x)=2x-k/x+k/3在(1,正无穷)上是增函数,则实数k的取值范围是什么? 若函数h(x)=2x-k/x+k/3在(1,+)上是增函数,则实数k的取值范围h'(x)=2+k/x^2 函数y=(k^2-3k-3)*x^(k^2-3k+4)是幂函数,则k= x的平方-2x-3化为(x-h)的平方+k的形式,其中,h+k是常数,则h+k=? 对于函数Y=(K-3)X+K+3,当K=----时,它是正比例函数;当K-----时,它是一次函数