
027 实例6-圆周率的计算
十天快速入门 Python完整教程目录:
发布日期:2021-05-09 05:34:48
浏览次数:9
分类:博客文章
本文共 1349 字,大约阅读时间需要 4 分钟。
目录
一、"圆周率的计算"问题分析
圆周率的近似计算公式
\[\pi = \sum_{k=0}^\infty[\frac{1}{16^k}(\frac{4}{8k+1}-\frac{2}{8k+4}-\frac{1}{8k+5}-\frac{1}{8k+6})]\]
1.1 蒙特卡罗方法
二、"圆周率的计算"实例讲解
圆周率的近似计算公式
\[\pi = \sum_{k=0}^\infty[\frac{1}{16^k}(\frac{4}{8k+1}-\frac{2}{8k+4}-\frac{1}{8k+5}-\frac{1}{8k+6})]\]
# CalPiV1.pypi = 0N = 10for 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.1333333333333333圆周率值是: 3.1414224664224664圆周率值是: 3.1415873903465816圆周率值是: 3.1415924575674357圆周率值是: 3.1415926454603365圆周率值是: 3.141592653228088圆周率值是: 3.141592653572881圆周率值是: 3.141592653588973圆周率值是: 3.1415926535897523圆周率值是: 3.1415926535897913
2.1 蒙特卡罗方法
# CalPiV2.pyfrom random import randomfrom time import perf_counterDARTS = 1000 * 1000hits = 0.0start = 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 = hits + 1 pi = 4 * (hits / DARTS)print("圆周率值是: {}".format(pi))print("运行时间是: {:.5f}s".format(perf_counter() - start))
圆周率值是: 3.141148运行时间是: 0.77535s
三、"圆周率的计算"举一反三
3.1 理解方法思维
- 数学思维:找到公式,利用公式求解
- 计算思维:抽象一种过程,用计算机自动化求解
- 谁更准确? (不好说…)
3.2 程序运行时间分析
- 使用time库的计时方法获得程序运行时间
- 改变撒点数量,理解程序运行时间的分布
- 初步掌握简单的程序性能分析方法
3.3 计算问题的扩展
- 不求解圆周率,而是某个特定图形的面积
- 在工程计算中寻找蒙特卡罗方法的应用场景
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年03月26日 13时25分02秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【QML 快速入门】属性(Properties)
2021-05-09
音视频基础知识---像素格式YUV(转)
2021-05-09
音视频-测试工具推荐
2021-05-09
C++9018:2333/2235——柠檬汽水(Lemonade Line)
2021-05-09
力扣 - 430. 扁平化多级双向链表
2021-05-09
C++高精度模板
2021-05-09
错题重错之WYT的刷子 单调队列
2021-05-09
关于结构体的初始化
2021-05-09
洛谷 P6851 【onu】贪心
2021-05-09
联赛模拟测试20 B. Walk (建图)
2021-05-09
联赛模拟测试23 D. 真相 思维题
2021-05-09
莫队学习笔记
2021-05-09
牛顿迭代学习笔记
2021-05-09
P3714 [BJOI2017]树的难题 点分治+线段树合并
2021-05-09
Scala中的空
2021-05-09
k8s之PV、PVC、StorageClass详解
2021-05-09
你真的了解Innodb存储引擎?
2021-05-09
FeWeb基础之JavaScript简介
2021-05-09
设计模式学习笔记(二十三:解释器模式)
2021-05-09
算法笔记_069:Floyd算法简单介绍(Java)
2021-05-09