求蒙特卡洛计算 圆周率的 java程序
展开全部
原理:
根据圆面积的公式: s=πR2 ,当R=1时,S=π。
由于圆的方程是:x^2+y^2=1(x^2为X的平方的意思),因此1/4圆面积为x轴、y轴和上述方程所包围的部分。
如果在1*1的矩形中均匀地落入随机点,则落入1/4园中的点的概率就是1/4圆的面积。其4倍,就是圆面积。
由于半径为1,该面积的值为π的值。
程序如下:
import java.util.Random;
public class pai {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int N = 100000; /*定义随机点数*/
int n = 0,i,resulttimes;
double r;
double x,y; /*坐标*/
Random s = new Random();
for(resulttimes=0;resulttimes<10;resulttimes++){ /*输出十次结果*/
for (i=1;i<=N;i++)
{
x=s.nextDouble(); /*在0~1之间产生一个随机x坐标*/
y=s.nextDouble(); /*在0~1之间产生一个随机y坐标*/
if(x*x+y*y<=1.0) n++; /*统计落入单位圆中的点数*/
}
r=(double)n/N;
System.out.println("The result of pai is "+r*4); /*计算出π的值*/
n=0;
}
}
}
根据圆面积的公式: s=πR2 ,当R=1时,S=π。
由于圆的方程是:x^2+y^2=1(x^2为X的平方的意思),因此1/4圆面积为x轴、y轴和上述方程所包围的部分。
如果在1*1的矩形中均匀地落入随机点,则落入1/4园中的点的概率就是1/4圆的面积。其4倍,就是圆面积。
由于半径为1,该面积的值为π的值。
程序如下:
import java.util.Random;
public class pai {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int N = 100000; /*定义随机点数*/
int n = 0,i,resulttimes;
double r;
double x,y; /*坐标*/
Random s = new Random();
for(resulttimes=0;resulttimes<10;resulttimes++){ /*输出十次结果*/
for (i=1;i<=N;i++)
{
x=s.nextDouble(); /*在0~1之间产生一个随机x坐标*/
y=s.nextDouble(); /*在0~1之间产生一个随机y坐标*/
if(x*x+y*y<=1.0) n++; /*统计落入单位圆中的点数*/
}
r=(double)n/N;
System.out.println("The result of pai is "+r*4); /*计算出π的值*/
n=0;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询