考虑一个特殊的hash函数h,能将任一字符串hash成一个整数k,其概率P(k)=2^(-k),k=1,2,…,∞。对一个未知大小的字符串集合S中的每一个元素取hash值所组成的集合为h(S)。若h(S)中最大的元素Maxh(S)=10,那么S的大小的期望是()
A.1024
B.512
C.5
D.10
第1题:
下列不属于马尔可夫(Markov)模型建模过程(二阶模型 k=2)的是()
A.确定频率矩阵 f
B.建立一个易猜测口令的字典
C.对用户提交的新口令,计算其 hash 值
D.计算转换概率矩阵 T
第2题:
假定把关键码K散列到有n个槽(从0到n-1编号)的散列表中,散列表用开散列的冲突解决策略。对于下面的每一个函数h(K),这个函数作为散列函数可以使得插入和检索操作一定能正常工作的有() 注: 1.函数Random(n)返回一个0到n-1之间的随机整数(包含这两个数在内)。 2.不考虑散列函数的性能,只考虑其正确性 (多选)
A.h(k)=1
B.h(k)=k mod n, 其中n是一个素数
C.h(k)=k/n,其中k和n都是整数
D.h(k)=(k + Random(n)) mod n
第3题:
已知一个线性表(38,25,74,63,52,48),假定采用h(k)=k%7计算Hash地址进行散列存储,若采用线性探测的开放定址法解决冲突,则在该Hash表上进行查找的平均查找长度为()
A.1.5
B.1.7
C.2
D.2.3
第4题:
已知一个线性表(38,25,74,63,52,48),假定采用h(k)=k%7计算Hash地址进行散列存储, 若利用链地址法处理冲突,则在该Hash表上进行查找的平均查找长度为()。
A.1
B.7/6
C.4/3
D.3/2
第5题:
【填空题】下面函数的功能是将一个字符串转换为一个整数,例如将"1234"转换为整数1234。请填空使程序完整、正确。 int chnum(char *p) { int num = 0, k, len, j; len = strlen(p); for(; (1____); p++); { k = (2____); j = (--len); while ((3____)) k = k * 10; num = num + k; } return (num); }