是否存在满足以下条件的哈希算法?
let "hash_funct" be a hashing function that takes two args, and returns a hash value. so all the following will be true
Hash1 = hash_funct(arg1, arg2) <=> hash_funct(Hash1, arg1) = hash_funct(Hash1, arg2) = Hash1;
谁能指出我该算法?还是不存在,有人可以与我合作发明吗?
更多说明:
想象一组S={A,B,C,D}
,以及上面的哈希函数。
如果我们可以做Hash1 = hash_funct(A,B,C,D)
,那么我们可以通过检查X
的哈希结果来检查元素hash_funct(Hash1,X) == Hash1 ? belogns to the set : doesn't belong
是否在集合中
使用此属性,我们检查集合O(1)中元素的存在,而不是O(NlogN)
答案 0 :(得分:2)
我想最高公因数( Hcf )将适合此处。设a和b为两个数字,其中x为最大公因数。
hcf(a,b) = x.
这表示a = x*m
和b = x*n
。这显然意味着:
hcf(x,x*m) = hcf(x,x*n) = hcf(x*n,x*m) = x
答案 1 :(得分:2)
您要寻找的是Accumulators。目前,它们在digital coins @youtube
中非常受欢迎来自维基百科;
密码累加器是单向隶属函数。它回答了有关潜在候选人是否是集合的成员的查询,而没有透露集合的各个成员。
例如,这个paper;
我们展示了如何使用RSA单向累加器来实现高效且动态的经过身份验证的字典,其中不受信任的目录提供了可加密验证的答案 对由可信来源维护的集合上的成员资格查询
基于直接累加器的方案;
可用。