Python语言中的无穷大哈希具有与pi匹配的数字
>>> inf = float('inf')
>>> hash(inf)
314159
>>> int(math.pi*1e5)
314159
这只是一个巧合,还是故意的?
发布于 2019-05-21 04:19:58
_PyHASH_INF
的defined as a constant等于314159
。
我找不到任何关于这方面的讨论,也找不到给出原因的评论。我认为这或多或少是随意选择的。我认为,只要它们不对其他散列使用相同的有意义的值,这应该无关紧要。
发布于 2019-05-22 00:39:13
的确,
sys.hash_info.inf
返回314159
。值不是生成的,而是内置在源代码中的。事实上,
hash(float('-inf'))
在python 2 (it's -314159 now)中返回-271828
,或近似为-e。
使用有史以来最著名的两个无理数作为散列值的事实使其不太可能是巧合。
https://stackoverflow.com/questions/56227419
复制相似问题