Множества

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

  1. Nadin85

    Nadin85 Гость

    Репутация:
    0
    Задано множества точек на плоскости. Найти такую точку, от которой сумма расстояний до других точек наименьшая.
    Суть лабы получилась, но теперь мне нужно, чтоб пользователь мог сам вводить точки и их координаты в командной строке, и тогда прога находила бы минимальную сумму расстояний до других точек. Как это реализовать? Помогите пожалуйсто!!! Вот привожу свой листинг, когда точки заданы в коде:
    Код (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 Гость

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

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