统计力学中一个非常重要的方程是大数的斯特林近似,lnN=NlnN−N(N>;>;1)。编写一个Python程序来验证这种近似。更具体地说,评估比率lnN/NlnN−N表示N=1000000
这是我的程序,但我不能让它工作。它没有给我一个错误,只是Python中断了。我没学过很多numpy,所以我没用过
from math import log
N = 1000000
N_factorial=1
for i in range(1,N + 1):
N_factorial = N_factorial*i
a = log(N_factorial)
b = N*log(N)-N
print(a/b)
您只需使用
math.factorial()
函数即可:但是,使用对数乘积规则,可以对
n
因子的自然对数求和(因为log(a*b) = log(a) + log(b)
,log(a!) = log(a) + log(a-1) + log(a-2) + ... + log(2) + log(1)
)哈哈,为什么每个人都要直接发帖呢
显然,您应该添加,而不是试图计算一个600万位数的数字。因此,您应该有如下代码:
相关问题 更多 >
编程相关推荐