蒙特卡罗(Monte Carlo)算法计算圆周率的主要思想:给定边长为R的正方形,画其内切圆,然后在正方形内随机打点,设点落在圆内的概为P,则根据概率学原理:
P = 圆面积 / 正方形面积 = PI * R * R / 2R * 2R = PI / 4。
即 PI=4P。这样,当随机打点足够多时,统计出来的概率就非常接近于PI的四分之一了。
最后,直觉告诉我:如果采用值域更大的伪随机数发生器(标准库中的rand能常只产生最大为三万多的伪随机数),结果应该可以更好。
蒙特卡罗(Monte Carlo)算法计算圆周率的主要思想:给定边长为R的正方形,画其内切圆,然后在正方形内随机打点,设点落在圆内的概为P,则根据概率学原理:
P = 圆面积 / 正方形面积 = PI * R * R / 2R * 2R = PI / 4。
即 PI=4P。这样,当随机打点足够多时,统计出来的概率就非常接近于PI的四分之一了。
最后,直觉告诉我:如果采用值域更大的伪随机数发生器(标准库中的rand能常只产生最大为三万多的伪随机数),结果应该可以更好。