Pythonの無限のハッシュには、一致する数字があります pi :
>>> inf = float('inf')
>>> hash(inf)
314159
>>> int(math.pi*1e5)
314159
それは単なる偶然ですか、それとも意図的なものですか?
_PyHASH_INF
は 定数として定義314159
と同じです。
私はこれについての議論、または理由を与えるコメントを見つけることができません。多かれ少なかれarbitrarily意的に選ばれたと思います。他のハッシュに同じ意味のある値を使用しない限り、それは問題ではないと思います。
確かに、
sys.hash_info.inf
314159
を返します。値は生成されず、ソースコードに組み込まれます。実際には、
hash(float('-inf'))
python 2で-271828
またはおよそ-eを返します( 現在は-314159です )。
ハッシュ値として史上最も有名な2つの無理数が使用されているという事実は、偶然ではない可能性が非常に高くなります。