问题标签 [string-hashing]

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.

0 投票
3 回答
74 浏览

string - 是否有可用于查找相似(不一定相等)字符串的散列函数?

我需要的是一个对固定数据大小进行操作的散列函数,显然是出于非安全目的。它需要将相似的字符串映射到相似或相等的散列,换句话说,字符串中的微小变化应该不会对散列产生或非常小的变化。

例如:我的名字是 John我的名字是 Jon应该具有相同或非常相似的哈希值。 我的名字是 John你的名字是 Liam应该会产生一些相似的哈希值。 我的名字是约翰我住在美国应该给出完全不同的哈希值。等等!

是否有用于类似目的的散列函数?

0 投票
1 回答
1825 浏览

c++ - DJB2 哈希函数编辑

我在要存储字符串的散列程序中使用 DJB2 散列函数。但是这个哈希函数返回一个非常大的无符号整数值作为返回值(哈希表索引)。如果我的表尺寸非常小(比如 13),有没有办法将这个大值转换为更小的值。我想尽可能避免碰撞。

DJB2哈希函数代码如下:

0 投票
3 回答
321 浏览

algorithm - 了解 Skiena 对“哈希和字符串”的描述

在 Skiena 的“算法设计手册”一书中,以下段落出现在第 80 页标题3.7 散列和字符串下

令 α 为写有给定字符串 S 的字母表的大小。让 char(c) 是一个函数,它将字母表的每个符号映射到一个从 0 到 α - 1 的唯一整数。

上一段中的“字母大小”是什么意思?不是所有的字母 (az) 都有相同的大小吗?还有怎么可能把字符串 S 写在字母 α 上。字母不是放在一起形成一个字符串吗?

0 投票
0 回答
244 浏览

hash - 什么哈希算法适合减少密钥大小

我需要存储键值对,其中键应该是唯一的。它将保存在内存中以及磁盘上的二进制格式。密钥也是通过 TCP 发送的自定义消息协议的一部分。

首先考虑不支持您想要的任何大小的密钥,而是将其限制为 X-chars。

是否有适用的散列算法(不需要安全性)可以代替使用,以减少密钥的长度等,但仍然足以满足唯一性?

0 投票
2 回答
1252 浏览

php - Laravel 用 hashids 替换所有 get 的主键

我使用 laravel 4.2,我想在 url 中使用 hashids 而不是主键。它易于与单个记录一起使用。如果我使用急切加载,我需要遍历所有模型并用哈希 id 替换主键。

例如。对于每篇文章,我都需要使用 hashid 更改 post_id。对于帖子的每条评论,我都必须这样做。对于评论的每个用户等等..我可以扩展模型以默认返回 hashid 吗?

0 投票
1 回答
453 浏览

python - 以输出长度作为输入长度的快速散列

我正在寻找一种哈希算法,它将输入 16 个字符的字符串,并输出一个不同的 16 个字符的字符串。[无法转换为原始字符串]

我曾考虑采用 MD5 结果并对前 16 个字符进行切片,但我认为这不是解决问题的正确方法,因为它失去了散列的想法。

有什么建议么?平台,如果重要的话,是 Python。

0 投票
3 回答
786 浏览

php - 使用 MD2 散列唯一字符串

我有一个唯一电子邮件地址列表 - 一个非常简单的问题。如果电子邮件是唯一的,输出将始终是唯一的,

0 投票
1 回答
440 浏览

java - 从mysql数据库散列字典

当我试图找到一个代码来帮助我获得“get”这个词的多个结果时,我遇到了 mysql 数据库的问题。当我搜索数据库时,我只找到一个建议。这是我得到的

输入要搜索的词_______________:得到

考虑这个替代方案____________:访问(例如,您可以访问一些最好的律师)

但是我还有其他关于“get”这个词也很重要的条目,可以在这里作为替代词的词是 7。那么我可以在 Java 中做些什么来解决这个问题呢?我有一个名为 Grammarchecker 的表和一个名为 wrongwords 的列,而另一个是 rightwords。

如何用 Java 编写代码?我看过一些关于散列字典、正则表达式匹配和数组模式匹配的视频,但是正则表达式不能在 mysql 数据库上的 JAVA 中完成。其次,当涉及到 Mysql 数据库时,散列主要是在文本文件上完成的。是否有可能在java中使用这种函数获得“get”这个词的多个结果:rs.next()

因为我不知道如何从 mysql 数据库中散列字典。我只是想要一个解决方案。

我的问题是通过java中的扫描仪从Mysql数据库中获得不同单词的多个答案。不只是为了得到这个词!

0 投票
0 回答
34 浏览

java - 我不是很有经验,正在尝试处理我的哈希表中的冲突。然而

我不是很有经验,正在尝试处理我的哈希表中的冲突。但是,它只是跳过它,根本不写它。我认为带有条件 if 的 while 循环会处理它......我已经玩了一段时间了,感觉就像我把所有东西都搞混了或者失去了理智。

0 投票
0 回答
97 浏览

python-2.7 - 具有唯一键的可扩展散列

我有一个由像这样的元组组成的数据库

“深渊,1989,激光光盘,科幻小说,詹姆斯卡梅隆,詹姆斯卡梅隆,美国,20 世纪福克斯,0.00 美元”

我想将电影标题与年份连接起来,为每个存储桶创建唯一键。但不确定如何......我认为为此使用可扩展散列是有益的,

我希望能够按 DVD 或 VHS 电影进行搜索,以及按年份搜索和查找电影。我将包含十年增量和电影类型(DVD,VHS)的几年桶

现在我只有一个简单的添加、删除和获取功能