Задача 816 из проекта Эйлера

1. scientes 283 16.12.22 13:48 Сейчас в теме
Есть такая задача (https://projecteuler.net/problem=816) - для заданного множества точек на плоскости найти минимальное расстояние между двумя точками. Эту задачу уже решили 614 человек и она очень простая. Точки расположены так, что для решения надо упорядочить ряд точек по оси Х или оси Y, затем найти расстояние между соседними точками и выбрать минимальное. В общем случае алгоритм сложнее, но для данного набора точек предложенный подход дает правильное значение. Вопрос состоит в том, как найти ответ с помощью запроса в 1С. На первом шаге заполняется таблица с координатами и передается в запрос через параметр.
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. user1278383 3 16.12.22 14:10 Сейчас в теме
а квадрат расстояния подойдет?)
3. user1278383 3 16.12.22 14:12 Сейчас в теме
(2) или запустить на платформе 8.3.20+
ВЫБРАТЬ
	Координаты.Х,
	Координаты.У
ПОМЕСТИТЬ Координаты
ИЗ
	&Координаты КАК Координаты;
ВЫБРАТЬ  
	Минимум(sqrt((Координаты1.Х-Координаты0.Х)*(Координаты1.Х-Координаты0.Х) + (Координаты1.У-Координаты0.У)*(Координаты1.У-Координаты0.У)))
ИЗ	
	Координаты КАК Координаты0
	Полное Соединение 
	Координаты КАК Координаты1
	ПО (Координаты1.Х<>Координаты0.Х 
	ИЛИ Координаты1.У<>Координаты0.У)  
Показать
4. scientes 283 16.12.22 14:24 Сейчас в теме
(3) В условии задачи 2 млн точек. Соединение двух таблиц даст 2 млн * 2 млн = 4 000 млрд. строк . Сервер такое не потянет.
5. user1278383 3 16.12.22 14:48 Сейчас в теме
(4) о какой метрике расстояния идет речь?) Для метрики чебышева задача элементарная) Шучу. Надо подумать в таком случае
Оставьте свое сообщение
Вакансии
Разработчик
Москва
зарплата от 150 000 руб. до 170 000 руб.
Полный день

Аналитик 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Ведущий программист 1С (Оперативный учет)
Санкт-Петербург
зарплата от 280 000 руб. до 310 000 руб.
Полный день

Ведущий программист 1С (ДО)
Санкт-Петербург
зарплата от 280 000 руб. до 310 000 руб.
Полный день

Ведущий Инженер - программист 1С
Новокузнецк
зарплата от 100 000 руб.
Полный день