算法设计与分析 课件 9.4-概率算法 - 蒙特卡罗算法.pptx

算法设计与分析 课件 9.4-概率算法 - 蒙特卡罗算法.pptx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

算法设计与分析概率算法-蒙特卡罗信息工程大学国家级实验教学示范中心计算机学科组规划教材算法设计与分析Python案例详解微课视频版

思政:国防--催生新技术的源动力“曼哈顿计划”摩纳哥蒙特卡罗冯·诺伊曼

目标: 求问题的准确解特征:求得的解不一定正确,且无法判定所得解是否肯定正确。设p是0.5到1间的实数。若算法得到正确解的概率不小于p,则称该蒙特卡罗算法是p正确的,且p-1/2是该算法的优势。求得正确解的概率依赖于算法所用时间,时间越多,得到正确解的概率越高此外,若对于同一问题,蒙特卡罗算法不会给出不同的正确解答,则称该蒙特卡罗算法是一致的。

应用:数值问题求解 求近似解 近似解精度随计算时间的增加而不断提高。例1:计算?值随机投点法半径为r的圆的外切四边形内投点?

defdarts(n):k=0foriinrange(1,n+1):x=random()#在[0,1)内随机选择一个数作为xy=random()#在[0,1)内随机选择一个数作为yifx**2+y**2=1:k+=1return4*k/n例1:计算?值测试判断题:针对计算Pi值的蒙特卡罗算法实现代码,当n=1000时,独立运行两次程序,会得到一样的结果。A:正确 B:错误

例2:计算定积分设f(x)是[0,1]上的连续函数,且0?f(x)?1。需要计算的积分为。假设向单位正方形内随机地投入n个点(xi,yi)。如果有m个点落入积分区域内,则

defdarts(n):k=0foriinrange(1,n+1):x=random()#在[0,1)内随机选择一个数作为xy=random()#在[0,1)内随机选择一个数作为yify=f(x):k+=1returnk/n例2:计算定积分

例3:主元素问题设数组T[1:n]含有n个元素。当|{i|T[i]=x}|n/2时,称元素x是数组T的主元素。defmajority(t):n=len(t)-1i=randint(1,n)x=t[i]#随机选择数组元素k=0forjinrange(1,n+1):ift[j]==x:k+=1returnkn/2#kn/2时t含有主元素返回true时,一定含有主元素,但返回false时,数组未必不含主元素

重复调用主元素蒙特卡罗算法boolmajority2(int[]t,intn){if(majority(t,n))returntrue;elsereturnmajority(t,n);}设p是算法返回true的概率,则算法可将错误率降低到(1-p)2(1/2)2=1/4。对于任何的?0,重复调用算法?log(1/?)?次,可使错误概率小于?。

测试判断题:蒙特卡罗算法随着执行次数的增多,获得正确解的概率越高A:正确B:错误

您可能关注的文档

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档