求助大佬蒙特卡洛方法(python)
#在图中区域产生足够多的随机数点,然后计算落在圆内的点的个数与总个数的比值再乘以四,就是圆周率。M = input('请输入一个较大的整数')# 输入的数一般要很大才能保证所求结果不会与圆周率产生较大误差
N = 0# 累计落在园内的随机点的个数,初始值为零
import math
import random
for i in range(int(M)):
x = random.random() # 利用random()产生随机数或者是伪随机数
y = random.random()
if math.sqrt(x ** 2 + y ** 2) < 1:# 判断产生的随机点是否落在单位圆内
N = N + 1# 对落在圆内的点进行累加
pi = 4 * N / int(M)
print(pi)
random.random()这里是产生0-1的数,如果要产生0- (-1)的数这个代码应该怎么写呢? a = random.randint(0, 1) -random.random()
random.uniform(-1, 0)
页:
[1]