当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

 

package com.heyang;

/**
 * 概率法求PI
 * 
@author: 何杨(heyang78@gmail.com)
 * @date: 2009-2-19-下午07:08:57
 
*/

public class FindPie{
    
public static void main(String[] args){
        
int count=100;
        
double simuPie;
        
        
do{
            simuPie
=getPie(count);
            count
+=10;
        }
while(isEquslPie(simuPie)==false);
          
        System.out.println(
"当数量为"+count+"时按概率法得到的Pi="+simuPie+"接近圆周率"+Math.PI);
    }
    
    
    
public static double getPie(int count){
        
int countIntheCorcle=0;
        
        
for(int i=0;i<count;i++){
            
double x=Math.random()-0.5;
            
double y=Math.random()-0.5;
            
            
if(Math.sqrt(x*x+y*y)<0.5){
                countIntheCorcle
++;
            }

        }

               
        
return (double)(4.0d*countIntheCorcle/count);
    }

    
    
public static boolean isEquslPie(double simuPie){
        
return isEqual(simuPie,Math.PI);
    }

    
    
private static boolean isEqual(double a,double b){
        
final double epsilon=0.000001;
        
        
return Math.abs(a-b)<epsilon;
    }

}

结果:
当数量为98150时按概率法得到的Pi=3.141593641736295接近圆周率3.141592653589793
posted on 2009-02-19 17:32 何杨 阅读(273) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: