pallas 发表于 2021-11-6 15:10:02

求助大佬蒙特卡洛方法(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)的数这个代码应该怎么写呢?

傻眼貓咪 发表于 2021-11-6 15:21:49

a = random.randint(0, 1)

hrpzcf 发表于 2021-11-6 15:31:36

-random.random()
random.uniform(-1, 0)
页: [1]
查看完整版本: 求助大佬蒙特卡洛方法(python)