服用`int(numpy.sqrt(N))`

时间:2017-02-20 19:04:24

标签: python numpy

假设我正在考虑M=N**2 N是一个整数。似乎numpy.sqrt(M)返回一个浮点数(实际上是numpy.float64)。

我可以想象,由于数值精度问题,可能会出现N-10**(-16)返回的情况,在这种情况下,int(numpy.sqrt(M))将为N-1

尽管如此,我的测试N==numpy.sqrt(M)返回True,所以看起来没有发生这种近似。

int(numpy.sqrt(M))是一个完美的正方形时,我认为M确实准确吗?如果是这样,对于奖金,背景中发生了什么使它起作用?

1 个答案:

答案 0 :(得分:0)

为避免错过1E-15的整数,您可以使用:

int(numpy.sqrt(M)+0.5)

int(round(numpy.sqrt(M)))