整数的哈希码
基本类型(例如int)的哈希码是什么?例如,假设num是一个整数。int hasCode = 0;if (num != 0) { hasCode = hasCode + num.hashCode();}回答:对于hashCode一个int最自然的选择是使用int本身。一个更好的问题是,用什么的hashCode的long,因为它不适合的int尺度的哈希码。您的最佳解决方案以及所有hashCode相关问题将是...
2024-01-10什么是好的哈希函数?
什么是良好的哈希函数?我在大学的数据结构课程中看到了很多哈希函数和应用程序,但是我大多数都知道要创建一个好的哈希函数非常困难。为了避免发生冲突,我的教授说:function Hash(key) return key mod PrimeNumberend(mod是C和类似语言的%运算符)质数应为哈希表的大小。我知道这是一个不错的功...
2024-01-10密码哈希函数有哪些应用?
密码散列函数有以下几种应用:数字签名- 手写签名是一种证明纸质文件由我们而不是其他人签名的方法。它可以证明这一点,并将当前的手写签名与一个或多个较早的手写签名进行比较。如果匹配,则文件的接收者可以安全地接受文件不能被其他人认可。如果是第一次,它可能必须通过一些识别卡来...
2024-01-10我应该选择哪个加密哈希函数?
.NET框架附带6种不同的哈希算法:MD5:16个字节(散列时间500MB:1462毫秒)SHA-1:20个字节(1644毫秒)SHA256:32个字节(5618毫秒)SHA384:48个字节(3839毫秒)SHA512:64个字节(3820毫秒)RIPEMD:20个字节(7066 ms)这些功能中的每个功能都有不同。MD5是最快的,而RIPEMD是最慢的。MD5的优点是适合内...
2024-01-10图解两数之和:哈希表法
两数之和是一道非常经典,也非常高频的面试题,题目大意如下:今天我们就一起探讨一下这道题的解法。太长不看版可以通过暴力运算,遍历nums中的每一个元素,查找数组剩余部分是否有匹配的值;更高效的方式是利用哈希表key唯一且访问快的特性,建立map存储未命中的值。遍历nums中的元素,...
2024-01-10DJB哈希函数中5381号的原因?
谁能告诉我为什么DJB哈希函数中使用数字5381?DJB哈希函数是h(0)= 5381h(i)= 33 * h(i-1)^ str [i]一个c程序:unsigned int DJBHash(char* str, unsigned int len){ unsigned int hash = 5381; unsigned int i = 0; for(i = 0; i < len; str++, i++) { hash = ((hash << 5) + hash) + (...
2024-01-10通过存储在哈希表中的字符串访问函数
如果我将函数名称存储为字符串在Hashtable中。有没有办法通过存储的字符串访问函数?编辑恐怕我在CLDC1.1 / MIDP2.0上工作的平台不支持反射。有什么解决方法?回答:只需使用一长串else-ifs:[...]} else if ("foo".equals(function)) { target. foo();} else if ("bar".equals(function)) { target. bar();[...](尽管我通常...
2024-01-10关于哈希(散列)函数你应该知道的东西
从输出的哈希值反推回输入,这从计算的角度是不可行的。无论安全从业人员用计算机做什么,有一种工具对他们每个人都很有用:加密哈希(散列)hash函数。这听起来很神秘、很专业,甚至可能有点乏味,但是, 在这里,关于什么是哈希函数以及它们为什么对你很重要,我会作出一个简洁的解释...
2024-01-10从64位整数到64位整数的可逆“哈希”函数
我需要的是一个 函数,该函数将一个 长 整数(64位整数)转换为另一个 长整数,这种方式对用户来说似乎是“随机的”(但实际上是确定性的),以便将3个后续数字转换为3个数字彼此完全不同。做到这一点很容易而又不可逆,但是在这部分上却很难。基本上,这是与可逆哈希函数相同的问题吗?...
2024-01-10C#中具有多维键的哈希表
我基本上是在寻找一种使用c#中的二维类型键访问哈希表值的方法。最终我可以做这样的事情HashTable[1][false] = 5;int a = HashTable[1][false];//a = 5这就是我一直在尝试的…没有用Hashtable test = new Hashtable();test.Add(new Dictionary<int, bool>() { { 1, true } }, 555);Dictionary<int, bool> temp = new Dictionary<int, ...
2024-01-10哈希表的基本原理?
我对哈希表的基本概念感到困惑。如果我要编码一个哈希,我什至会开始吗?哈希表和普通数组之间有什么区别?基本上,如果有人回答了这个问题,我想我的所有问题都会得到回答:如果我有100个随机生成的数字(作为键),那么我将如何实现哈希表,以及为什么它比数组有优势?伪代码或Java将被...
2024-01-10C ++程序通过线性探测实现哈希表
哈希表是一种数据结构,用于存储键值对。哈希表使用哈希函数来计算要插入或搜索元素的数组的索引。线性探测是开放地址哈希表中的冲突解决技术。在这种方法中,哈希表的每个单元格都存储一个键-值对。如果通过将新键映射到哈希表中已经被另一个键占用的单元格而发生冲突。此方法在表中搜...
2024-01-10图解哈希表及其原理
要点回顾此部分方便知识点快速回顾,首次阅读请从引言部分开始。哈希表(Hash Table)其实也叫散列表,是一个数据结构。哈希表本质上就是一个数组,只不过数组存放的是单一的数据,而哈希表中存放的是键值对(key - value pair)。key 通过哈希函数(hash function)得到数组的索引,进而存取索引位...
2024-01-10C#中的哈希表与字典
Hashtable 哈希表当需要使用键访问元素时,可以使用哈希表,并且可以识别有用的键值。哈希表中的每个项目都有一个键/值对。该键用于访问集合中的项目。Hashtable中的成员是线程安全的。如果我们尝试查找不存在的键,则返回null。哈希表不是通用类型。Hashtable集合比字典慢,因为它需要装箱和拆箱。...
2024-01-10列表不可哈希,但元组可哈希?
在如何哈希列表?有人告诉我,我应该转换为一个元组第一,如[1,2,3,4,5]到(1,2,3,4,5)。因此,第一个不能散列,而第二个可以散列。为什么*?*我并不是真正地在寻求详细的技术说明,而是在寻找一种直觉回答:主要是因为元组是不可变的。承担以下工作:>>> l = [1, 2, 3]>>> t = (1, 2, 3)>>> x = {l: 'a list', ...
2024-01-10在C#中使用哈希表和字典
哈希表Hashtable类表示键和值对的集合,这些键和值对基于键的哈希码进行组织。它使用键来访问集合中的元素。Hashtable类中的一些常用方法是-序号方法与说明1public virtual void Add(object key, object value);将具有指定键和值的元素添加到哈希表中。2public virtual void Clear();从哈希表中删除所有元素。3public virtual bo...
2024-01-10轻松学习C#的哈希表
在C#语言中,还有一种用于快速搜索而组织的键/值组合的数组,这种数组叫做关联数组,也叫做哈希表(Hashtable)。 哈希表也在System.Collection命名空间下,用于处理和表现类似key/value的键值对,其中key通常用来快速查找,同时key是区分大小写,且key必须是唯一的。它没有有效的排序,所...
2024-01-10C ++程序通过二次探测实现哈希表
哈希表是一种数据结构,用于存储键值对。哈希表使用哈希函数来计算要插入或搜索元素的数组的索引。二次探测是开放地址哈希表中的冲突解决技术。它通过获取原始哈希索引并添加任意二次多项式的连续值直到找到一个空位来进行操作。这是一个使用二次探测实现哈希表的C ++程序。算法对于搜索...
2024-01-10从种子文件中提取SHA1哈希
我已经到处寻找答案,但是似乎只能找到可以满足您需求的软件。有人知道如何在python中执行此操作吗?回答:我写了一段python代码,根据 .torrent文件 中的内容验证 下载文件 的哈希值。假设您要检查下载是否损坏,则可能会发现此功能有用。 __您需要bencode包才能使用它。Bencode是.torrent文件中使用的...
2024-01-10RedisHash哈希(2)
包含键值对的无序散列表。value只能是字符串,不能嵌套其他类型。同样是存储字符串,Hash与String的主要区别?1、把所有相关的值聚集到一个key中,节省内存空间2、只使用一个key,减少key冲突3、当需要批量获取值的时候,只需要使用一个命令,减少内存/IO/CPU的消耗Hash不适合的场景:1、Field不能...
2024-01-10将哈希传递给Perl中的子例程
当您向接受列表的Perl子例程或运算符提供哈希值时,哈希值将自动转换为键/值对列表。例如-示例#!/usr/bin/perl# Function definitionsub PrintHash { my (%hash) = @_; foreach my $key ( keys %hash ) { my $value = $hash{$key}; print "$key : $value\n"; }}%hash = ('name' => 'Tom', 'age' => 19);...
2024-01-10顺序无关的哈希算法
我目前正在为我的自定义编程语言开发一个集合库。我已经有几种数据类型(Collection,List,Map,Set)和它们的实现(可变和不可变),但是到目前为止我缺少的是hashCodeandequals。尽管这些对于列表来说是没有问题的,因为它们是有序的集合,但是它们对于集合和地图起着特殊的作用。如果两个Set具有...
2024-01-10安全哈希算法如何工作?
安全散列算法 (SHA) 由美国国家安全局 (NSA) 发明,并于 1993 年通过美国国家标准与技术研究院 (NIST) 作为美国联邦信息处理标准 (FIPS PUB 180) 发布。SHA 依赖并共享与 MD4 算法相似的构建块。SHA 的设计引入了一种新流程,将输入到压缩功能的 16 字消息块发展为介于其他事物之间的 80 字块。SHA 的处理如下:...
2024-01-10最小曼哈顿距离算法
我希望从一组点中找到曼哈顿距离/直线距离的总和最小的点(即,该点与集合中每个点之间的直线距离的总和应最小)。结果点可以是给定集合中的点之一(不一定)。如果存在多个具有相同最小距离的点,我希望检索所有这些点。换一种说法:我有一个带有某些交叉点的网格。我想找到最接近...
2024-01-10就字符串的哈希冲突和性能而言,最佳哈希算法
如果我们具有以下优先级(按此顺序),那将是最佳的哈希算法:最小的哈希冲突性能它不一定是安全的。基本上,我试图基于某些对象的属性组合来创建索引。 。对c#实现的任何引用将不胜感激。回答:忘记术语“最佳”。不管有人会提出哪种哈希算法,除非您需要对哈希数据进行限制的数...
2024-01-10如何用PHP实现分布算法之一致性哈希算法
目录传统算法缺陷算法思想算法实现总结传统算法缺陷对于服务器分布,我们要考虑的东西有如下三点:数据平均分布,查找定位准确,降低宕机影响。传统算法一般是将数据的键用算法映射出数字,对其用服务器数量取模,并根据结果选择要存储的服务器。其能达到数据平均分布和查找定位准确的...
2024-01-10哈希算法属于查找算法吗
品牌型号:华为MateBook D15系统:Windows 11哈希算法属于查找算法。哈希查找算法又称散列查找算法,是一种借助哈希表(散列表)查找目标元素的方法,查找效率最高时对应的时间复杂度为O(1)。哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希...
2024-01-24针对动态/静态/增量数据的特化哈希表算法
我有许多数据集具有键值模式 - 即字符串键和指向数据的指针。现在它被存储在散列表中,每个表都具有与散列键相对应的槽阵列,并且在碰撞时形成具有碰撞的每个槽(直接链接)下的链表。所有在C中实现(并应保持在C),如果它很重要。现在针对动态/静态/增量数据的特化哈希表算法,该数据实...
2024-01-10哈希表hash算法的冲突问题
已知字符串的hash算法如下:function hashCode(str) { let hash = 0; for (let i = 0; i < str.length; i++) { hash = hash * 31 + str.charCodeAt(i); } return hash;}找出2^n个hashCode方法返回值相同,且长度为2^n的字符串,提示:hashCode('Aa') == hashCode('BB')。如下图所示:根据例子可以推论如下:CC == BbDD == Cc...
2024-01-10