Поиск ближайших точек по координатам - 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]); // заполняем растояния }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д