写一个函数求PI的值

题意描述:写一个函数,求得PI的值

解题思路一:公式法,Pi/4 = 1 - 1/3 + 1/5 + ……

double getPi() {
	double pi = 0;		
	int sign = 1;
	
	for(int i=1; i < 1e8; i+=2){
		pi += sign / (1.0 * i);
		sign = -sign;
	}
	
	return 4 * pi;
}
解题思路二:面积法,确定一个长度作为圆的半径,圆是正方形的内切圆。然后随机生成点,点落在圆中的概率和落在正方形中的概率就为面积之比:InCircleArea :InRectArea = Pi*r^2 : (2 * r)^2,进而求得Pi
double getPi(){
	final int radius = 1000;
	final int totalTimes = 100000000;
	double x, y;
	int InPiArea = 0;
	for(int i=0; i<totalTimes; i++){
		x = Math.random() * 1000.0;
		y = Math.random() * 1000.0;
		if((x * x + y * y - radius * radius) < 0.0000001)
			InPiArea++;
	}
	
	return 4.0 * InPiArea / totalTimes;
}




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值