1、11 随机数随机数 程序设计基础 2 home back first prev next last 本节目标本节目标 随机数及其应用随机数及其应用 蒙特卡罗法应用蒙特卡罗法应用 3 home back first prev next last 随机数随机数 随机数是专门的随机试验的结果,其重要的特性随机数是专门的随机试验的结果,其重要的特性 是:它所产生的后面的那个数与前面的那个数毫是:它所产生的后面的那个数与前面的那个数毫 无关系无关系 例如,掷硬币,用例如,掷硬币,用0和和1代表反、正面,可得到一个由代表反、正面,可得到一个由0、 1组成的随机数列组成的随机数列 产生随机数有多种不同的方法
2、,这些方法被称为产生随机数有多种不同的方法,这些方法被称为 随机数发生器随机数发生器 真正的随机数是使用物理现象产生的:比如掷钱币、骰真正的随机数是使用物理现象产生的:比如掷钱币、骰 子、转轮、使用电子元件的噪音、核裂变等等。这样的子、转轮、使用电子元件的噪音、核裂变等等。这样的 随机数发生器叫做物理性随机数发生器,它们的缺点是随机数发生器叫做物理性随机数发生器,它们的缺点是 技术要求比较高技术要求比较高 4 home back first prev next last 伪随机数伪随机数 在实际应用中往往使用伪随机数就足够了。在实际应用中往往使用伪随机数就足够了。 这些数列是“似乎”随机的数,
3、实际上它们这些数列是“似乎”随机的数,实际上它们 是通过一个固定的、可以重复的计算方法产是通过一个固定的、可以重复的计算方法产 生的。计算机或计算器产生的随机数有很长生的。计算机或计算器产生的随机数有很长 的周期性。它们不真正地随机,因为它们实的周期性。它们不真正地随机,因为它们实 际上是可以计算出来的,但是它们具有类似际上是可以计算出来的,但是它们具有类似 于随机数的统计特征。这样的发生器叫做伪于随机数的统计特征。这样的发生器叫做伪 随机数发生器。随机数发生器。 5 home back first prev next last 随机数在编程中的应用随机数在编程中的应用 随机数在编程中的应用非
4、常广泛,例如随机数在编程中的应用非常广泛,例如 游戏中,角色出现的位置和移动的方式游戏中,角色出现的位置和移动的方式 科学计算和实验模拟,等等科学计算和实验模拟,等等 6 home back first prev next last 猜数字游戏猜数字游戏 2-1 随机生成一个数字,由玩家来猜。如果猜错,随机生成一个数字,由玩家来猜。如果猜错, 提示猜大了或猜小了。如果猜对了,记录猜提示猜大了或猜小了。如果猜对了,记录猜 测的次数,游戏结束。测的次数,游戏结束。 7 home back first prev next last 猜数字游戏猜数字游戏 2-2 8 home back first p
5、rev next last 求解圆周率求解圆周率 4-1 蒙特卡罗(蒙特卡罗(Monte Carlo)算法计算圆周率的)算法计算圆周率的 主要思想:主要思想: 给定边长为给定边长为R的正方形,画其内切圆,然后在的正方形,画其内切圆,然后在 正方形内随机打点,设点落在圆内的概为正方形内随机打点,设点落在圆内的概为P,则,则 根据概率学原理:根据概率学原理: P = 圆面积圆面积 / 正方形面积正方形面积 PI * R * R / 2R * 2R = PI / 4。 即即 PI=4P。这样,当随机打点足够多时,统计出来。这样,当随机打点足够多时,统计出来 的概率就非常接近于的概率就非常接近于PI的
6、四分之一了的四分之一了 9 home back first prev next last 求解圆周率求解圆周率 4-2 10 home back first prev next last 求解圆周率求解圆周率 4-3 由于由于 Scratch 本身的原因,上面程序运行需本身的原因,上面程序运行需 要一段比较长的时间,而且圆周率计算的精要一段比较长的时间,而且圆周率计算的精 度较低,大概为度较低,大概为3.1左右。将来采取更专业左右。将来采取更专业 的编程语言如的编程语言如C语言、语言、Java语言或语言或C#,会计,会计 算的更快更准。算的更快更准。 11 home back first pr
7、ev next last 求解圆周率求解圆周率 4-4 为了说明蒙特卡罗法计算圆周率的原理,下面在上面的计为了说明蒙特卡罗法计算圆周率的原理,下面在上面的计 算代码中加入了动画演示。算代码中加入了动画演示。 在边长为在边长为100的正方形内,随机生成一个点的坐标的正方形内,随机生成一个点的坐标 (x,y),如,如 果点到原点果点到原点(0,0)的距离不大于的距离不大于100,说明,这个点在以原点,说明,这个点在以原点 (0,0)为圆心,半径为为圆心,半径为100的四分之一圆内。下面程序中将角的四分之一圆内。下面程序中将角 色色1修改为只有一个像素的红点,利用图章功能在点修改为只有一个像素的红点
8、,利用图章功能在点(x,y)画画 一个红点。一个红点。 12 home back first prev next last 练习练习 2-1 编程求解如右图所示不规则形状红色区域的近似面积编程求解如右图所示不规则形状红色区域的近似面积 提示提示 将图片作为角色导入将图片作为角色导入Scratch 绘制一边长已知的正方形包含红色图形区域绘制一边长已知的正方形包含红色图形区域 随机生成正方形内的点,统计与红色区域碰撞的点数随机生成正方形内的点,统计与红色区域碰撞的点数 计算正方形面积,点与红色区域碰撞的概率,以此求得红色图形计算正方形面积,点与红色区域碰撞的概率,以此求得红色图形 区域面积区域面积 13 home back first prev next last 练习练习 2-2 14 home back first prev next last 总结总结 随机数及其应用随机数及其应用 蒙特卡罗法应用蒙特卡罗法应用
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。