我应该使用C#实现布隆过滤器,并且我尝试遵循:https://gist.github.com/richardkundl/8300092,但它必须与其他平台(如iOS和android)兼容。因此,我不能将string.GetHashCode用作哈希函数之一,因为iOS或Android会将项目添加到Bloom过滤器中并在服务器上使用C#编写,因此我将检查Bloom过滤器中是否存在特定项目,或者不。 按照发布的链接中Bloom过滤器的实现,我们应该使用两个哈希函数。其中之一如下:
private static int HashString(T input)
{
string s = input as string;
int hash = 0;
for (int i = 0; i < s.Length; i++)
{
hash += s[i];
hash += (hash << 10);
hash ^= (hash >> 6);
}
hash += (hash << 3);
hash ^= (hash >> 11);
hash += (hash << 15);
return hash;
}
所以我试图弄清楚我可以使用哪种哈希算法作为主要算法,也可以用android或iOS编写。