再次感谢您的宝贵时间。我希望我没有太打扰你们。 当和溢出,但均值在范围内时,如何通过整数运算快速准确地了解和的大小?
平均值不会溢出,但它不是整数运算。自然对数适用于数学,但在编程中速度很慢。
>>> k = numpy.empty((10), dtype=numpy.int64)
>>> k[:] = 9223372036854775807
>>> print k
[9223372036854775807 9223372036854775807 9223372036854775807
9223372036854775807 9223372036854775807 9223372036854775807
9223372036854775807 9223372036854775807 9223372036854775807
9223372036854775807]
>>> numpy.sum(k)
-10
>>> numpy.mean(k)
9.2233720368547758e+18
最佳答案
numpy.iinfo(numpy.int64).max
给出
9223372036854775807L
因此,当在求和中使用整数值时,您会遇到溢出。但另一方面,
numpy.finfo(numpy.float64).max
给出
1.7976931348623157e+308
因此,在计算平均值时不会出现溢出,因为平均值的计算使用浮点值并且结果是正确的。如果您使用的值大于允许的最大值,它就会溢出。
关于python - 用整数运算准确反射(reflect)大数和的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076780/