Python中的无限整数

时间:2014-07-05 15:39:13

标签: python python-3.x math infinity

Python 3有float('inf')Decimal('Infinity'),但没有int('inf')。那么,为什么语言中缺少表示无限整数集的数字? int('inf')不合理吗?

3 个答案:

答案 0 :(得分:10)

从这里采取:https://www.gnu.org/software/libc/manual/html_node/Infinity-and-NaN.html

  

IEEE 754浮点数可以表示正或负无穷大,以及NaN(不是数字)

也就是说,floatDecimal的表示可以存储这些特殊值。但是,基本类型int中没有任何内容可以存储相同的内容。当你在无符号的32位int中超过2 ^ 32的限制时,你只需再次翻转为0。

如果需要,可以创建一个包含整数的类,该整数可能具有无限值的可能性。

答案 1 :(得分:4)

你是对的,可以使用整数无穷大,并且没有添加到Python标准中。这可能是因为math.inf几乎在所有情况下都取代了它。

答案 2 :(得分:2)

对于python 2。 有时您需要一个非常大的整数。例如,我可能想要生成一个带有x [:n]的子数组,我可能希望有时将n设置为一个值,以便生成整个数组。由于你不能使用float来表示n(python想要一个整数),你需要一个“大整数”。这样做的一个好方法是使用可用的最大整数:sys.maxint。 这是一个例子:

# MAX_SOURCES = sys.maxint # normal setting
MAX_SOURCES = 5 # while testing

# code to use an array ...
... sources[:MAX_SOURCES]

因此,在测试时,我可以使用较小的源数组,但在生产中使用完整的数组。