对于π的值,直到1946年的时候,人类才能将π的值精确计算到小数点后2037位,而现在的超级计算机的能力可以精确的计算到小数点后几十亿位,然而在计算机发明之前,还是使用这里的布丰投针法来计算π值,是最实用的方法。
使用代码来模拟这个过程,首先是程序设计思路的基本路程:
import math
import numpy as np
from numpy import random
import matplotlib.pyplot as plt
import matplotlib.lines as mlines
然后根据代码设计的流程图实现代码:
UPDATE_FREQ = 500 #每模拟投针500次后就将结果绘制出来
BOUND = 10 #图形绘制区域的长和宽
BORDER = 0.05 * 10 #绘制区域边缘宽度
NEEDLES= 10000 #投针的次数
NEEDLE_LENGTH = 1 #针的长度
FLOORBOARD_WIDTH = 2 #两条平行线之间的距离
FLOORBOARD_COLOR = 'black' #两条平行线的颜色
NEEDLE_INTERSECTING_COLOR = 'red' #铁针与线相交时的颜色
NEEDLE_NON_INTERSECTING_COLOR = 'green' #铁针与直线不相交时的颜色
class Needle:def __init__(sel