import math
import random
m = input('请输入一个较大的整数')
n = 0
for i in range(int(m)):
x = random.random()
y = random.random()
if math.sqrt(x**2 + y**2) < 1:
n += 1
pi = 4 * n /int(m)
print("pi = {}".format(pi))
请输入一个较大的整数>? 10000000
pi = 3.1425488
计算积分
绘制图像
import numpy as np
import matplotlib.pylab as plt
x = np.linspace(0,1,num=50)
y = np.log(1 + x) / (1 + x**2)
plt.plot(x,y,'-')
plt.show()
计算积分
import random
import numpy as np
m = 100000
n = 0
for i in range(m):
x = random.random() # random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
y = random.random()
if np.log(1 + x) / (1 + x ** 2) > y:
n += 1
ans = n / m
print(ans)
0.27331