Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 在Rabin-Karp算法中如何选择模值?_Algorithm_Math_String Matching_Rabin Karp - Fatal编程技术网

Algorithm 在Rabin-Karp算法中如何选择模值?

Algorithm 在Rabin-Karp算法中如何选择模值?,algorithm,math,string-matching,rabin-karp,Algorithm,Math,String Matching,Rabin Karp,我有一个关于选择q和d来搜索字符串的问题。该算法使用q值作为模,d值作为哈希函数 如果我选择q作为2的幂数,d=q-1或d=q+1 这些选择如何影响虚假点击 在d=q+1和d=q-1的情况下,什么样的模式可以确保假命中 X模(2^n+1)可以描述为交替和/差,例如 X=0x11223344,n=8,X模257==0x44-0x33+0x22-0x11模257。 这里的问题是,任何重复的字母都会自动取消——不太实际——当然n不必是8 X mod(2^n-1)将是所有n位模式的总和,例如 X=0x

我有一个关于选择q和d来搜索字符串的问题。该算法使用q值作为模,d值作为哈希函数

如果我选择q作为2的幂数,d=q-1或d=q+1

  • 这些选择如何影响虚假点击

  • 在d=q+1和d=q-1的情况下,什么样的模式可以确保假命中

  • X模(2^n+1)可以描述为交替和/差,例如

    X=0x11223344,n=8,X模257==0x44-0x33+0x22-0x11模257。 这里的问题是,任何重复的字母都会自动取消——不太实际——当然n不必是8

    X mod(2^n-1)将是所有n位模式的总和,例如

    X=0x11223344,n=8,X模255==(0x44+0x33+0x22+0x11)模255

    这里的问题是切换字节会自动取消:
    Hash('ab')=Hash('ba')。

    你能更具体地说明
    q
    d
    代表什么吗。这些与哈希函数相关吗?我编辑了这个问题,tnx。