在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

关于蒙特卡洛算法计算圆周率近似值,作者之前的文章已有记载。

以上是本文关于计算圆周长和面积的全部内容,希望本文对大家有所帮助。

02-07 06:53