使用rabin算法中的模是如何帮助降低本地角规则字符串match.Anybody的复杂性的,请解释
发布于 2014-03-13 11:44:05
我猜Horners规则是指在某个基中将一个字符串作为一个数字来处理("abcd“= 'a‘* p^3 + 'b’* p^2 + 'c‘* p^1 + 'd’* p^0),并将字符串作为数字进行比较,而Rabin算法指的是本质上相同的东西,而是模一些其他的数字。
问题是使用Horners规则,您只能比较短字符串--否则就会溢出(您可以使用大整数来避免它,但这就是复杂性损失的地方。长度为n的字符串对应的数字将有O(n)位数,因此算术操作不会在O(1)中完成)。
在Rabin算法中,与我们的字符串对应的数字将保持较小,因为我们把它们取为模数。它可能导致碰撞,但如果我们幸运的话,碰撞是足够罕见的。
https://stackoverflow.com/questions/22386799
复制相似问题