Поиск ближайших точек по координатам - Java
Формулировка задачи:
На плоскости заданы 5 точек с координатами (x0, y0), (x1, y1) ... (x4, y4). Найти две ближайшие точки.
Мучаю-мучаю задание, ничего не приходит в голову, только бред какой-то ( Нужно создать метод, который бы проверял расстояние между точками и сравнивал его. Help please)
Листинг программы
- class Method{
- public static void main(String[] args){
- int n=5, m=2;
- int i, j;
- double distance;
- int[][] a = new int[5][2];
- a[0][0]=2;
- a[0][1]=-3;
- a[1][0]=5;
- a[1][1]=0;
- a[2][0]=3;
- a[2][1]=3;
- a[3][0]=9;
- a[3][1]=-5;
- a[4][0]=8;
- a[4][1]=4;
- for (i=0; i<n; i++){
- k=i+1;
- System.out.println("Koordinaty tochki " + k + ":");
- for (j=0; j<m; j++)
- {
- System.out.print(a[i][j]+" ");
- }
- System.out.println(" ");
- }
- for (i=0; i<n; i++)
- for (j=i+1; j<m; j++)
- {
- distance=Math.sqrt(Math.pow((a[i][0]-a[i+1][0]), 2)+Math.pow((a[i][1]-a[i+1][1]), 2));} }
- }
Решение задачи: «Поиск ближайших точек по координатам»
textual
Листинг программы
- static double getPointDist(Pnt a, Pnt b) {
- return Math.sqrt(Math.pow((a.x-b.x), 2)+Math.pow((a.y-b.y), 2));
- }
- public static void main(String[] a) {
- //инициализируем массив растояний
- double[][] distances = new double[5];
- for (int i=0; i<5; i++) distances[i] = new double[5];
- Pnt[] input = new Pnt[5]; // массив хранения точек
- //... ввод данных
- for (int x=0; x<5; x++)
- for (int y=0; y<5; y++) distances[x][y] = getPointDist(input[x], input[y]); // заполняем растояния
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д