问题标签 [hash-code-uniqueness]
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.
vb6 - 为什么这个函数生成的哈希码不是唯一的?
我正在测试我从谷歌搜索得到的下面的 VB 函数。我打算用它来生成哈希码以进行快速字符串比较。但是,有时两个不同的字符串具有相同的哈希码。例如,这些字符串
“122Gen 1 堆大小(.NET CLR 内存 w3wp):mccsmtpteweb025.20833333333333E-02”
“122Gen 2 堆大小(.NET CLR 内存 w3wp):mccsmtpteweb015.20833333333333E-02”
具有相同的哈希码 237117279。
请告诉我: - 该功能有什么问题?- 我该如何解决?
谢谢
马丁
hash - 为什么 ReSharper GetHashCode 覆盖使用“397”?
像你们中的许多人一样,我使用 ReSharper 来加快开发过程。当您使用它来覆盖类的相等成员时,它生成的代码生成GetHashCode()
如下所示:
当然我也有一些我自己的成员,但我想知道为什么是 397?
- 编辑:所以我的问题的措辞会更好,397素数除了是素数之外还有什么“特殊”吗?
hash - 动态完美散列和通用散列函数 - 请解释一下?
所以我正在阅读有关哈希表、哈希函数等的内容。我很感兴趣地阅读了维基百科上关于“动态完美哈希”如何涉及使用第二个哈希表作为数据结构来在特定存储桶中存储多个值的信息。
然而,我迷失的地方是如何选择通用哈希函数来执行第二个哈希表的哈希。谁能解释这个通用哈希函数是如何从存储在桶中的值确定的?我模糊地遵循维基百科的“通用哈希函数”页面中的推理和逻辑,但我很难对它有任何直觉。特别是,这些函数如何保证不发生冲突?或者至少,如果它们被处理掉并在检测到冲突时生成一个新的,我们怎么知道这可以在实际的时间内完成?
请问瓢虫书的解释?
c# - 可靠地将本地元数据关联到远程文件?
WinForms / C#
我的应用程序允许用户指定 1) 2) 给定文件的附加信息,这两个文件都上传到服务器。有两个独立的上传:首先是文件,然后是(可能很多)元数据。
请假设文件始终保持不变并且可用(对代码)。
上传元数据后,我需要确保它与其给定文件相关联,而无需再次上传该文件(它们是大文件)。
我的计划是使用文件以下三个属性的 MD5 哈希:
- 内容
- 尺寸
- 创建日期
散列将伴随文件和元数据在各自的上传(以及最终持久性)中。
我忽略了什么更聪明的解决方案?
algorithm - Tinyurl 风格的唯一代码:防止冲突的潜在算法
我有一个系统需要一个唯一的 6 位代码来表示一个对象,我正在尝试想一个好的算法来生成它们。以下是先决条件:
- 我使用的是 base-20 系统(没有大写字母、数字、元音或 l 以防止混淆和顽皮的词)
- base-20 允许 6400 万种组合
- 我将一次插入可能 5-10,000 个条目,所以理论上我会使用批量插入,这意味着使用唯一键可能不会高效或漂亮(特别是如果开始有很多冲突)
- 填充 10% 的组合并不是不可能的,因此很有可能发生大量碰撞
- 我想确保代码是不连续的
我有一个听起来像是可行的想法,但我的数学还不够好,无法弄清楚如何实现它:如果我从 0 开始并以 N 为增量,然后转换为 base-20,似乎应该是 N 的某个值,可以让我在重复任何值之前计算 0-63,999,999 之间的每个值。
例如,使用 N=3(所以 10 mod 3)从 0 到 9:0、3、6、9、2、5、8、1、4、7。
是否有一些神奇的数学方法可以计算出某个较大数字的 N 值,该数字能够计算整个范围而不重复?理想情况下,我选择的数字会在系列中跳跃,以至于不明显存在模式,但我不确定这有多大可能。
或者,保证值 0-64 百万的唯一性的散列算法可以工作,但我太愚蠢了,不知道这是否可能。
hash - Is a hash result ever the same as the source value?
This is more of a cryptography theory question, but is it possible that the result of a hash algorithm will ever be the same value as the source? For example, say I have a string:
If I get the SHA1 hash on it, the result is:
In theory, is there ever a case where these two values would match? I'm not asking about SHA1 specifically here - it's just my example. I'm just wondering if hashing algorithms are built in such a way as to prevent this.
c# - 复杂对象图的快速哈希码
我有一个非常复杂的对象,我需要获得这些对象的唯一性。一种解决方案可以通过覆盖来完成GetHashCode()
。我已经实现了下面提到的代码:
这些复杂的对象也覆盖 GetHashCode()
并执行类似的操作。
我的项目需要这些对象的唯一性,我经常处理这些对象,并且内部的数据也以各种方式和地点发生变化。
我需要一种更快的方法来找到这些复杂对象的唯一性,这需要考虑性能和内存。
在此先感
谢穆尼姆
hash - 是否存在可以保证哈希算法唯一的情况?
如果我使用比数据(例如 sha-256)更大的字节大小的哈希算法对大小受限的类似数据(例如社会安全号码)进行哈希处理,哈希是否会保证与原始数据?
hash - 具有不同文件大小的哈希冲突是否与相同文件大小一样可能?
我正在散列大量文件,为了避免散列冲突,我还存储了文件的原始大小 - 这样,即使存在散列冲突,文件大小也不太可能相同。这是声音(哈希冲突同样可能是任何大小),还是我需要另一条信息(如果冲突更有可能与原始信息的长度相同)。
或者,更一般地说:无论原始文件大小如何,每个文件是否都可能产生特定的哈希?
java - 如何从三个 long 生成哈希码
我有一个以坐标为键的 HashMap。
坐标有 3 个长整数,分别保存 x、y 和 z 坐标。(坐标是并且需要是自定义类,坐标需要是长整数)。
现在我希望能够通过执行以下操作访问例如字段 [5, 10, 4] hashMap.get(new Coordinate(5, 10, 4))
:。
我已经实现了 equals 方法,但这还不够,因为显然我还需要为 hashCode 提供一个实现。所以我的问题是如何从三个 long 中生成唯一的 hashCode?.
附加:使用来自外部库的哈希生成器不是选项。