算法第四版 1.2.1

题目:编写一个Points2D用例,从命令行接受一个整数,并在单位正方形中生成n个点,然后计算两点之间的最大距离。

 

代码如下:

import java.util.Random;

import edu.princeton.cs.algs4.Point2D;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;

public class No_1_2_1 {
    public static void main(String[] args)
    {
        int n = StdIn.readInt();
        Random random = new Random();//random产生随机数
        Point2D[] points = new Point2D[n];//创建n个点的对象的数组
        
        for(int i=0;i<n;i++)
        {
            double x = random.nextDouble();//随机生成x,y,位于[0,1.0]
            double y = random.nextDouble();
            points[i] = new Point2D(x,y);//用x,y来初始化对象
            
        }
        
        double dis=0;
        double temp =0;
        
        for(int i=0;i<n;i++)//遍历所有点的组合,求距离
        {
            for(int j=i+1;j<n;j++)
            {
                temp = points[i].distanceTo(points[j]);//计算点i到点j的距离
                
                if(temp>dis)
                    dis= temp;
            }
        }
        
        StdOut.println(dis);
        
    }
}

 

posted @ 2020-02-07 16:15  清明道人  阅读(217)  评论(0编辑  收藏  举报