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

1. scientes 288 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 288 16.12.22 14:24 Сейчас в теме
(3) В условии задачи 2 млн точек. Соединение двух таблиц даст 2 млн * 2 млн = 4 000 млрд. строк . Сервер такое не потянет.
5. user1278383 3 16.12.22 14:48 Сейчас в теме
(4) о какой метрике расстояния идет речь?) Для метрики чебышева задача элементарная) Шучу. Надо подумать в таком случае
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

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

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

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)