单向散列函数h=H(M),给定任意长度的M,h的长度固定,H的特

题目

单向散列函数h=H(M),给定任意长度的M,h的长度固定,H的特性不包括()

  • A、给定M计算h是容易的
  • B、给定h,根据H(M)=h计算M是困难的
  • C、给定M,要找到M’,M’≠M且H(M)=H(M’)是困难的
  • D、对任何哈希函数均产生128bit的输出
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

编写函数jsValue,它的功能是:求Hofstadter数列中的第m项H(m)(m<1000),结果由函数返回。其中数列H(n)的定义为:

H(1)=H(2)=1

H(n)=H(n-H(n-1))+H(n-H(n-2))(n>2)

最后调用函数writeDat()读取50个数据m,分别得出结果且把结果输出到文件out.dat中。

例如:当t=997时,函数值为605。

部分源程序已给出。

请勿改动主函数main()和写函数writeDat()的内容。

include<stdio. h>

int jsValue(int m)

{

main ( )

{

int m;

m=300;

printf ("m=%d, k-%d\n", m, jsValue (m));

writeDat ( );

writeDat ( )

{

FILE *in, *out;

int i,m,s;

in= fopen ( "in. dar" , "r" );

ut=f open ( "out. dar" , "w" );

for (i=0; i<50; i++) {

fscanf (in, "%d", &m);

s=jsValue (m);

printf( "%d\n", s );

fprintf (out, "%d\n" , s );

}

fclose (in);

fclose (out);


正确答案:int jsVelue(int m) { if (m0) return -1; /*参数错误正常运行不会出现*/ if(m==1 || m==2) return 1; /*初值H[1]:H[2]=1*/ else return jsValue (m-jsValue (m-1)) +jsValue (m-jsValue (m-2)); /*调用jsValue递归计算H[k]*/ } /*解法二递推*/ int jsValue(int m) { int H[1000] i; H[1]=1;H[2]=1; /*初值H[1]=H[2]=1*/ for (i=3;i=m;i++) { H[i] = H[i-H[i-1)] +H[i-H[i-2]]; /*H(k)(ki)的值都己计算完成直接使用*/ } return H[m]; /*返回所求的值*/ }
int jsVelue(int m) { if (m0) return -1; /*参数错误,正常运行不会出现*/ if(m==1 || m==2) return 1; /*初值H[1]:H[2]=1*/ else return jsValue (m-jsValue (m-1)) +jsValue (m-jsValue (m-2)); /*调用jsValue递归计算H[k]*/ } /*解法二,递推*/ int jsValue(int m) { int H[1000], i; H[1]=1;H[2]=1; /*初值H[1]=H[2]=1*/ for (i=3;i=m;i++) { H[i] = H[i-H[i-1)] +H[i-H[i-2]]; /*H(k)(ki)的值都己计算完成,直接使用*/ } return H[m]; /*返回所求的值*/ } 解析:类型:序列计算。
关键点:分析序列定义,选择合适的方法生成和存储序列或序列中的特定值。
此题有两种解法:
1.按照定义编写递归函数;(计算量大,容易超时,慎用)。
2.保存所有值,从小到大递推求解。

第2题:

关于直线最小长度,正确的有()。

A、同向曲线间最小直线长度(以m计)以不小于设计车速(以km/h计)的6倍为宜

B、同向曲线间最小直线长度(以m计)以不小于设计车速(以km/h计)的4倍为宜

C、反向曲线间最小直线长度(以m计)以不小于设计车速(以km/h计)的2倍为宜

D、反向曲线间最小直线长度(以m计)以不小于设计车速(以km/h计)的6倍为宜


参考答案:ABC

第3题:

假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数()

A.h(K)=KmodN

B.h(K)=1

C.h(K)=K/N

D.h(K)=(K+rand(N))modN,rand(N)返回一个0到N-1的整数


正确答案:A

第4题:

Hash函数是把任意长度的输入通过散列算法,变成固定长度的输出。()


答案:正确

第5题:

当采用除留余数法构造散列函数时,即h(key)=key mod p,若要将发生冲突现象的频率降至最低,p最好是( )(设散列表的长度为m)。A.小于m的最大偶数B.大于m的最小基数C.小于m的最大素数D.大于m的最小偶数


正确答案:C
选择一个适当的正整数p(通常选p为不大于散列表存储区域大小的最大素数),用p除关键码值,取其余数作为地址

第6题:

当筒体长度H>40m时,塔体长度允许偏差△H为()。

A、±20mm

B、±30mm

C、±40mm

D、±50mm


参考答案:D

第7题:

若散列表长度为m,散列函数为H(key)=key MOD p,则P应取(53)。

A.小于m的最大素数

B.小于m的最大奇数

C.小于/n的最大偶数

D.小于m的任意整数


正确答案:A
解析:若散列表长度为m,散列函数为H(key)=keyMODp,则p应取小于m的最大素数,答案为A。

第8题:

下列特性中,不属于散列函数H的特性的是()。

A、H用于指定长度的数据分组

B、H产生定长的输出

C、对于任何给定的x,H(x)要相对容易计算

D、对于任何给定的码h,寻找x使得H(x)=h在计算上不可行


正确答案:A

第9题:

当风速为30m/s时,根据经验,单锚泊出链长度与水深h关系为______。

A.5h+165m

B.5h+145m

C.4h+165m

D.4h+145m


参考答案:D

第10题:

h=H(M),其中H为散列函数,H应该具有的特性包括()

  • A、给定M,很容易计算h
  • B、给定h,很容易计算M
  • C、给定M,
  • D、给定h,不能计算M
  • E、给定M,要找到另一个输入串M’并满足H(M')=H(M)很难不能计算h

正确答案:A,D,E

更多相关问题