概述
今日学习内容
1.跟随视频课程,学习了Python分支结构、循环结构、异常处理等语法内容
2.掌握并了解Python基本库中的random库随机函数的用法
3.根据所学内容应用并求解圆周率,我使用了两种方法来计算圆周率,分别是近似公式法和蒙特卡罗法
(1)近似公式法
公式:
源代码:
#CalPi.py
Pi = 0
N = 10000
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))
(2)蒙特卡罗法:
基本思想:百度百科
源代码:
#CalPi2.py
import random
import time
Darts = 1000*1000
inside = 0.0
start = time.perf_counter()
for i in range(1, Darts + 1):
x, y = random.random(), random.random()
distance = pow(x ** 2 + y ** 2, 0.5)
if distance <= 1.0:
inside += 1
Pi = 4 * (inside / Darts)
print("圆周率约是:{}".format(Pi))
print("运算时间是:{:.5f}s".format(time.perf_counter() - start))
总结:经过两种方法的比较,近似公式法求解圆周率速度较快,但当小数点后的位数更大时,数据不够精准。蒙特卡罗方法相反,运行时间较长,但当小数点后位数足够大时,其计算出的数值更加准确。本例中所有散点的规模为1000*1000,也就是一百万,远远不能够体现蒙特卡罗方法的准确性,需要更多的散点数量及更好的算法设计来体现。
注:本文是博主本人学习的日常记录,不进行任何商用所以不支持转载请理解!如果你也对Python有一定的兴趣和理解,欢迎随时找博主交流~
最后
以上就是瘦瘦超短裙为你收集整理的我的Python学习之路(4)今日学习内容的全部内容,希望文章能够帮你解决我的Python学习之路(4)今日学习内容所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复