草庐IT

hash_func

全部标签

python - Python 中的 hash(n) == n 什么时候出现?

我一直在玩Python的hashfunction.对于小整数,它总是出现hash(n)==n。然而,这并没有扩展到大量:>>>hash(2**100)==2**100False我并不感到惊讶,我知道hash的取值范围是有限的。这个范围是多少?我尝试使用binarysearch找到最小的数字hash(n)!=n>>>importcodejamhelpers#pipinstallcodejamhelpers>>>help(codejamhelpers.binary_search)Helponfunctionbinary_searchinmodulecodejamhelpers.binary

python - 什么是实现 __hash__() 的正确和好方法?

实现__hash__()的正确好方法是什么?我说的是返回哈希码的函数,该哈希码随后用于将对象插入哈希表(也称为字典)中。由于__hash__()返回一个整数并用于将对象“分箱”到哈希表中,我假设返回的整数值应该均匀分布在公共(public)数据中(以尽量减少冲突)。获得这些值的好习惯是什么?碰撞有问题吗?就我而言,我有一个小类,它充当容器类,包含一些整数、一些float和一个字符串。 最佳答案 实现__hash__()的一种简单、正确的方法是使用键元组。它不会像专门的哈希那样快,但如果你需要,那么你可能应该在C中实现该类型。下面是一

java - 我应该如何使用 Guava 的 Hashing#consistentHash?

我正在考虑使用consistenthash我正在编写的一些java代码中的算法。guavaHashing库有一个consistentHash(HashCode,int)方法,但是thedocumentation比较缺乏。我最初的希望是我可以使用consistentHash()来实现简单的session亲和性,从而在一组后端服务器之间有效地分配负载。有人有如何使用此方法的真实示例吗?特别是我关心管理从目标范围中移除存储桶。例如:@TestpublicvoidtestConsistentHash(){Listservers=Lists.newArrayList("server1","ser

java - HashMap#hash(int)方法的解释

有人可以向我解释一下静态HashMap#hash(int)方法吗?生成均匀分布的哈希的理由是什么?/***AppliesasupplementalhashfunctiontoagivenhashCode,which*defendsagainstpoorqualityhashfunctions.Thisiscritical*becauseHashMapusespower-of-twolengthhashtables,that*otherwiseencountercollisionsforhashCodesthatdonotdiffer*inlowerbits.Note:Nullkeysa

java - 使用 Objects.hash() 还是自己的 hashCode() 实现?

我最近发现了Objects.hash()方法。我的第一个想法是,这会大大整理您的hashCode()实现。请参阅以下示例:@Override//traditionalpublicinthashCode(){inthash=5;hash=67*hash+(int)(this.id^(this.id>>>32));hash=67*hash+(int)(this.timestamp^(this.timestamp>>>32));hash=67*hash+Objects.hashCode(this.severity);hash=67*hash+Objects.hashCode(this.thr

Mongodb分片: Chunk split failed with Hashed Shard Key

我正在尝试使用散列分片键:{group_id:"hashed"}拆分mongodb分片集群中的几个巨型block。我使用mongodb文档中的以下命令来拆分这些巨型block:db.runCommand({split:"test.people",bounds:[{group_id:NumberLong("-5838464104018346494")},{group_id:NumberLong("-5557153028469814163")}]})但出现以下错误:{"cause":{},"ok":0,"errmsg":"splitfailed"}.此故障的可能原因是什么?分片键group

javascript - 如何使用mongoose在MongoDB中获取findAndModify func的返回值?

我正在像这样使用Node.js+mongoose+MongoDB:SomeModelSchema.statics.findAndModify=function(query,sort,doc,options,callback){returnthis.collection.findAndModify(query,sort,doc,options,callback);};SomeModel.findAndModify({},[],{$inc:{amount:1}},{},function(err){if(err)throwerr;});我可以成功增加amount但我想获得amount的新值而

c++ - C++14中扣除 'auto func(int)'前使用 'auto'

我在GCC中使用C++14编译了以下程序。#includeusingnamespacestd;autofunc(inti);intmain(){autoret=func(5);return0;}autofunc(inti){if(i==1)returni;elsereturnfunc(i-1)+i;}但是,我收到以下错误。Infunction'intmain()':8:16:error:useof'autofunc(int)'beforedeductionof'auto'autoret=func(5);那么,我在这里错过了什么? 最佳答案

C++ - 为什么 boost::hash_combine 是组合散列值的最佳方式?

我在其他帖子中读到这似乎是组合散列值的最佳方式。有人可以分解一下并解释为什么这是最好的方法吗?templateinlinevoidhash_combine(std::size_t&seed,constT&v){std::hashhasher;seed^=hasher(v)+0x9e3779b9+(seed>2);}编辑:另一个问题只是询问魔数(MagicNumber),但我想了解整个功能,而不仅仅是这一部分。 最佳答案 “最好”是有争议的。“好”,甚至“非常好”,至少在表面上,很容易。seed^=hasher(v)+0x9e3779

c++ - hash_map 和 unordered_map 的区别?

最近发现C++中hashmap的实现会叫unordered_map。当我查看他们为什么不只是使用hash_map时,我发现显然hash_map的实现存在兼容性问题,即unordered_map解析(更多关于它here)。那个wiki页面没有提供更多信息,所以我想知道是否有人知道unordered_map解决的hash_map的一些问题。 最佳答案 由于C++标准库中没有定义哈希表,标准库的不同实现者会提供一个非标准的哈希表,通常命名为hash_map。因为这些实现不是按照标准编写的,所以它们在功能和性能保证方面都有细微的差别。从C+