内容正文:
项目七:设计简单数值数据算法
(第5课时 综合应用)
活动一:利用.欧拉公式计算圆周率
1. 通过欧拉公式公式我们可以计算得知:π= 。
2. 打开“E:\必修1\项目七-第五课时\高一*班\欧拉.py”在计算1-1000所有整数和的程序基础上,逐步更改得到利用欧拉公式计算圆周率的程序:
第一步:适当更改程序使其可以实现12+22+……100002
第二步:继续在上面程序的基础上更改,使其可以实现1/12+1/22+……1/100002
第三步:根据欧拉公式写出利用欧拉公式求圆周率的程序
提示:本部分需要用到求平方根函数sqrt(),使用此函数需要先引入math模块,由于本题只使用了math模块中的sqrt()函数,因此也可以用命令“from math import sqrt”单独导入math模块中的sqrt()函数。如果在某个程序中需要用到某个库或者某个库中的某个函数需要在程序一开始就导入库或者从库中导入函数,例如:利用数学库中的平方根函数计算输入数值的平方根。
1. 该程序可以实现计算( )项,在利用for语句写的程序中,更改哪个数值可以改变计算的项数?在利用while语句写的程序中,更改哪个数值可以改变计算的项数?
2. 更改相应的数值,使程序的计算项分别为100000、1000000、1000000、1000000000,并将运行的结果填写在下面的表格中
计算项数
10000
100000
1000000
10000000
pi的值
3. 通过上面的对比,你感受了什么,对算法的评价标准(正确性、可读性、高效性)有了什么新的理解?算法的评价标准:正确性、可读性、高效性。好的算法还应该具备时间效率高和存储量低的特点。时间效率是针对算法的执行时间而言的。存储量指的是算法在执行过程中需要占用的内存或外部硬盘存储空间。
活动二:利用投点法求解圆周率
解决同一个问题,可以使用不同的算法。下面我们一起来看如何利用投点法来计算圆周率。
第一步:理解投点法的算法(98-99页)
设落在扇形内的豆子数为hits,总豆子数为darts
第二步:打开“E:\必修1\项目七-第五课时\高一*班\投点法.py”删除程序中①②③,并在相应位置填入适当的语句,使改程序可以实现利用投点法计算圆周率。from random import random 从random库中导入random函数
random库提供的函数random(),可以随机产生一个[0,1]中的实数。
在shell窗口输入
多次执行random()函数,你得到的数值分别是多少?
1. 程序的结构包括顺序结构、分支结构、循环结构,这三种结构组合就可以实现所有的结构。本程序中使用了( )和( )的嵌套。
2. 多次运行该程序,记录输入投点数为100、10000、1000000、1000000000程序的运行结果。
投点数
100
10000
1000000
10000000
pi的值
5、 根据算法的评价标准说一说你认为公式求解和投点法求解哪个算法比较好?为什么?
学科网(北京)股份有限公司
$