资源简介 (共24张PPT)如何用Python语言编写计算点在圆内的概率?用计算机计算圆周率--设计简单数值数据算法(第二课时)设计算法实现用随机投点法计算项目七项目学习目标02.探究和理解程序的选择结构和循环结构01.掌握数值数据的常用运算设计算法实现用随机投点法计算圆周率随机投点法是通过在正方形内随机投点,用随机模拟的方法来估算圆周率。请尝试用Python语言,来计算圆周率。程序设计的一般过程1.分析问题2.设计算法3.编写程序4.运行调试设计算法实现用随机投点法计算圆周率1.分析问题(数学思路)设落在圆形内的豆子数为hits,总豆子数为darts,则:单位圆面积为π,并且内切边长2的正方形,,落到圆里的概率乘以4就是π的值设计算法实现用随机投点法计算圆周率1.分析问题(分析)随便投一个点,这个记为(x,y)落在圆内,则到圆心的距离x^2+y^2<1例如投点10000次,落入圆内次数hits,π的值为hits/10000*4以圆心为原点,建立二维坐标系:任务一:小组活动数学思维分析随机投点法判断思路设计算法实现用随机投点法计算圆周率1.分析问题(计算机角度)①确定总的投点数darts。②在边长为1的正方形中投点,并判断这个点是否在扇形区域内,如果是,则扇形区域的投点数hits增加1。(每个投点的x坐标和y坐标都是[0,1)中的随机数;若x*x+y*y<1,则判断该点投在扇形区域内。)③在所有点投完后,计算圆周率的近似值π。pi≈4*使用计算机模拟随机投豆(也就是投点)的整个过程这里涉及的数据变量有:总的投点数 darts,每个点的坐标值x、y,扇形区域的投点数hits,圆周率的近似值pi。设计算法实现用随机投点法计算2.设计算法(描述方法:自然语言,流程图,伪代码)算法中哪几步在重复执行?思考设计算法实现用随机投点法计算2.设计算法(描述方法:自然语言,流程图,伪代码)流程图描述开始令hits=0,i=0输入总的投点数darts获取x,y的随机值ii=i+1计算圆周率的近似值输出圆周率的近似值结束是是否否hits=hits+1x^2+y^2<1自然语言描述任务二:根据自然语言描述,补全流程图设计算法实现用随机投点法计算3.编写计算圆周率程序开始令hits=0,i=0输入总的投点数darts获取x,y的随机值ii=i+1计算圆周率的近似值输出圆周率的近似值结束是是否否hits=hits+1x^2+y^2<1from random import randomdarts=int(input('请输入总的投点数:'))hits=0for i in range(darts):x,y=random(),random()if( ):pi=4*(hits/darts)print('pi的值是',pi)x*x+y*y<=1hits=hits+1任务四:个人活动,根据流程图,补全程序#调用随机函数设计算法实现用随机投点法计算hits=hits+1x^2+y^2<11.关系运算符条件表达式程序中表示判断条件的式子称为条件表达式,它由关系运算或逻辑运算构成,执行的结果为布尔值True或 False.Python运算符 数学符号 名称 示例(dist=0.87) 结果< < 小于 dist<1 True<= ≤ 小于等于 dist<=1 True> > 大于 dist>1 False>= ≥ 大于等于 dist>=1 False== = 等于 dist==1 False!= ≠ 不等于 dist!=1 Truex^2+y^2<1例如:判断一个数X是否为100到200之间的一个数。条件表达式为:100<=x<=200也可以写成x<=200and100<=x设计算法实现用随机投点法计算常用的逻辑运算符包括与(and)或(or)、非(not)。这三种运算符的运算顺序是先not,再and,最后or,但可以使用括号来调整运算的先后顺序。例如:判断一个学生是否为体重(weight)大于50千克或者身高(height)小于155厘米的女生(gender:female),条件表达式可写为:(gender==“female”)and(weight>50 or height<155)例如:判断一个学生是否为体重(weight)大于50千克并且身高(height)大于160厘米的女生(gender:female),条件表达式可写为:(gender==“female”)and weight>50 and height<155逻辑运算符Python的基本控制结构■ 选择结构在解决问题的过程中,常常需要对事物进行判断和选择,在程序设计中主要是用if语句来实现判断和选择,if语句包括单分支if语句和双分支if语句、多分支if语句■ 循环结构计数循环(for循环)和条件循环(while循环)复习上一节的命令:循环for的一般格式:for <循环变量> in <序列>:<循环体>while的一般格式:while (条件表达式):<循环体>Python的基本控制结构■ 选择结构在解决问题的过程中,常常需要对事物进行判断和选择,在程序设计中主要是用if语句来实现判断和选择,if语句包括单分支if语句和双分支if语句、多分支if语句条件语句块1否是条件语句块1语句块2是否单分支双分支多分支新命令:选择指令if 的一般格式:单分支if语句的格式:if 条件表达式:语句块1注意:冒号:不能丢,关键字所形成的的包含关系Python的基本控制结构例如,求x的绝对值的语句如下:if x<0:X=-Xif x>0:x=xPython的基本控制结构双分支if语句的格式:if 条件表达式:语句块1else:语句块2例如:给定整数x判断奇偶。x = int(input("请输入整数x:"))if x % 2 == 0:print("x为偶数")else:print("x为奇数")Python的基本控制结构多分支if语句的格式:if 条件表达式1:语句块1elif条件表达式2:语句块2……else:语句块n例如:编写程序,输入身高和体重,计算身体的质量指数BMI值,并给出健康信息。这个问题可以用两种分支结构来实现,语句分别如下。Python的基本控制结构多分支if语句的格式:if 条件表达式1:语句块1elif条件表达式2:语句块2……else:语句块n例如:编写程序,输入身高和体重,计算身体的质量指数BMI值,并给出健康信息。这个问题可以用两种分支结构来实现,语句分别如下。。height=eval(input(“请输入身高(米):”))weight=eval(input(“请输入体重(千克):”))bmi=weight/pow(height,2)print(“BMI 数值为:%.2f”%bmi)If bmi<18.5:#<18.5print(“BMI指标为:偏瘦”)elif bmi<25:# 18.5<= bmi <25print(“BMI指标为:正常”)elif bmi<30:# 25<= bmi <30print(“BMI指标为:偏胖”)else:print(“BMI指标为:肥胖”)任务三:小组活动,组内分工合作写出两种Python的基本控制结构例如:编写程序,输入身高和体重,计算身体的质量指数BMI值,并给出健康信息。这个问题可以用两种分支结构来实现,语句分别如下。。height=eval(input(“请输入身高(米):”))weight=eval(input(“请输入体重(千克):”))bmi=weight/pow(height,2)print(“BMI 数值为:%.2f”%bmi)if bmi<18.5:#<18.5print(“BMI指标为:偏瘦”)if 18.5<=bmi<25:# 18.5<= bmi <25print(“BMI指标为:正常”)if 25<=bmi<30:# 25<= bmi <30print(“BMI指标为:偏胖”)if bmi>=30 :print(“BMI指标为:肥胖”)执行字符串表达式,并返回表达式的值设计算法实现用随机投点法计算4.运行调试计算圆周率程序在 Python 中创建并运行程序,检查运行结果。可以发现,当总投点数为1000时,pi值的精确度还是很低的。通过增加总投点数,可以提高pi值的精确度。1.分别输入1000、5000、10000,得到圆周率的近似值分别可以精确到第几位?2.多次输入同样的总投点数1000,会得到不同的结果,这是为什么?如何减少这种不确定性?总结设计算法实现用随机投点法计算1.条件表达式关系运算符 逻辑运算符2.选择结构语句(3种基本形式)总结请给自己评价 是/否,几颗星能写出程序中的表达式吗理解选择结构命令吗只给题意要求能自己独立写程序吗自我评价单作业练一练:活动7.2对比两种计算圆周率的算法。填写表格3-5from random import randomfrom time import clockdarts=int(input('请输入总的投点数:'))clock()hits=0for i in range(darts):x,y=random(),random()if(x*x+y*y<=1):hits=hits+1pi=4*(hits/darts)print('pi的值是', pi)print("运行时间是:", clock(), '秒')from math import sqrtfrom time import clocklimit=float(input('输入精确度:'))clock()i=1s=0item=1while item>=limit:s=s+itemi=i+1item=1/(i*i)pi=sqrt(6*s)print("pi的值是:",pi)print("运行时间是:",clock(),'秒')下课 展开更多...... 收起↑ 资源预览