Множества

Тема в разделе "Java", создана пользователем Nadin85, 31 май 2008.

  1. Nadin85

    Nadin85 Гость

    Задано множества точек на плоскости. Найти такую точку, от которой сумма расстояний до других точек наименьшая.
    Суть лабы получилась, но теперь мне нужно, чтоб пользователь мог сам вводить точки и их координаты в командной строке, и тогда прога находила бы минимальную сумму расстояний до других точек. Как это реализовать? Помогите пожалуйсто!!! Вот привожу свой листинг, когда точки заданы в коде:
    Код (Text):
     class Locate
    {

    private double x, y; /*по умолчанию x=0 и y=0 */

    public Locate()
    {

    x = 1;

    y = 1;

    }

    public void setX(double a)
    {

    x = a;

    }

    void setY(double b)
    { /*видимость по умолчанию*/

    y = b;

    }

    public double getX()
    {

    return x;

    }

    public double getY()
    {

    return y;

    }

    }

    public class Distance
    {

    public static void main(String[] args)
    {

    //локальные переменные не являются членами класса

    Locate O = new Locate();

    Locate A = new Locate();

    Locate B = new Locate();

    Locate C = new Locate();

    double dx;     
    double dy;
    double distance1;
    double distance2;
    double distance3;
    double summa1;
    double summa2;
    double summa3;

    O.setX(5);

    O.setY(10);

    A.setX(2);

    A.setY(6);

    B.setX(8);

    B.setY(6);

    C.setX(4);

    C.setY(2);

    dx = O.getX() - A.getX(); //3

    dy = O.getY() - A.getY(); //4

    /* вычисление расстояния */

    distance1 = Math.sqrt(dx * dx + dy * dy); //вычисление гипотенузы треугольника, расстояние 5     

    dx = B.getX() - O.getX(); //3

    dy = O.getY() - B.getY(); //4

    distance2 = Math.sqrt(dx * dx + dy * dy); //вычисление гипотенузы треугольника, расстояние 5       

    dx = O.getX() - C.getX(); //1

    dy = O.getY() - C.getY(); //8

    distance3 = Math.sqrt(dx * dx + dy * dy); //вычисление гипотенузы треугольника, расстояние 8.06

    summa1 = distance1 + distance2 + distance3;  //18.06


    O.setX(6);

    O.setY(7);

    dx = O.getX() - A.getX(); //4

    dy = A.getY() - O.getY(); //1

    distance1 = Math.sqrt(dx * dx + dy * dy); //4.1

    dx = B.getX() - O.getX(); //2

    dy = B.getY() - O.getY(); //1

    distance2 = Math.sqrt(dx * dx + dy * dy); //2.24

    dx = O.getX() - C.getX(); //2

    dy = O.getY() - C.getY(); //5

    distance3 = Math.sqrt(dx * dx + dy * dy); //5.39

    summa2 = distance1 + distance2 + distance3; //11.73


    O.setX(6);

    O.setY(4);

    dx = O.getX() - A.getX(); //4

    dy = A.getY() - O.getY(); //2

    distance1 = Math.sqrt(dx * dx + dy * dy); //4.47

    dx = B.getX() - O.getX(); //2

    dy = B.getY() - O.getY(); //2

    distance2 = Math.sqrt(dx * dx + dy * dy); //2.83

    dx = O.getX() - C.getX(); //2

    dy = O.getY() - C.getY(); //2

    distance3 = Math.sqrt(dx * dx + dy * dy); //2.83

    summa3 = distance1 + distance2 + distance3; //10.13

    double min12 = java.lang.Math.min(summa1, summa2);

    System.out.println("Min Summa = " + java.lang.Math.min(min12, summa3));
    }
    }
     
  2. festevall

    festevall Гость

    а это что?
     
Загрузка...
Похожие Темы - Множества
  1. alturgrey
    Ответов:
    2
    Просмотров:
    1.234

Поделиться этой страницей