相关疑难解决方法(0)

具有32位整数的低冲突率的快速字符串哈希算法

我有许多不相关的命名事物,我想快速搜索."aardvark"在任何地方始终都是"aardvark",因此对字符串进行散列并重用整数可以很好地加速比较.整个名称集是未知的(并随着时间的推移而变化).什么是快速字符串哈希算法,它将生成小(32或16)位值并具有低冲突率?

我想看一个特定于C/C++的优化实现.

c++ string algorithm hash

65
推荐指数
6
解决办法
8万
查看次数

短字符串(标记名称)的最佳32位哈希函数是什么?

对于相对较短的字符串,最好的32位散列函数是什么?

字符串是包含英文字母,数字,空格和一些其他字符(标签名称#,$,.,...).例如:Unit testing,C# 2.0.

我正在寻找"最佳碰撞"中的"最佳",性能对我的目标并不重要.

tags algorithm hash 32-bit

45
推荐指数
3
解决办法
4万
查看次数

如何为URL生成唯一的哈希?

鉴于来自twitter的这两张图片.

http://a3.twimg.com/profile_images/130500759/lowres_profilepic.jpg
http://a1.twimg.com/profile_images/58079916/lowres_profilepic.jpg
Run Code Online (Sandbox Code Playgroud)

我想将它们下载到本地文件系统并将它们存储在一个目录中.我该如何克服姓名冲突?

在上面的例子中,我不能将它们存储为lowres_profilepic.jpg.我的设计理念是将URL视为不透明字符串,但最后一段除外.我可以使用哪些算法(实现为f)将前缀散列为唯一字符串.

f( "http://a3.twimg.com/profile_images/130500759/" ) = 6tgjsdjfjdhgf
f( "http://a1.twimg.com/profile_images/58079916/" )  = iuhd87ysdfhdk
Run Code Online (Sandbox Code Playgroud)

这样,我可以将文件保存为: -

6tgjsdjfjdhgf_lowres_profilepic.jpg
iuhd87ysdfhdk_lowres_profilepic.jpg
Run Code Online (Sandbox Code Playgroud)

我不想要一个加密算法,因为它需要一个高效的操作.

algorithm

14
推荐指数
4
解决办法
3万
查看次数

好的数字哈希值

我想要散列字符串,但我需要输出为整数,所以我不能做md5.这里的人有任何他们可能想要启发我喜欢的数字哈希.我正在使用PHP.

谢谢!

php hash

12
推荐指数
1
解决办法
3829
查看次数

你会如何设计一个完美哈希的函数?

感兴趣的领域是字符串匹配.假设我有这样的结构.

typedef struct
{
    char *name,
    int (*function)();

} StringArray

StringArray s[] = 
{
    {"George", func1},
    {"Paul",   func2},
    {"Ringo",  func3},
    {"John",   func4},
    {"",       NULL}   /* End of list */ 
}
Run Code Online (Sandbox Code Playgroud)

数组中有固定数量的字符串.它们是硬编码的,如示例中所示.如果表发生变化,则需要重新评估散列函数的质量.

我想将哈希函数应用于字符串,如果字符串与数组中的字符串匹配,则调用该函数.这需要一个完美的哈希函数.不允许冲突.要求散列的目的是在查找上获得O(1)性能.

您在设计功能时有什么想法?

c c++ string hash function

10
推荐指数
2
解决办法
1332
查看次数

计算具有字符串属性的类的哈希码的最佳方法是什么?

我有一个带有字符串属性的类,我需要重写GetHashCode()方法。

class A
{
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
    public string Prop3 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

第一个想法是做这样的事情:

public override int GetHashCode()
{
    return Prop1.GetHashCode() ^ Prop2.GetHashCode() ^ Prop3.GetHashCode();
}
Run Code Online (Sandbox Code Playgroud)

第二个想法是:

public override int GetHashCode()
{
    return String.Join(";", new[] {Prop1, Prop2, Prop3}).GetHashCode();
}
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法?

c# gethashcode

6
推荐指数
1
解决办法
4775
查看次数

标签 统计

hash ×4

algorithm ×3

c++ ×2

string ×2

32-bit ×1

c ×1

c# ×1

function ×1

gethashcode ×1

php ×1

tags ×1