首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Python的无穷大散列的数字是π?

为什么Python的无穷大散列的数字是π?
EN

Stack Overflow用户
提问于 2019-05-21 04:00:21
回答 2查看 28.7K关注 0票数 241

Python语言中的无穷大哈希具有与pi匹配的数字

代码语言:javascript
复制
>>> inf = float('inf')
>>> hash(inf)
314159
>>> int(math.pi*1e5)
314159

这只是一个巧合,还是故意的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-21 04:19:58

_PyHASH_INFdefined as a constant等于314159

我找不到任何关于这方面的讨论,也找不到给出原因的评论。我认为这或多或少是随意选择的。我认为,只要它们不对其他散列使用相同的有意义的值,这应该无关紧要。

票数 48
EN

Stack Overflow用户

发布于 2019-05-22 00:39:13

的确,

代码语言:javascript
复制
sys.hash_info.inf

返回314159。值不是生成的,而是内置在源代码中的。事实上,

代码语言:javascript
复制
hash(float('-inf'))

在python 2 (it's -314159 now)中返回-271828,或近似为-e。

使用有史以来最著名的两个无理数作为散列值的事实使其不太可能是巧合。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56227419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档