Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 循环不断溢出_Java_Math - Fatal编程技术网

Java 循环不断溢出

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;

对于我的学校项目,我正在制作一个使用概率计算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;
    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){