0042算法笔记——【随机化算法】计算π值和计算定积分.docx

0042算法笔记——【随机化算法】计算π值和计算定积分.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. 1、计算 π值 问题描述 设有一半径为 r 的圆及其外切四边形。向该正方形随机地投掷 n 个 点。设落入圆内的点数为 k。由于所投入的点在正方形上均匀分布,因 而所投入的点落入圆内的概率为 。所以当 n 足够大时, k 与 n 之比就逼近这一概率。从而 。 程序具体代码如下: [cpp] view plain copy 1. // 随机化算法 用随机投点法计算 π值 2. #include stdafx.h 3. #include RandomNumber.h 4. #include iostream 5. using namespace std; 6. 7. double Darts( int n); 8. 9. int main() 10. { 11. int n1 = 100,n2 = 1000,n3 = 1000,n4 = 10000,n5 = 12. cout n1= n1 , π 1=Darts(n1)endl; 13. cout n2= n2 , π 2=Darts(n2)endl; 14. cout n3= n3 , π 3=Darts(n3)endl; 15. cout n4= n4 , π 4=Darts(n4)endl; ’. . 16. cout n5= n5 , π 5=Darts(n5)endl; 17. return 0; 18. } 19. 20. // 用随机投点法计算 π值 21. double Darts( int n) 22. { 23. 24. 25. 26. static RandomNumber dart; int k = 0; for ( int i=1; i=n; i++) 27. { 28. double x = dart.fRandom(); 29. double y = dart.fRandom(); 30. if ((x*x + y*y)=1) 31. { 32. k++; 33. } 34. } 35. 36. return 4*k/ double (n); 37. } 程序运行结果如图: 2、计算定积分 例:设 f(x)=x^2, 求 解: 1) 随机投点法计算定积分 ’. . 基本思想是在矩形区域上 随机均匀的投点实现 。本算法的基本思想是在 积分区间上随机均匀的产生点 , 即在[a,b]上随机均匀的取点 , 求出由这 些点产生的函数值的 算术平均值 , 再乘以区间宽度 , 即可解出定积分得近似解 。 算法具体代码如下: [cpp] view plain copy 1. // 随机化算法 用随机投点法计算定积分 2. #include stdafx.h 3. #include RandomNumber.h 4. #include iostream 5. using namespace std; 6. 7. double Darts( int n, double a, double b); 8. double f( double x); 9. 10. int main() 11. { 12. int n1 = 100,n2 = 1000,n3 = 1000,n4 = 10000,n5 = 13. double a = 2.0,b = 3.0; 14. cout n1= n1 ,r1= Darts(n1,a,b)endl; 15. cout n2= n2 ,r2=

文档评论(0)

文档查询,农业合作 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体土默特左旗农特农机经销部
IP属地内蒙古
统一社会信用代码/组织机构代码
92150121MA0R6LAH4P

1亿VIP精品文档

相关文档