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