Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
String 科曼字符串匹配拉宾卡普_String_Algorithm_Rabin Karp - Fatal编程技术网

String 科曼字符串匹配拉宾卡普

String 科曼字符串匹配拉宾卡普,string,algorithm,rabin-karp,String,Algorithm,Rabin Karp,我正在阅读拉宾·卡普算法,通过介绍科尔曼等人的算法 注意这里==用作mod运算符 以上幻灯片13上的注释,即等式34.2,附在此处作为图片。在方程中,h==(d)powerof((m-1)(mod q)是m位文本窗口高阶位置的数字“1”的值 我的问题是,作者所说的“m位文本窗口高阶位置的数字“1”的值”是什么意思 在幻灯片14上,作者是如何得到(7-3.3)的。10+2(13模)等于8(13模) 在平均案例分析中,我们提到,我们可以基于这样一个假设进行启发式分析,即将模q值减少就像是从sigm

我正在阅读拉宾·卡普算法,通过介绍科尔曼等人的算法

注意这里==用作mod运算符

以上幻灯片13上的注释,即等式34.2,附在此处作为图片。在方程中,h==(d)powerof((m-1)(mod q)是m位文本窗口高阶位置的数字“1”的值

我的问题是,作者所说的“m位文本窗口高阶位置的数字“1”的值”是什么意思

在幻灯片14上,作者是如何得到(7-3.3)的。10+2(13模)等于8(13模)


在平均案例分析中,我们提到,我们可以基于这样一个假设进行启发式分析,即将模q值减少就像是从sigma*到Z的随机映射。这里作者所说的上述陈述是什么意思?

您的第二个问题似乎只是关于带-ve数的模运算。考虑这一点的一种方法是mod M你可以随意加或减M,因为M等于0 mod M,所以我们有(7-3.3)。10+2(mod 13)=-2.10+2=-18=13+13-18=8 mod 13

你的第一个问题对我来说不太清楚,但让我仔细研究一下。当一个字符第一次出现在文本窗口中时,它只是被添加进去。然后它沿着文本窗口移动,最后我们希望删除它的所有内存,这样在它移出文本窗口后,它就不会影响哈希值


首先我们看到字符x,然后把它加到散列值中,得到h.d+x。当我们看到下一个字符时,我们把它乘以d(然后做我想解释的其他事情)然后加上新的字符-比如y。我们得到…+x*d+y。下一步我们得到…+x*d*d+y*d+z。当我们刚要去掉这个字符时,我们有一个散列值x*d^(m-1)+…,其中…,只取决于x之后的字符。所以我们可以通过减去x*d^(m-1)来消除x对散列值的影响在乘以d之前。

你能证明我们怎么得到13+13-18是8模13吗?我花了相当长的时间研究数学。M等于0模M是什么意思?我建议你通读并通读从-8=7模5开始的例子。关于第二个问题,作者提到h=d^(m-1)mod q是m位窗口的高位。作者在这里的意思是什么,请在此提供帮助?他在幻灯片14中的位置是什么意思?原来的高位数字是3,这是高位(最重要的)31415中的数字。要从31415中删除3,当3移出窗口时,她减去3*10^4=30000,留下1415,然后再移入新的数字2,