一、计算圆周率PI的方法

(一)公式法:

1 #CalPiV1.py

2 pi =03 N = 100

4 for k inrange(N):5 pi += 1/pow(16, k) * (4 / (8 * k + 1) - 2 /(8 * k + 4) - 1/(8 * k + 5) - 1 /(8 * k + 6))6 print("圆周率值是:{}".format(pi))

(二)蒙特卡罗方法:

1 #CalPiV2.py

2 from random importrandom3 from time importperf_counter4 DARTS = 1000*1000*10

5 hits = 0.0

6 start =perf_counter()7 for i in range(1, DARTS+1):8 x, y =random(), random()9 dist = pow(x**2 + y**2, 0.5)10 if dist <= 1.0:11 hits = hits + 1

12 pi = 4 * (hits/DARTS)13 print("圆周率值是: {}".format(pi))14 print("运行时间是: {:.5f}s".format(perf_counter()-start))

算法说明:增加DARTS的位数,圆周率PI小数点后的位数就会增加。

(三)程序执行效果如下:

二、进度条的设计

(一)带刷新的文本进度条:

1 #TextProBarV3.py

2 importtime3 from tqdm importtqdm4 scale = 50

5 print("执行开始".center(scale//2, "-"))6 start =time.perf_counter()7 for i in range(scale + 1):8 a = '*' *i9 b = '.' * (scale -i)10 c = (i/scale)*100

11 dur = time.perf_counter() -start12 print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")13 time.sleep(0.1)14 print("\n"+"执行结束".center(scale//2, '-'))

程序运行结束的静态图:

三、(一)最终代码:

1 from math importsqrt2 from tqdm importtqdm3 from random importrandom4 importtime5 DARTS=10000

6 hits=0.0

7 t=time.perf_counter()8 for i in tqdm(range(1,DARTS+1)):9   x,y=random(),random()10   dist=pow(x**2+y**2, 0.5)11   if dist<=1.0:12     hits+=1

13   a='*'*i14   b='.'*(DARTS+1-i)15   c=(i/DARTS+1)*100

16   t-=time.perf_counter()17   time.sleep(0.00001)18 pi=4*(hits/DARTS)19 print("Pi值是{}.".format(pi))20 print("\t{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,-t),end='')21 print("运行时间是:{:.5f}s".format(time.perf_counter()))

(二)程序运行效果图如下:

用python计算圆周率_用python计算圆周率PI相关推荐

  1. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  2. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  3. python支持强大的科学计算功能_用 Python 写高效科学计算程序设计

    1.科学计算中的突出问题及需求 概括一般科学计算的特点,主要包括四方面: 数值计算种类多 对于某个问题的求解,可能需要不同种类的函数,如三角函数,积分函数,概率统计函数以及某些特殊函数. 需要大量数值 ...

  4. python 斯皮尔曼相关系数_使用Python计算非参数的秩相关

    相关性是两个变量之间关联的度量. 当两个变量都有良好理解的高斯分布时,很容易计算和解释.而当我们不知道变量的分布时,我们必须使用非参数的秩相关(Rank Correlation,或称为等级相关)方法. ...

  5. python可以用于excel计算吗_你好Python!再见Excel?

    现在很多行业,都离不开Excel: 做财务的,要用Excel做报表: 做物流的,会用Excel来跟踪订单情况: 做HR的,会用Excel算工资: 做运营的,会用Excel记录数据做分析. 不知道你有没 ...

  6. 机械专业与python的联系_使用python进行机械设计计算

    分析 这一过程的核心在于机械设计,python的编程的用途有两个 1.当作计算器,缺点在于没有casio计算器那样的自然显示,优点在于可以反复调用,使用lambda函数简化运算 2.当设计需要修改时, ...

  7. python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink

    我们知道,大数据的计算模式主要分为批量计算(batch computing).流式计算(stream computing).交互计算(interactive computing).图计算(graph ...

  8. python实现案例_基于Python实现相关分析案例

    节选自<Python预测之美:数据分析与算法实战>. 相关关系是一种非确定的关系,就好像身高与体重的关系一样,它们之间不能用一个固定的函数关系来表示.而相关分析就是研究这种随机变量间相关关 ...

  9. python集群_使用Python集群文档

    python集群 Natural Language Processing has made huge advancements in the last years. Currently, variou ...

  10. python机器学习预测_使用Python和机器学习预测未来的股市趋势

    python机器学习预测 Note from Towards Data Science's editors: While we allow independent authors to publish ...

最新文章

  1. mysql数据库优化课程---16、mysql慢查询和优化表空间
  2. LeetCode 1976. 到达目的地的方案数(迪杰斯特拉 Python 优先队列)
  3. java ha_java – Haproxy Bad Gateway 502
  4. 怎么查看页面跳转过程_faststone注册码怎么获取?英文官网打不开
  5. bzoj 1602: [Usaco2008 Oct]牧场行走(暴力LCA)
  6. 作为面试官,最近面试 Java 后端的感受!
  7. 线性支持向量分类机及其实现
  8. FPGA入门程序(1)——流水灯
  9. P1600 [NOIP2016 提高组] 天天爱跑步
  10. iOS 拼音 Swift K3Pinyin
  11. PAT 1038 贪心
  12. 用Python的matplotlib绘制残差分析散点误差棒图
  13. 【编译原理】 NFA转变为DFA的子集构造法
  14. LeetCode 319 灯泡开关[数学] HERODING的LeetCode之路
  15. 显示器U2518怎么连服务器,【戴尔 U2518D 显示器使用感受】尺寸|分辨率|边框|底座|颜色_摘要频道_什么值得买...
  16. 大数据开发之常用软件
  17. 【Dash搭建可视化网站】项目1:使用Dash创建简单网页
  18. 工信部就垃圾短信问题约谈7家虚拟运营商
  19. 清空缓冲区:fflush(stdin)、fflush(stdout)
  20. python 3d库_python的3d库

热门文章

  1. C语言写一个猜数字游戏?我只想玩王者荣耀
  2. Viola-Jones检测器(VJ)---学习笔记
  3. K-Means聚类算法原理及其python和matlab实现
  4. 哪个相机可以拍gif动图_魅族手机如何拍摄Gif图片 魅族手机拍摄Gif动图的方法图解...
  5. AEIA2018 | 中国工程院院士李骏:智能网联汽车的安全和自主创新是当下的关键...
  6. c语言程序设计基础广西师范大学出版社答案,附录Ⅰ全国高校计算机等级考试广西考区二级考试大纲.DOC...
  7. 如何在手机浏览器中打开安卓APP
  8. 利用adb 命令回到手机端某个app的页面
  9. vim的设置文档【我的】
  10. 1. 抽纸片(java)