用“大数据”的方法求圆周率Pi:
思路:计算机随机从0到1的数组成坐标为(x,y)的坐标,假设这里有一个以原点(0,0)为圆心,半径为1的,只看第一象限那个四分之一的圆,此时其面积为Pi/4,这个圆被一个第一象限中边长为1的正方形包住,面积为1。计算机随机生成的点(x,y),判断该点是否在四分之一圆内。随机生成n个点,统计落到圆内的点与n的比值,这个比值与面积之比相同,即:落到圆内的点数:n=四分之一圆的面积:正方形的面积,所以Pi=落到圆内的点数/(n*4)。随机取的点越多越精确。
以下为程序,要利用一个随机产生的函数random(),先载入random这个库,用import random语句实现:
import random
def pi(times):
sum=0
for i in range(times):
x=random.random()
y=random.random()
d2=x*x+y*y
if d2<=1:sum+=1
return(sum/times*4)
times=100000000
x=pi(times)
print("Pi=%.8f" % (x))
(此文为看沙行勉教授的《计算机科学导论——以Python为舟》所写)