问题标签 [hash-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
statistics - A/B 测试分区函数
我想将我的用户分成几个组来运行 A/B 测试。
通常的方法是将每个用户随机分配到一个变体并存储关系直到 A/B 测试结束。但这将迫使我将该关联存储在某个地方,我想避免它。
由于用户已经在我的应用程序中注册,我希望有一个功能可以在我的测试中均匀地分布用户,这样我就可以在我的 A/B 测试中获得不偏斜的结果。
我应该使用哪种哈希函数?
python - Python中字符串的排序与自定义哈希函数的性能比较
我正在比较不同长度字符串的排序与自定义哈希函数的性能,结果有点令人惊讶。我预计以下代码中的函数 prime_hash(尤其是 prime_hash2)的性能优于 sort_hash,尽管情况正好相反。谁能解释性能差异?任何人都可以提供替代哈希吗?[该函数应为包含相同字母分布的字符串生成相同的值,并为所有其他字符串生成不同的值]。
这是我得到的结果:
这是代码:
algorithm - 此功能是否具有抗原像性?
测试 PRNG 函数强度的方法之一是设计将 PRNG 输出与随机字符串区分开来的测试:给定一个框,它为某些 u 或随机字符串输出 PRNG(u)。我们必须确定输出是否来自 PRNG。假设散列函数 H 未通过此测试。
这是否意味着它不具有第二原像抗性?
razor - 这里使用哪种算法对密码进行哈希处理?
我正在使用 Webmatrix.WebData.Security 库来控制我网站的登录/注册功能。CreateUserAndAccount() 方法对用户提供的密码进行哈希处理,并将其存储在表 pages_Membership 中。我无法理解该方法如何对其进行哈希处理。有人可以帮我指出正确的方向吗?
.net - 为什么在哈希函数中使用 BlockCopy()?
试图理解散列函数,但我似乎无法弄清楚为什么在其中使用 BlockCopy。
algorithm - 探测哈希表
我正在为一个项目实现一个哈希表,使用 3 种不同类型的探测。现在我正在研究线性。
对于线性探测,我了解探测的工作原理,我的导师暗示他希望步长为 1。问题是,不允许重复。所以我必须在插入之前“搜索”一个值,对吗?但是,如果表格被使用到所有单元格都被“占用”或“删除”怎么办?然后为了搜索特定键以确保它不在表中,我将不得不搜索整个表。这意味着搜索操作(以及扩展的插入操作)是 O(n)。
这似乎不对,我想我误解了一些东西。
我知道我不必在二次探测中遇到同样的问题,因为表格需要至少有一半是空的,并且它只会探测确定数量的元素。对于双重哈希,我不确定这将如何工作,因为我还需要搜索表以证明要插入的密钥不存在。但是,如果没有一个单元格“从未被占用”,我怎么知道如何停止搜索?
所以:在开放散列中,表中的每个条目过去都已被占用,是否需要 O(n) 探针来搜索元素(如果不允许重复则插入)?
c - 如何在结构中的字符串上实现 fnv1a 哈希函数?
我正在尝试对字典中的所有单词实现 fnv1a 哈希函数(这样我以后可以快速访问它们)。
这是 fnv1a 哈希函数:
这就是我试图在一个名为 load() 的函数中获取一个单词的哈希值的方式:
这是完整的功能:
/* * 将字典加载到内存中。如果成功则返回 true,否则返回 false。*/
编译此代码时不断出现的错误(指向我试图散列一个单词的行):
c++ - C++:为什么我的 unordered_map 的散列函数不是> 工作?
我想创建一个 unordered_map,它具有 achar*
作为键和 avector<int>
作为value
. 我从之前的问题中了解到,char*
STL 没有提供散列函数。
我从这个站点获取了第一个实现:http ://www.cse.yorku.ca/~oz/hash.html
因此,在我的main.cpp
文件中,我插入了以下代码:
然后我创建了一个 unordered_map 变量:
但是,如果我通过这样做两次插入值“temp”:
最终映射不是有一个“temp”键和一个大小为 2 的向量,其中向量的每个元素是 0 或 1,它有两个名为“temp”的键,每个键中有一个大小为 1 的向量。
这是详细的图片:
我怎样才能避免这种情况发生?先感谢您
boost - 是否有 64 位版本的 boost::hash_value
看起来这里boost::hash_value 总是返回一个 size_t 值。
boost 也有 64 位散列函数吗?
probability - 计算 Minhash 的证明
我正在阅读 MinHash 技术来估计 2 个集合之间的相似性:给定集合 A 和 B,h 是散列函数,hmin(S) 是集合 S 的最小散列,即 hmin(S)=min(h(s )) 对于 S 中的 s。我们有以下等式:
p(hmin(A)=hmin(B))=|A∩B| / |A∪B|
这意味着A的最小哈希等于B的最小哈希的概率是A和B的Jaccard相似度。
我试图证明上述等式并提出我自己的证明:对于 a∈A 和 b∈B 使得 h(a)=hmin(A) 和 h(b)=hmin(B)。因此,如果 hmin(A)=hmin(B),则 h(a)=h(b)。假设散列函数 h 可以将键散列到不同的散列值,所以 h(a)=h(b) 当且仅当 a=b,其概率为 |A∩B| / |A∪B|。但是,我的证明并不完整,因为哈希函数可以为不同的键返回相同的值。所以,我请求你帮助找到一个可以应用的证明,不管散列函数。