首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证这个散列函数不会给出两个不同字符串的相同结果?

问如何验证这个散列函数不会给出两个不同字符串的相同结果?
EN

Stack Overflow用户
提问于 2017-08-13 14:16:21
回答 1查看 76关注 0票数 0

考虑两个不同的字符串具有相同的长度。

我正在实现robin算法,并使用下面的哈希函数:

代码语言:javascript
复制
def hs(pat):
    l = len(pat)
    pathash = 0
    for x in range(l):
        pathash += ord(pat[x])*prime**x # prime is global variable equal to 101
    return pathash
EN

回答 1

Stack Overflow用户

发布于 2017-08-13 14:21:58

这是个哈希。根据定义,不能保证不会发生冲突,否则,哈希必须与散列值一样长。

你所做的事情背后的想法是建立在数论基础上的:一个与有限群大小相同的数字的幂(这可能是最初作者的意思是2^N)可以给出这个有限组中的任何数字,而且很难判断它们是哪一个。

遗憾的是,这个哈希函数的有趣部分,即散列的大小限制/模块操作,被忽略在代码之外--这让人怀疑您的代码来自何处。据我所见,和拉宾-卡布没有什么关系。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45661308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档