Java 循环不断溢出
对于我的学校项目,我正在制作一个使用概率计算pi值的程序,我需要程序中的循环运行至少20000次,但我的程序运行不超过4000次 代码如下:Java 循环不断溢出,java,math,Java,Math,对于我的学校项目,我正在制作一个使用概率计算pi值的程序,我需要程序中的循环运行至少20000次,但我的程序运行不超过4000次 代码如下: public static void main(String[] args) { game(); System.out.println(pi); } public static void game(){ if(total >= 4000){ return; } randomNum = 1.1;
public static void main(String[] args) {
game();
System.out.println(pi);
}
public static void game(){
if(total >= 4000){
return;
}
randomNum = 1.1;
generatex();
generatey();
distance(randomx, randomy);
game();
return;
}
private static void distance(double x, double y) {
double dist = Math.sqrt((x*x)+(y*y));
if(dist <= 1){
++in;
}
++total;
if(total != 0){
pi = 4 * (in/total);
}
}
public static double generatex(){
random();
randomx = randomNum;
return randomx;
}
public static double generatey(){
random();
randomy = randomNum;
return randomy;
}
public static double random() {
randomNum = rand.nextDouble();
if(randomNum <= 1){
return randomNum;
}
random();
return 0d;
}
publicstaticvoidmain(字符串[]args){
游戏();
系统输出println(pi);
}
公共静态无效游戏(){
如果(总数>=4000){
返回;
}
randomNum=1.1;
generatex();
generatey();
距离(随机X、随机Y);
游戏();
返回;
}
专用静态空隙距离(双x,双y){
double dist=Math.sqrt((x*x)+(y*y));
如果(距离改变线
if(total >= 4000){
到
为什么不使用循环?顺便说一句,不需要计算sqrt(这很昂贵):没有它,不等式是等价的。你的程序中没有循环,你是说递归吗?你说“不去”是什么意思?Stackoverflow?如果(总计>=4000)
应该是如果(总计>=20000)
投掷冷冻热狗计算pi:
if(total >= 20000){