python - 确定 Python 的 hash() 返回值的范围

标签 python hash

我想将 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/

相关文章:

jquery - 在 Jquery 中使用获取 URL 哈希来更改 ID 的类别

python - 如何使用 python 脚本修改 Google 工作表中现有的 protected 范围

python - 对 Selenium 使用随机 userAgent(python)

php - 基于已知值的无冲突、简短且唯一的仅整数哈希

php - 对同一字段进行散列和加密会削弱它吗?

android - 是否每部 Android 手机都支持 SHA-256

php - 对数组进行指纹识别的最快方法(从数据数组计算唯一哈希值)

python - Python Scipy 中的两个样本 Kolmogorov-Smirnov 测试

python - 基于时间的算法中的优化

python - 在 Python 中创建具有任意属性的对象的最短方法?