蒙特卡罗使用随机数和概率来解决问题。这个方法在数学、物理和化学等方面有着广泛的应用。
为了使用蒙特卡罗方法来计算圆周率兀,可绘制一个圆的外接正方形,如图所示。假设圆的半径是1,那么圆的面积是π,外接正方形的面积是4。任意产生正方形内的一个点,该点落在圆内的概率是:圆面积正方形面积,即π/4。
编写程序,在正方形内随机产生100000个点,落在圆内点的数量用 n 表示。因此, n 的值约为10000×π/4。可以估算π的值约为4×n/10000。判断点( x,y )落在圆内的公式是x²+y²<=1。产生随机数使用了 random 模块中的 random ()函数。
例 4-15使用蒙特卡罗方法计算圆周率。
#ex0415.py
import random
number = 100000
n = 0
for i in range(number):
x = random.random() * 2 - 1
y = random.random() * 2 - 1
if ((x * x + y * y) <= 1):
n += 1
pi = 4.0 * n / number
print("使用门特卡罗方法计算圆周率的值是:",pi)
当随机点取得越多时,计算结果越准确。



