我想将 Python 的 hash()
函数返回的值映射到 0 到 1 范围内的 float 。在我的系统上,我可以用
scale = 1.0/(2**64)
print hash(some_object)*scale+0.5
但是,我知道这在 32 位系统上会有所不同。很可能我永远不会在其他任何地方运行这段代码,但我仍然想知道是否有一种方法可以通过编程确定 Python 的内置 hash()
函数可以返回的最大值和最小值。
(顺便说一句,我这样做的原因是我正在开发一个数值模拟,在这个模拟中我需要从给定的 Numpy 数组中始终生成相同的伪随机数。我知道内置的 - in hash 不会有最好的统计数据,但它很快,所以用它来进行测试很方便。)
最佳答案
在 Python 2.7 中,hash()
返回一个 int
,因此 sys.maxint
应该让您了解它的范围。
关于python - 确定 Python 的 hash() 返回值的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19132927/