在Java中怎么利用蒙特卡洛算法求圆周率

  介绍

在Java中怎么利用蒙特卡洛算法求圆周率?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1946年,美国拉斯阿莫斯国家实验室的三位科学家约翰·冯·诺依曼斯坦乌兰和尼克大都市共同发明,被称为蒙特卡洛方法。它的具体定义是:在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状,现在要计算这个不规则图形的面积,怎么计算列,# 63;蒙特卡洛(蒙特卡罗)方法告诉我们,均匀的向该正方形内撒N (N是一个很大的自然数)个黄豆,随后数数有多少个黄豆在这个不规则几何形状内部,比如说有M个,那么,这个奇怪形状的面积便近似于M/N, N越大,算出来的值便越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。(撒黄豆只是一个比喻)。

蒙特卡洛方法的伟大之处,在于对精确性问题无法解决的时候,利用“模拟”的思想来求解。在各个领域得以应用。本质是模拟(模拟):利用大量随机输入,产生各种输出,结果的概率分布就是真实分布的“近似”,所以,输入的分布是否随机(目前计算机所能做的就是伪随机,并不能产生真正的随机分布),这个过程我们成为抽样随机变量。

<强>计算圆周率近似值代码:

包com.xu.main;
  进口java.util.Scanner;
  公开课P9_1 {
  静态双MontePI (int n) {
  双π;
  双x, y;
  int i,总和;
  金额=0;
  (i=1;我& lt;n;我+ +){
  x=math . random ();
  y=math . random ();
  如果((x * x + y * y) & lt;=1) {
  和+ +;
  }
  }
  π=4.0 */n;
  返回π;
  }
  公共静态void main (String [] args) {
  int n;
  双π;
  System.out.println(“蒙特卡洛概率算法计算圆周率:“);
  扫描仪输入=new扫描仪(系统);
  System.out.println(“输入点的数量:“);
  n=input.nextInt ();
  π=MontePI (n);
  System.out.println(“π=?π);
  }
  }

<>强输出:

蒙特卡洛概率算法计算圆周率:   输入点的数量:   9999999   π=3.1417975141797516

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

在Java中怎么利用蒙特卡洛算法求圆周率