糖逗 发表于 2022-1-30 14:45:52

python实现统计模拟【第3章】【利用随机数求积分】

#利用随机数求积分
#对pi进行估计
import numpy as np
import math

class comput:
    def __init__(self, n = 7000000):
      self.n = n
   
    def random_number2(self, seed = 1, m = pow(2, 31)-1, c = 19,a = pow(7, 5)):   
      res = []
      xi_1 = seed
      for i in range(self.n):
            xi = (a * xi_1 + c) % m
            res.append(xi / m)
            xi_1 = xi
      return np.array(res)
   
    def comput_pi(self):
      x = self.random_number2(seed = 23)
      y = self.random_number2(seed = 61)
      res_temp = pow((2*x-1), 2) + pow((2*y-1), 2)
      res = np.sum(res_temp <= 1) / self.n
      return res*4

res = comput().comput_pi()
print(res)


参考:
1.Sheldon M.Ross《统计模拟》
页: [1]
查看完整版本: python实现统计模拟【第3章】【利用随机数求积分】