java - 最大值未返回正确值

标签 java if-statement

我似乎无法获得随机生成点的距离的单个最大值。 因此,我无法创建所需的最长距离。

        for(int i = 0; i < pts.length; i++) {
            pts[i] = new Point2D(Math.random(), Math.random());
            StdDraw.setPenColor(StdDraw.RED);
            StdDraw.setPenRadius(0.008);
            pts[i].draw();

            for(int j = 0; j < i; j++) {
                double distance[] = { pts[i].distanceTo(pts[j]) };
                for(int k = 0; k < distance.length; k++ ) {
                    while(distance[k] > max) {
                        max = distance[k];
                        if(max > 0) {
                            System.out.println(max);
                            StdDraw.setPenColor(StdDraw.BLACK);
                            StdDraw.setPenRadius(0.002);
                            pts[i].drawTo(pts[j]);

最佳答案

因此,在最内部的 for 循环中,只需检查每个距离并存储 max。一旦循环全部完成,就可以执行绘图。为此,您需要将点的索引(i 和 j)存储在全局某处。所以像这样:

// declare these guys to keep track of where to draw
int maxI = 0; 
int maxJ = 0;

for (int i = 0; i < pts.length; i++){
    pts[i] = new Point2D(Math.random(), Math.random());
    StdDraw.setPenColor(StdDraw.RED);
    StdDraw.setPenRadius(0.008);
    pts[i].draw();
    for (int j = 0; j<i; j++){
        double distance[] = {pts[i].distanceTo(pts[j])};
        for (int k = 0; k <distance.length; k++ ){
            if (distance[k] > max){
                max = distance[k];
                maxI = i;
                maxJ = j;
            }
        }
    }
}

if (max > 0){
    System.out.println(max);
    StdDraw.setPenColor(StdDraw.BLACK);
    StdDraw.setPenRadius(0.002);
    pts[maxI].drawTo(pts[maxJ]);
}

关于java - 最大值未返回正确值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23002077/

相关文章:

excel - 具有三种可能结果的 IF 语句 - 参数太多?

python - 为什么当 a 和 b 都为 True 时,我的 <a> 和 <b> if 条件不执行?

java - 使用 JAX-WS 2.0 和 @WebService 为一项服务发布多个端口

java - 在 Java 中向按钮添加(内置?)图标?

java - 确保没有随机序列无限重复

mysql - 使用 if 选择查询

string - excel对另一个单元格包含字符串的所有单元格求和

java - 如何使用 Spring Integration 调用安全的 SOAP 服务

java - 如何在Intellij Idea中创建类似Quick Doc的弹出提示窗口?

r - 使用 ifelse 语句时如何将 N/A 保留为 N/A?