在Java学习的过程中,需要经常拿一些小程序来练习。今天,我们就来看看一个利用蒙特卡洛算法计算圆周率,并输出指定半径的圆的周长和面积的小程序。
代码如下:
/**
* auther 司机
*/
import java.util.Scanner;
public class Test011 {
static double MontePI(int n) {
double PI;
double x, y;
int i, sum;
sum = 0;
for (i = 1; i < n; i++) {
x = Math.random();
y = Math.random();
if ((x * x + y * y) <= 1) {
sum++;
}
}
PI = 4.0 * sum / n;
return PI;
}
public static void main(String[] args) {
int n;
double PI;
System.out.println("蒙特卡洛概率算法计算圆周率:");
Scanner input = new Scanner(System.in);
System.out.println("输入点的数量:");
n = input.nextInt();
PI = MontePI(n);
System.out.println("PI="+PI);
double radius;
double area;
double circle;
Scanner input2 = new Scanner(System.in);
System.out.println("输入圆半径");
radius = input2.nextInt();
circle = 2*PI*radius;
area = radius*radius*PI;
System.out.println("The area is"+ area);
System.out.println("The circle is"+ circle);
}
}
输出:
蒙特卡洛概率算法计算圆周率: 输入点的数量:
然后你就可以在控制台输入点的个数,求圆周率的近似值,再输入想要求的圆的半径,就可以得到周长和面积了。
例:
蒙特卡洛概率算法计算圆周率: 输入点的数量: 9887766 PI=3.141522968889029 输入圆半径 5 The area is78.53807422222573 The circle is31.415229688890292
关于蒙特卡洛算法计算圆周率近似值,作者之前的文章已有记载。
以上是本文关于计算圆周长和面积的全部内容,希望本文对大家有所帮助。