【发布时间】:2017-09-30 02:43:33
【问题描述】:
我有一组特定的整数,它们是:2、10、13、15、23、34、43、58、100、123、199、200 和 348。任务是创建一个 1 行哈希函数至少可以在索引 0 到 12 中映射 9 个值。
到目前为止,我制作的哈希函数是:
hash = value%13hash = (value+array[indexOfValue])%13hash = array[indexOfValue]
数字 3 可能会让我受到责备,但我似乎可以接受,所以我不妨给出它作为答案。哦,我不应该使用任何冲突解决方法。
编辑:那么关于我应该制作什么散列函数有什么建议吗?
编辑:我找到了一个可以将所有值从 0 映射到 12 的函数,它是:((((x*7)+x)%7)+x)%13
【问题讨论】:
-
你有什么问题?
-
@m_callens 抱歉,我已经编辑过了。
-
投票结束,因为需要有自以为是的答案。
-
有趣的单行散列函数要求消除了双散列选项。也许一个巧妙挑选的大素数可以用于散列?
-
@MichaelShopsin 这个数字不需要是素数,也不需要特别大,因为任何超过 348 的数字都会给你一个完美的哈希 ;-) ;-) ;-)