我来分析:正方形面积为1,扇形面积为1/4 PI;
有图片可以知道:该曲线的方程为x*x + y * y = 1(0<=x,y<=1)
若:x*x + y * y <= 1,则该点落在扇形内。
姑且令正方形面积为M,扇形面积为N
则:M/N = 4/PI;
PI = 4 * N / M;
面积这个东西不好算,用点来表示吧。
设: 落在正方形中的点有M(x,y)个。
若x*x + y * y <= 1,则M中有N个点落在扇形中。- public class RandomTesy {
- public static void main(String args[])
- {
- int m = 100254; //从这里输入M的值
- double PI = (double)4 * mNumber(m) / m;
-
- System.out.println(PI);
- }
-
- //产生的N的个数
- public static int mNumber(int m)
- {
- int n = 0;
- for(int i = 1; i <= m; i++)
- {
- double x = Math.random();//x大于或等于 0.0 但小于 1.0 的伪随机 double 值
- double y = Math.random();
-
- if(x * x + y * y <= 1)
- {
- n++;
- }
- }
- return n;
- }
- }
复制代码 ************************************
很抱歉这个帖子我没做好,今天刚回到学校,顺便把这个题目的思路给说下,大神有更好的想法也可以说一下。PI的值与你输入的m的值有关,若m为我上面的那个100254,则PI为3.143056636144194。
|
|