CassiusT 2019-04-25 10:01
浏览 293

用蒙特卡洛方法算浦丰投针问题,为什么算出来的结果pi是在分子上的?

public class randomPoints {
double x;
double y;
static int intersect = 0;
static int total = 0;

public double getx() {
    return this.x;
}

public double gety() {
    return this.y;
}

randomPoints() {
    x = (Math.random() );
    y = (Math.random() );
    randomPoints points = sndP(new randomPoints(x, y));
    double a = points.getx();
    double b = points.gety();
    if (b>1&&y>0) {
        intersect++;
    }
    total++;
}

randomPoints(double xy, double yx) {
    x = xy;
    y = yx;
}

public static randomPoints sndP(randomPoints p) {
    double a = Math.random() + p.x - 0.5;
    boolean c = Math.random() - 0.5 > 0;
    double b;
    if (c) {
        b = p.y + (double) Math.sqrt(0.25 - (a - p.x) * (a - p.x));
    } else {
        b = p.y - (double) Math.sqrt(0.25 - (a - p.x) * (a - p.x));
    }
    return new randomPoints(a, b);
}

public static void main(String[] args) {
    for (int i = 0; i <= 999999999; i++) {
        randomPoints points = new randomPoints();

// System.out.print(points.x+" "+points.y+"\n" );
}
float c = (float)intersect / (float)total;
System.out.print(4*c);
}
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
    • ¥15 求daily translation(DT)偏差订正方法的代码
    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3