草庐IT

哈希环

全部标签

c++ - 使用 Crypto++ 通过 SHA1 生成随机哈希

我需要使用Crypto++和SHA1生成随机散列。目前我有:#include#include#include...CryptoPP::SHA1sha1;stringsource="Hello";//Thiswillberandomlygeneratedsomehowstringhash="";StringSource(source,true,newHashFilter(sha1,newHexEncoder(newStringSink(hash))));当我来编译时,报如下错误:error:expectedtype-specifierbefore'HashFilter'error:exp

c++ - 使用两个对象作为 unordered_map 或替代方案的哈希键

定义对象myType后,我需要存储这些对象之间的关系。这些关系存储在矩阵中。事先不知道元素的数量,并非所有元素都有关系(element1可以与element3有关系,但可能与5没有关系)并且内存是一个问题。例如它可能看起来像:element45与:具有特征[3,1;1,4]的元素3具有特征[1,1;1,1]的元素12具有特征[8,1;1,4]的元素1780element1661连接到:具有特征[3,1;6,4]的元素3具有特征[1,1;1,9]的元素1具有特征[8,1;1,1]的元素1780拥有:myType*element1;myType*element2;我想要类似的东西(正确指出

c++ - `std::filesystem::path` 没有标准哈希值吗?

我有一个简单的程序,旨在存储一组C++17std::filesystem::path对象。因为有一个std::filesystem::hash_value那是标准的一部分,为什么我不必提供自己的std::hash就无法编译这段代码??当我使用gcc8.1.1作为g++-std=c++17-NO_HASH=1hashtest.cpp-ohashtest-lstdc++fs编译和链接时包括我的哈希函数,一切都运行完美。但是,如果我将其更改为-NO_HASH=0,我收到一长串错误消息,其中最关键的一条是:usr/include/c++/8/bits/hashtable.h:195:21:er

c++ - Rabin-Karp 算法的最佳哈希函数是什么?

我正在为Rabin-Karp算法寻找高效的哈希函数。这是我的实际代码(C编程语言)。staticboolf2(charconst*consts1,size_tconstn1,charconst*consts2,size_tconstn2){uintmax_thsub=hash(s2,n2);uintmax_ths=hash(s1,n1);size_tnmax=n2-n1;for(size_ti=0;i我考虑了一些Rabin-KarpC实现,但所有代码之间存在差异。所以我的问题是:Rabin-Karp哈希函数应该具备哪些特征? 最佳答案

Ruby Double Splat参数太贪婪,哈希参数

在Ruby2.4.1中,我有这样的方法:defexample(*args,**kwargs)pargspkwargsend我可以通过位置论点不是哈希很好:irb(main):001:0>example("Greetings")["Greetings"]{}而且,如果我想使用命名参数,那也很好:irb(main):002:0>example(something:42)[]{:something=>42}但是,试图将哈希作为位置论点,这发生了:irb(main):002:0>example({something:42})[]{:something=>42}我想*args拿{something:42

c++ - 将 DJB 哈希转换为 64 位

如果我使用64位无符号整数,DanBernstein的哈希函数是否仍能正常运行?uint64hash_djb2(registeruchar*str,registersize_tlength){registeruint64hash=5381L;while(length--){hash=((hash 最佳答案 djb哈希函数基于LinearCongruentialGenerator,其形式为x=(a·x+c)modm。通过检查函数,我们意识到a=33,c=input在djb的情况下,但模数有点隐藏,因为它由变量hash的类型,原始形式的

c++ - 计算种子文件的信息哈希

我正在使用C++解析torrent文件的信息散列,与此站点相比,我无法获得“正确”的散列值:http://i-tools.org/torrent我构建了一个非常简单的玩具示例,只是为了确保我掌握了正确的基础知识。我在sublime中打开了一个.torrent文件并删除了除信息字典之外的所有内容,所以我有一个如下所示的文件:d6:lengthi729067520e4:name31:ubuntu-12.04.1-desktop-i386.iso12:piecelengthi524288e6:pieces27820:¡´E¶ˆØËš3í..............(moreunreadabl

c++ - 查找表是哈希表的一种形式吗?

我想看看我在这里的概念是否正确。.如果我试图避免为float据数组x中的每个元素计算计算量大的someExpensiveFun(x),假设有界值在0和1之间,可以先预先计算昂贵函数的输出并将其存储在表中。..for(intnn=0;nn然后在性能关键代码的主体中我可以使用...y=lookup[(int)floor(x*1000.f)];将lookup称为哈希表的一种形式并将x*1000称为相关的哈希函数在概念上是否正确(而不是滥用术语)? 最佳答案 我个人认为这是对术语的滥用。它缺乏人们自然希望从哈希表中获得的属性,特别是能够对具

LC打怪录Day6哈希表(1.2)-349. 两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。输入:nums1=[4,9,5],nums2=[9,4,9,8,4]输出:[9,4]解释:[4,9]也是可通过的method1:array数组解classSolution:defintersection(self,nums1:List[int],nums2:List[int])->List[int]:#创建两个长度为1001的列表count1和count2,初始值都是0。#这里假设数组中的数字不会超过1000。count1=[0]*1001count2=[0]

c++ - knuth 乘法哈希

这是Knuth乘法哈希的正确实现吗。inthash(intv){v*=2654435761;returnv>>32;}乘法溢出会影响算法吗?如何提高该方法的性能? 最佳答案 Knuth乘法哈希用于根据整数k计算{0,1,2,...,2^p-1}中的哈希值。假设p在0到32之间,算法是这样的:将alpha计算为最接近2^32(-1+sqrt(5))/2的整数。我们得到alpha=2654435769。计算k*alpha并将结果对2^32求模:k*alpha=n0*2^32+n1其中0保留n1的最高p位:n1=m1*2^(32-p)+m