Python实例6: 圆周率的计算

Python实例6: 圆周率的计算

利用蒙特卡罗方法计算(撒点计算)

圆周率近似公式:$ \pi = \sum\limits\infty_{k=0}[\frac{1}{16k}(\frac{4}{8k+1} - \frac{2}{8k+5} - \frac{1}{8k+5} - \frac{1}{8k+6})] $

# CalPiV1.py
pi = 0
N = 100
for k in range(N):
    pi += 1/pow(16, k) * ( \
        4/(8*k+1) - 2/(8*k+4) - \
        1/(8*k+5) - 1/(8*k+6))
print("圆周率值是:{}".format(pi))
圆周率值是:3.141592653589793
# CalPiV2.py   
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()   #获得单位1中的坐标值,为0到1之间的随机值
    dist = pow(x ** 2 + y ** 2, 0.5)   #取点到圆心的距离来判断是否在圆内,x的平方+y的平方的和再开方 
    if dist <= 1.0:      #判断是否在圆内
        hits = hits + 1
pi = 4 * (hits/DARTS)
print("圆周率是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter() - start))
圆周率是:3.143136
运行时间是:1.84778s

点赞,关注,收藏👍,➕,👀点赞,关注,收藏👍,➕,👀点赞,关注,收藏👍,➕,👀
😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘😘
💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪💪

在这里插入图片描述

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页