python学习实例5 圆周率的计算
核心方法:
蒙特卡罗方法——不同于直接运用公式的数学思维 的计算思维,实际上是一个撒点过程,抽象成计算点数量的过程
from random import random
from time import perf_counter
Darts = 1000*1000
hits = 0.0
start = perf_counter()
for i in range(1,Darts+1):
x,y = random(), random()
dist = pow(x**2+y**2,0.5)
if dist <= 1.0:
hits += 1
pi = 4*(hits/Darts)
print("圆周率的值为:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))
拓展:计算思维与数学思维
许多计算问题并没有明确的计算公式,只能运用计算思维解决。另外有些数学公式只能取到近似值,不如计算机方法准确