计算圆周率π近似值
Caption
Caption
Caption Picture
属性值
计算π的近似值
空串 蓝色 空串 黄色
说明
说明程序的功能
输出计算的结果(π 的近似值)
输入各个电阻的阻值 (每次输入一个)
计算
说明命令按钮的作用
输入项数n:
说明文本框Text1的作 用
计算π的近似值
说明文本框Text2的作 用
pi.jpg
或外切正多边形来近似代替圆,得到近似圆周率。 到了公元5世纪,我国杰出的数学家和天文学家祖 冲之在刘徽“割圆术”的基础上,使用更加精密的 方法,精确到小数点后七位,求出结果在 3.1415926~3.1415927间,这个的圆周率,在当时 是非常了不起的成就。直到16世纪,才由中亚人计 算出精确度为小数16位。随着计算机的出现,π的 计算取得了新的突破。利用计算机技术将π值计算 到小数点后20多亿位,甚至到上千亿位。
在设计解析算法时,必须注意保证计算 过程描述的正确性。
第2页/共27页
授课人:杨鹏
问题提出
高中信息技术必修2:算法与程序设计
圆周率π=3.1415926……有无穷多位,历史
上 有很多科学家计算过这个数,古希腊学者阿基 米德、我国杰出的数学家和天文学家祖冲之等,都 提出许多求解的方法。
公元前3世纪,古希腊学者阿基米德用圆内接
第11页/共27页
授课人:杨鹏
课堂练习
高中信息技术必修2:算法与程序设计
1.使用蒙特卡洛法求π的近似值。
利用求单位正方形与内接圆 பைடு நூலகம்积的比例关系来求得π的近似 值 。单位圆的1/4面积是一个扇
蒙特卡洛(Monte
Carlo)方法,或称计算 机随机模拟方法,是一
形,它是边长为1单位正方形的 种基于“随机数”的计
第4页/共27页
授课人:杨鹏
实践活动
用级数公式 , 计算圆周率π的近似值。
高中信息技术必修2:算法与程序设计
第5页/共27页
授课人:杨鹏
高中信息技术必修2:算法与程序设计
1.算法分析
按照级数公式,S
由若干项 求和得到,第1
项为 a1 1
2
,第2项为
a2
1 3
,第3项为
a3
1 3
2 5
,第4项为
第9页/共27页
显示图片pi.jpg(级数公式)
授课人:杨鹏
4.分析算法流程,编写代码 高中信息技术必修2:算法与程序设计
Private Sub Command1_Click()
Dim Pi As Double, an As Double
Dim m, n As Integer
n = Val(Text1.Text)
a4
1 3
2 3 , 57
分析可
n 1 得第n项为an与前一项an-1的关系是 an an1 2n 1 。
第6页/共27页
授课人:杨鹏
2.算法流程图:
变量n: 输入计算的项数 变量pi: 计算的结果 变量an: 第n项的值
高中信息技术必修2:算法与程序设计
第7页/共27页
授课人:杨鹏
3.程序界面设计:
一部分。 如果能求出扇形面积 s1在正方形面积s中占的比例 k=s1/s,它的值也等于π/4,从 而就计算得到π的值。
算方法。这一方法源于 美国在第二次世界大战 时研制原子弹的“曼哈
怎样求出扇形面积在正方形 顿计划”。该计划的主
面积中占的比例k呢?蒙特卡洛 法是在正方形中随机投入很多点, 使所投的点落在正方形中每一个 位置的机会相等。有些点将落在
第13页/共27页
授课人:杨鹏
1)参考程序代码:
高中信息技术必修2:算法与程序设计
Private Sub Command1_Click()
Dim Pi As Double, x As Double, y As Double
Dim m As Long, n As Long
Randomize Timer
'随机数初始化
n = Val(Text1.Text)
'读入投放次数n
If n = 0 Then
MsgBox "请输入投放次数n"
Exit Sub
End If
m=0
For I = 1 To n
x = Rnd()
y = Rnd()
If x ^ 2 + y ^ 2 <= 1 Then m = m + 1
高中信息技术必修2:算法与程序设计
1.用迭代法
求π的近似值。 2.用蒙特卡洛法求π的值。
3.设计一个算法计算1900
年1月1日之后的任何一
天是星期几?用VB程序 实现这一算法。
第1页/共27页
授课人:杨鹏
复习引入
高中信息技术必修2:算法与程序设计
解析算法基本思想:
用解析的方法找出表示问题的前提条件 与所求结果之间关系的数学表达式,并通过 表达式的计算来实现问题求解。
持人之一、数学家冯·诺 伊曼用驰名世界的赌
城—摩纳哥的Monte
扇形内,而另一些点将会落在扇 Carlo—来命名这种方法,
形外,落在扇形内的点数m与所 投点的总数n之间比m/n即为k的 近似值。
为它蒙上了一层神秘色 彩。
第12页/共27页
授课人:杨鹏
高中信息技术必修2:算法与程序设计
使用随机函数Rnd随机产生两个小数x、y,可构成一个坐 标点(x,y),判断是否落在扇形内的充要条件是x2+y2<=1, 总计投放n次,根据条件判断统计得到落在扇形内的次数m, 再根据两者的比例m/n,求得π=4*m/n的近似值。
高中信息技术必修2:算法与程序设计
第8页/共27页
授课人:杨鹏
控件属性值的设置参考如下表: 高中信息技术必修2:算法与程序设计
对象名 Form1 Text2
Text1 Command
1 Label1
Label2 Image1
属性名 Caption
Text
BackColor
Text
BackColor
第3页/共27页
授课人:杨鹏
高中信息技术必修2:算法与程序设计
古今中外的数学家们计算π的近似值主要有三类方法: 1.利用“正多边形逼近”的方法。 2.使用迭代法。可利用下列式子计算π。
3.使用蒙特卡洛法(Monte-Carlo method)。蒙特卡 洛法是使用随机模拟实验结果进行统计来求得π的 近似值的方法。
Pi = 1
an = 1
For m = 2 To n
an = an * (m - 1) / (2 * m - 1) '计算第n项的值
Pi = Pi + an
'进行累加
Next
Text2.Text = Str(Pi * 2)
End Sub
第10页/共27页
授课人:杨鹏
5.运行调试程序;
高中信息技术必修2:算法与程序设计