我正在用python学习数学,当我尝试使用这个代码进行对数时它会给我这个错误,有什么帮助吗?
import math
n = 1000000
n2 = 0
for i in range(n):
x = math.log2(i)
n2 += x
print(n2)
它给我一个值错误:“ValueError:math domain error”
import math
n = 1000000
n2 = 0
for i in range(1,n):
x = math.log2(i)
n2 += x
print(n2)
快乐的编码!
范围(n)从0到n-1但是没有定义Log(0)因此使用范围(1,n)。
你正在计算log2(0)
,这是- inf
。因此,您收到错误。试试range(1,n)
。