gpt4 book ai didi

java - 字谜哈希函数

转载 作者:行者123 更新时间:2023-12-02 08:35:58 25 4
gpt4 key购买 nike

我知道以前曾有人问过类似的问题,但答案有点偏离主题。

我想开发一个哈希函数,它将接受一个单词并吐出一个数组的地址。

因此,例如,如果您输入 god:

  1. 对单词进行排序,d o g

  2. 对此执行某种函数以获取地址 d o g -> 某个数字

  3. 将“dog”插入数组[]中的地址some_number。

我似乎无法创建一个不会以某种方式搞砸的功能。

  public static int hashCode(String word){
char[] x = word.toCharArray();
Arrays.sort(x);
int hash = 0;
for(int i =0; i<x.length; i++)
{
hash +=(x[i]-96)*(x[i]-96)*(x[i]-96)*(i+1)*(i+1)+i;
}
hash %=size; // get a value that's inside the bounds of the array
if(hash<0)
hash = hash + size;

return (hash);
}

这是我当前的算法,但有两个问题。

  • 数组大小很大,因此不会发生大量冲突

  • 仍然有一些碰撞,例如椅子,产生:smariness, parr, chair

大家觉得怎么样?我非常感谢您的帮助

最佳答案

你的哈希函数看起来完全是任意的。你为什么用它?

有一些常见的、众所周知的且相对较好的哈希函数,请参阅此处的说明:

http://www.azillionmonkeys.com/qed/hash.html

另请参阅https://stackoverflow.com/questions/263400#263416

关于java - 字谜哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1773776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com