要求:
(1)使用蒙特卡罗方法
(2)打印进度条
(3)计算用时
蒙特卡罗方法(向一个单位圆及其单位正方形抛点,取其四分之一来算,结果再乘上4即可)
话不多说,直接上代码
import time
import random
dian=pow(10,6) #抛一百万个点,别抛太多,会用时过多,当抛到一定数量的点后,其精确值都差不多了
youxiaodian=0 #落在圆内的点
start=time.perf_counter() #计时
for i in range(1,dian+1):
a='*'*int((i/dian)*100) #a,b,c都是打印进度条用
b='.'*int(((dian-i)/dian)*100)
c=int((i/dian)*100)
print("\r当前进度:{:^3.0f}% [{}->{}]".format(c, a, b),end="") #打印进度条
x,y=random.random(),random.random() #x,y取0-1的随机数(因为是单位圆)
if pow((x*x+y*y),1/2)<1: #r&