Scratch两方法计算圆周率

来源 :电脑报 | 被引量 : 0次 | 上传用户:WANGYUEWANG
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  之前《电脑报》刊登了一篇用VB计算圆周率π值的文章。使用了π/4=1-1/3+1/5+…+1/i,计算π的近似值,i值越大精度越高。这种算法由于不够直观,其实不太容易理解。我另外选了两种计算π的算法:蒙特卡罗方法和直接测量法,并用Scratch编程来計算圆周率,这样小朋友都能很容易理解圆周率的定义和计算了。

一、 蒙特卡罗方法


  蒙特卡罗方法(Monte Carlo,简称MC)是冯·诺依曼等人提出的统计模拟方法,蒙特卡罗这个名字来源于赌场,表示这种算法的不确定性原理与赌博类似。
  假设有一个边长为1的正方形区域,有一个圆和这个正方形内切。我们知道正方形面积是边长a的平方,圆形面积是π乘以半径R的平方。由于是内切圆所以正方形边长等于2R,圆形和正方形面积的比值k等于π/4。



  如果能够知道k的值,就能得到π=4k,这就是估算圆周率的核心思想。



  现在我们向矩形范围内随机画点,任何位置被选中的概率都是相等的,图中共投了1000个点,经过统计落在圆内的点为787个,由于投点是随机的,所以可以近似认为圆形和矩形的面积比k等于点数比,即k=787/1000=0.787,所以圆周率π=4k=4x0.787=3.148,至此圆周率π的估算已经完成。
  新建角色“圆心”和“笔”,“圆心”就在(0,0)画一个点,“笔”隐藏显示。
  在程序中我们设置了3个变量,“pi”存储π值、“总投放点数”设置总数、“落在范围内的点”记录在圆内的点。
  调用画笔扩展,重复执行“总投放点数”次。在XY坐标-90到90之间的方形区域随机画点。
  判断如果随机画的这个点到角色“圆心”的距离大于90不成立。即表示这个点在圆的范围内(含圆的边)。将“落在范围内的点”加1。
  循环完毕,用“落在范围内的点”除以“总投放点数”就获得面积比k,乘以4就得到π值了。运行时请打开加速模式,不然会运算到天荒地老。



  蒙特卡罗方法是一种依赖于重复性随机采样,进而获得数值解的建模方法。对于复杂曲线积分这种很难通过理论求解的情况,可以通过蒙特卡罗方法获得一个近似解。我们用Scratch编程后多次运行就可发现,算出的π值偏差比较大,而提高“总投放点数”并不能很好地提升计算精度,这应该是由于计算机产生的随机数是伪随机数造成的。

二、 直接测量法


  我们知道π的定义是圆的周长与直径的比值。
  我们用Scratch画出半个边数超多(100000条边)的多边形。这个多边形由于每条边都很短,可以认为近似是一个圆,这个半圆的终点到起点间的距离就是圆的直径。边长乘以边数就是这个圆的周长。两者相除就可以算出π的值了。
  新建角色“起点”,在造型中背景放到最大后在中心点一个小点。移动到(0,-160)作为起点位置。
  对小猫编程。
  设置“pi”记录计算结果,通过控制“边长”(0.01)、“边数”(100000)的大小控制近似圆形的大小,提高计算π值的精度,边数越多π的精度应该越高。



  移动到(0,-160)的起点位置,面向90度方向,重复执行边数除以2次,因为我们只需要画一个半圆用来测量直径。画正多边形的方法《电脑报》以前已经介绍过就是移动“边长”步,左转360除以“边数”度。这样画出的半圆形终点到角色“起点”之间的距离就是圆的直径。
  边长乘以边数就是圆的近似周长。
  将“pi”设为“边长”*“边数”/到“起点”的距离。



  要想看到最精确的计算结果,有一个小技巧,要点击单独放在代码区的变量“pi”才行。计算结果为3.141592653072866与我们已知的π值相当接近,说明这个方法计算结果相当精确。
  这个方法的思维方法最为直接,就是测量出圆的周长和直径直接相除就可以得到π值。但是对于古人来说周长和直径都很难精确测量,所以才有那么多数学家想方设法去提高π的计算精度,但是对于程序来说这个直接的方法却意外的容易和精确。
  我们程序中设定的边长和边数数值只是个经验数值,只是因为画出来的半圆大小比较合适。其实只要多边形边数超过100条边时π值的精度就已经达到3.141了,比蒙特卡罗方法效果好得多,随着边数的提高计算精度稳步提升,而且边长对于π计算结果影响不大,只是影响视觉效果而已。
其他文献
相信大家都经历过失眠的痛苦,特别是像二哥这样躺在床上刷着抖音或者电视剧,越看越兴奋,半夜两三点可能才会感到疲惫入睡,睡眠质量也大大降低了,白天更是无精打采。为了恢复正常的生物钟,二哥通过用这款无线小音箱听舒缓的音乐和FM电台,帮助我脱离了失眠的魔爪。  长期失眠,睡眠质量差怎么办?  这次导致二哥失眠的罪魁祸首就是“手机”,想必很多人跟我一样,睡前三部曲:躺下—盖被子—玩手机,越玩越兴奋,不知不觉
期刊
虽说内裤不是穿给别人看的,但是男士内裤的选择还是要讲究一下的,毕竟这么贴身的衣物,穿得不舒服真的会难受一整天的!这次师姐也很严肃正经,不开车哈。打个广告,想入手其他好物的小可爱记得加师姐微信(微信号:yhmd0808)哦,同步更新福利群和朋友圈哈。平角裤搭配莫代尔面料,绝杀  为了做这期文章,师姐还专门去找了相关资料,我真是太敬业啦!  男士内裤分为三角裤、平角裤和高叉裤。高叉裤通常是为了照顾大腿
期刊
前段时间,山东连续爆出多起冒名顶替上大学的问题。都说高考是改变人生的独木桥,2020年的高考分数即将公布,接下来就是填报志愿这一影响人生的重要事件。无论是应届生还是已经毕业多年的人们,自己的学籍管理都是非常重要的事情。那么,自己是否有被顶替录取的情况?这些顶替者在哪里工作?其实都是可以查到的。教育部唯一认可的学信网  先要给大家科普一件事:教育部反复强调过,“中国高等教育学生信息网”是我国高等教育
期刊
说到日料,很多人想到的就是生鱼片和寿司,其实不然,鳗鱼可是日本料理中不可或缺的主角。日本人几乎没有不喜欢吃鳗鱼的,而且他们居然还造出了个专门吃鳗鱼的鳗鱼日。如果有跟师姐一样喜欢吃鳗鱼的话,你一定要看完这篇文章。  5分钟,吃到一份地道日式蒲烧鳗鱼  鳗鱼本身的营养价值很高,含有大量的维生素A、维生素E、胶原蛋白、蛋白质、DHA和EPA,被称为“水中黄金”。但吸引师姐的还是它的味道,特别是经过酱汁的
期刊
摘要:目的:探讨观察2型糖尿病应用参藤三黄汤治疗的临床疗效及其安全性。方法:将我院收治的2型糖尿病患者60例按照随机数字表法分为观察组(在格列吡嗪治疗基础上配合参藤三黄汤加减治疗)和对照组(单独给予格列吡嗪治疗),将两组患者的临床疗效、治疗前后空腹血糖值(FPG)、餐后2h血糖值(2hPG)等血糖指标水平以及甘油三酯(TG)、总胆固醇(TC)、高密度脂蛋白胆固醇(HDL-C)等血脂指标水平变化情况
期刊
初学摄影的人都是先从光圈、快门和感光度入手,之后慢慢学习构图技巧以及不同摄影器材的认识。如果要学人像摄影,还要学会如何跟模特儿沟通,捕捉最美丽的一瞬间以及如何指导模特儿摆出不同Pose等等。其实笔者觉得拍人是最难的,因为女孩子爱美没错,但是要坚持拍几个小时,体力也很吃不消,所以对于摄影师而言,最好是准备成熟的方案,找好环境,不要临时抱佛脚。每一个技巧其实都需要很多时间和经验去磨炼。  无论是利用自
期刊
第三季度开端,A股就洋溢着“牛市”的味道。  尽管从技术面来看,并不能百分之百肯定当下就是牛市,但沪深两市A股总市值已超过上轮牛市顶峰的水平却是不争的事实。  换而言之,A股具备了“牛市”部分特征。特征1:成交量连续超万亿元  量为价先,这是A股资本市场的经典法则,其含义是一旦成交量持续放大,未来就会有一波行情。  这段时间,A股成交量连续超万亿元,最高超过1.73万亿元,这个水平已接近2015年
期刊
摘要:目的:分析我院处方药物各剂型组成比例,为研发适合儿童使用的药物剂型提供依据。方法:统计我院2010年—2013年几类常见药物剂型各种数量,分析剂型与儿童用药的相关性。结果:儿童专科医院会针对儿童的生理特点进行药物剂型的选择应用,其中液体制剂和易溶于水的固体制剂的种类有明显增长。结论:由于儿童这一特殊人群用药的特殊性,除药物本身治疗效果外,还应同时考虑所选剂型的科学性与合理性。  关键词:剂型
期刊
最近在和读者聊二手配机的时候发现,很多用户在为老电脑升级购买内存时,只看重了内存的容量,并没有太在意它的规格参数,甚至连品牌都没有太在意,一味追求便宜的价格,因此有时就会出现新内存和老内存无法兼容的问题。  通常新买的内存规格参数都会比原来的老内存高一些,例如老内存规格为宇瞻DDR3 1333 2GB,延迟时序CL=9,而新买的内存为杂牌DDR3 1600 2GB,CL=7。在目前的主流主板BIO
期刊
摘要:目的:探究对初治肺结核合并肺炎患者应用莫西沙星治疗的临床效果。方法:随机抽取本院2010年1月-2013年1月收治采取莫西沙星方案治疗的肺结核合并肺炎患者40例,对其临床资料以回顾性的方法进行分析,归纳患者接受治疗前后各项临床指标的变化。结果:本次研究患者临床治疗总有效率为82.5%;相对于接受治疗前,治疗后患者白细胞指数、红细胞沉降率、C反应蛋白均有明显改善,对比存在统计学价值(P0.05
期刊