Scratch蒙特拉罗法计算圆周率
一、作品主题:
蒙特卡罗方法也称统计模拟方法,是一种以概率统计理论为指导的一类非常重要的数值计算方法。它使用随机数(或伪随机数)来解决很多计算问题的方法。
蒙特卡罗方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯•诺伊曼首先提出。数学家冯•诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,象征概率。
蒙特卡洛方法的理论基础是大数定律。大数定律是描述相当多次数重复试验的结果的定律,根据这个定律知道样本数量越多,其平均就越趋近于真实值。
这种计算方法非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法
二、编程思维与技巧:
在蒙特卡洛的应用中,最经典的就是利用蒙特卡洛算法求圆周率。设圆面积为 ,那么正方形面积为 。因为树叶是随机飘落的,所以落在圆内的树叶数量与落在整个正方形中的树叶数量之比等于它们的面积比,即数量比= 。因此,通过数数,就能反过来计算 的值了。
作品通过scratch产生随机数,模拟了树叶随机飘落到一个正方形及其内切圆中,通过计算圆内的叶片数量和正方形中的数量,用蒙特卡罗法计算圆周率。
因为蒙特拉罗法计算圆周率的原理,需要非常多的点以上才能产生比较精确的结果。维基百科说,使用蒙特卡罗方法估算π值,放置30000个随机点后,π的估算值与真实值相差0.07%。因为scratch能够克隆的角色有限,同时也为了美观,本软件没有产生那么多个点,因此计算的圆周率没那么准确。但是本软件完全实现了蒙特卡罗法,而且编程技巧,解决了落在边缘的叶片的归属难点,在数学模型上完全合格。
成会本站会员后可查看到下载网址:
需要成为会员请加微信scratch8
Read more
You must log in to read the rest of this article. Please log in or register as a user.
风火轮创意编程商城 » Scratch蒙特卡洛算pai圆周率动画