niusouti.com

一个好的散列函数h=H(M),其中H为();M为长度不确定的输入串;h为(),长度是确定的。

题目

一个好的散列函数h=H(M),其中H为();M为长度不确定的输入串;h为(),长度是确定的。


相似考题
参考答案和解析
正确答案:散列函数;散列值
更多“一个好的散列函数h=H(M),其中H为();M为长度不确定的输入串;h为(),长度是确定的。”相关问题
  • 第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题:

    请编写函数fun(),该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

    例如,若二维数组中的数据为:

    W WWW

    S S S S

    H H H H

    则字符串中的内容应是WSHWSHWSHWSH。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdio.h>

    define M 3

    define N 4

    void fun(char (*s)[N],char *b)

    {

    }

    main()

    {

    char a[100],w[M][N]={{ 'W', 'W', 'W', 'W'},

    {'S', 'S', 'S', 'S'},{'H', 'H', 'H', 'H'}};

    int i,j;

    printf("The matrix:\n");

    for(i=0;i<M;i++)

    { for(j=0;j<N;j++)

    printf("%3c",w[i][j]);

    printf("\n");

    }

    fun(w,a);

    printf("The A string:In");

    puts(a);

    printf("\n\n");

    }


    正确答案:void fun(char (*s) [N]char *b) { int i j k=0; for (i=0; iN; i++) /*按列的顺序依次放到一个字符串中*/ for (j=0; jM; j++) b [k++] =s [j] [i]; b[k]='\0'; }
    void fun(char (*s) [N],char *b) { int i, j, k=0; for (i=0; iN; i++) /*按列的顺序依次放到一个字符串中*/ for (j=0; jM; j++) b [k++] =s [j] [i]; b[k]='\0'; } 解析:看到程序后,我们很容易便能想到用循环嵌套的方法,本题中按列的顺序依次放到一个字符串中,所以列标变化慢,行标变化快。注意其中第1个循环条件为iN(即列),第2个循环的条件为JM(即行),这是因为在循环的嵌套中越在内层,循环变化就越快。另外,在编写程序中注意是s[j][i]而非s[i][j]。

  • 第3题:

    耕作田块所划分格田的规模一般在()h㎡长度为()m,宽度为()m。


    参考答案:0.33~0.4 50~150 20~40

  • 第4题:

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


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

  • 第5题:

    某矩形刚性基础,柱截面边长为h,基底长度为l、宽度为b,其最小埋深的计算式为(  )m。

    A、[(b-h)/tanα]+0.1
    B、[(l-h)/tanα]+0.1
    C、[(b-h)/2tanα]+0.1
    D、[(l-h)/2tanα]+0.1

    答案:D
    解析:
    矩形刚性基础在两个方向均应满足台阶允许宽高比要求,宽度b方向基础最小高度计算式为:Hmin=(b-h)/2tanα;长度l方向基础最小高度计算式为:Hmin=(l-h)/2tanα。基础高度应取两式中的较大者。基础顶面距室外地坪的最小距离为0.1m,因此,最小埋深等于基础最小高度加0.1m,即[(l-h)/2tanα]+0.1。

  • 第6题:

    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

  • 第7题:

    单向散列函数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的输出

    正确答案:D

  • 第8题:

    如果系统的权函数为h(t),系统的输入x(t)为单位脉冲函数,此时系统输出y(t)为()

    • A、h(t)x(t)
    • B、x(t)
    • C、h(t)
    • D、无法确定

    正确答案:C

  • 第9题:

    填空题
    一个好的散列函数h=H(M),其中H为();M为长度不确定的输入串;h为(),长度是确定的。

    正确答案: 散列函数,散列值
    解析: 暂无解析

  • 第10题:

    单选题
    当风速为30m/s时,根据经验,单锚泊出链长度与水深h关系为:()
    A

    3h+125m

    B

    3h+145m

    C

    4h+125m

    D

    4h+145m


    正确答案: A
    解析: 暂无解析

  • 第11题:

    单选题
    关于散列函数的概念,下列阐述中正确的是()
    A

    散列函数的算法是公开的

    B

    散列函数的算法是保密的

    C

    散列函数中给定长度不确定的输入串,很难计算出散列值

    D

    散列函数中给定散列函数值,能计算出输入串


    正确答案: B
    解析: 暂无解析

  • 第12题:

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

    给定M,很容易计算h

    B

    给定h,很容易计算M

    C

    给定M,

    D

    给定h,不能计算M

    E

    给定M,要找到另一个输入串M’并满足H(M')=H(M)很难不能计算h


    正确答案: E,A
    解析: 暂无解析

  • 第13题:

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

    A、±20mm

    B、±30mm

    C、±40mm

    D、±50mm


    参考答案:D

  • 第14题:

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

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

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

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

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


    参考答案:ABC

  • 第15题:

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

    A.小于m的最大素数

    B.小于m的最大奇数

    C.小于/n的最大偶数

    D.小于m的任意整数


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

  • 第16题:

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

    A.5h+165m

    B.5h+145m

    C.4h+165m

    D.4h+145m


    参考答案:D

  • 第17题:

    已知沉淀池堰板长度为35m,废水来水水量为300m3/h,则堰板溢流负荷为()m3/(m.h)。

    • A、5.2
    • B、6.7
    • C、7.8
    • D、8.6

    正确答案:D

  • 第18题:

    在建立散列表时,若散列函数为H(k),a与b分别为关键字值,则当()时,称此现象为散列冲突。

    • A、a=b
    • B、a≠b
    • C、a=b且H(a)=H(b)
    • D、a≠b且H(a)=H(b)

    正确答案:D

  • 第19题:

    关于散列函数的概念,下列阐述中正确的是()

    • A、散列函数的算法是公开的
    • B、散列函数的算法是保密的
    • C、散列函数中给定长度不确定的输入串,很难计算出散列值
    • D、散列函数中给定散列函数值,能计算出输入串

    正确答案:A

  • 第20题:

    柱截面边长为h,基底长度为L、宽度为B的矩形刚性基础,其最小埋深的计算式为()

    • A、(L-h)/2tana
    • B、[(L-h)/2tana]+0.1m
    • C、(B-h)/2tana
    • D、[(B-h)/2tana]+0.1m

    正确答案:B

  • 第21题:

    单选题
    已知沉淀池堰板长度为35m,废水来水水量为300m3/h,则堰板溢流负荷为()m3/(m.h)。
    A

    5.2

    B

    6.7

    C

    7.8

    D

    8.6


    正确答案: D
    解析: 暂无解析

  • 第22题:

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

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

    B

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

    C

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

    D

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


    正确答案: B,D
    解析: 暂无解析

  • 第23题:

    单选题
    在建立散列表时,若散列函数为H(k),a与b分别为关键字值,则当()时,称此现象为散列冲突。
    A

    a=b

    B

    a≠b

    C

    a=b且H(a)=H(b)

    D

    a≠b且H(a)=H(b)


    正确答案: A
    解析: 暂无解析