|
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 24
|
|
Найти точку в к-мерном пространстве22.09.2013, 18:33. Показов 1460. Ответов 19
Метки нет (Все метки)
Есть к-мерное дискретное (целочисленное) пространство. В нем отмечены некоторые точки. Нужно найти такую точку, что если через нее провести прямые параллельные базисным векторам, то на них будет лежать максимальное число точек. Если таких несколько, то нужно найти все. Как это можно сделать не перебирая все точки пространства?
0
|
|
| 22.09.2013, 18:33 | |
|
Ответы с готовыми решениями:
19
Найти наибольший угол треугольника заданного координатами в 4-мерном пространстве Найти в n-мерном пространстве min расстояние от начала координат до отрезка, заданного координатами концов Треугольники в 3х мерном пространстве |
|
21 / 21 / 1
Регистрация: 28.05.2010
Сообщений: 67
|
|
| 22.09.2013, 23:03 | |
|
Пусть точек
1. Сортируем точки по каждой из координат. Теперь точки у которых совпадает одна из координат лежат рядом в соответствующем массиве. 2. Перебираем точки 2.1. Каждую ищем в отсортированных массивах. 2.2. Составляем список точек, совпадающих по координате с данной. 2.3. Считаем точки, встречающиеся в этом списке ровно один раз. Увеличиваем на эту величину счетчик для текущей точки и на 1 для всех встречающихся один раз точек. 2.4. Удаляем текущую точку из отсортированных массивов. 3. Берем точки с максимальным значением счетчика. Получаем сложность порядка
0
|
|
|
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 24
|
||
| 23.09.2013, 00:37 [ТС] | ||
|
3,3 1,3 3,3 0,2 2,2 1,3 Ответом здесь будут точки 0,3 и 2,3 Добавлено через 8 минут Замечу, что для 2мерного случая решение несложное, но с обощением на к-мерность возникают проблемы. Например, для 3мерного случая нам придется рассматривать каждую плоскость соответствующую 3ей координате. Собственно вопрос в том, как избежать такого перебора. Кроме того, если ровно одна координата совпадает, то через такие точки нельзя провести прямую параллельную базису. Если ровно одна координата различается, тогда можно.
0
|
||
|
21 / 21 / 1
Регистрация: 28.05.2010
Сообщений: 67
|
|
| 23.09.2013, 01:15 | |
|
Вижу, что я неправильно понял условие задачи и предложил алгоритм для поиска наилучшей точки из отмеченных. Надо еще подумать, но уже поздно. Завтра подумаю.
0
|
|
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
| 23.09.2013, 11:41 | |
|
Имея set <все_точки>, для каждой размерности сохранить map <координата, количество>. Последовательно для каждой пары осей перебираем точку из их map'ов. Полученная точка однозначно оределяет все вектора - считаем для них число точек, проверив дополнительно существует ли точка, которая является пересечением осей. Ассимптотика O(n^4).
0
|
|
| 23.09.2013, 12:17 | |||||||
0
|
|||||||
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|||
| 23.09.2013, 12:25 | |||
|
Добавлено через 3 минуты Добавлено через 3 минуты Ассимптотика O(k^3*n^2): k^2 - перебор двух осей n^2 - перебор точек на осях k - подсчёт по оставшимся k-2 осям
0
|
|||
|
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 24
|
||
| 23.09.2013, 14:19 [ТС] | ||
И я не слишком понял идею алгоритма. Не могли бы вы поподробнее описать что мы делаем на примере такого датасета: 1,3,3 2,1,3 3,3,3 1,0,2 1,2,2 0,1,3 Добавлено через 24 минуты По сути задачу можно сформулировать так: найти такую точку, чтобы как можно большее число точек, подающихся на вход, отличалось от нее не более чем в 1 координате (на самом деле не более чем в d, но мне хотя бы при d=1 разобраться)
0
|
||
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
||
| 23.09.2013, 16:14 | ||
|
Думал, что так получится, но тут что-то не то
0
|
||
| 23.09.2013, 17:17 | ||
|
Давайте закончим с "первоначальной" постановкой задачи
Здесь все ясно: для каждой точки заводим k счетчиков (к - число осей). Сортируя точки k раз заполняем счетчики используя интервал точек сортированного массива отличающихся лишь по одной оси (последний ключ сортировки) Др словами - "найти точку с максимальной плотностью (d)"?Добавлено через 3 минуты Неясно что имеется ввиду. Напр 2 точки, расстояние между ними по x < 1. но по др оси напр 1000. Такие точки считаются или как?
0
|
||
|
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 24
|
|||
| 23.09.2013, 17:26 [ТС] | |||
|
Добавлено через 4 минуты
0
|
|||
| 23.09.2013, 17:54 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 24
|
||
| 23.09.2013, 18:02 [ТС] | ||
|
Например, из (5, 5, 1) можно получить (5, 5, 3) изменив одну координату (третью). Тут d=1. Например, между (5,5,1) и (5,3,2) d=2
0
|
||
|
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 24
|
|
| 23.09.2013, 18:22 [ТС] | |
|
Она может иметь больше 2 соседей, может вообще не иметь соседей, главное, чтобы все точки различались ровно в одних и тех же координатах.
Например, точки 0,0,1 0,0,2 0,0,3 0,0,4 все являются соседними друг другу т.к. любую из них можно получить изменением 1 координаты в любой другой. Возможно я просто не понимаю то, что вы хотите сказать. Если вы считаете, что ваш алгоритм работает, то не могли бы вы показать конкретные шаги на датасете который я писал выше. Напишу еще раз - 1,3,3 2,1,3 3,3,3 1,0,2 1,2,2 0,1,3.
0
|
|
| 23.09.2013, 19:46 | |
|
(1,3,3) (2,1,3) (3,3,3) (1,0,2) (1,2,2) (0,1,3)
Сортируем по x, y, z (0,1,3) (1,0,2) (1,2,2) (1,3,3) (2,1,3) (3,3,3) - никакие 2 точки не лежат на оси Z Сортируем по y, z, x (1,0,2) (0,1,3) (2,1,3) (1,2,2) (1,3,3) (3,3,3) - 2 группы лежат на оси X (x, 1, 3) + (x, 3, 3) Сортируем по z, x, y (1,0,2) (1,2,2) (0,1,3) (2,1,3) (1,3,3) (3,3,3) - 1 группа лежит на оси Y (1, y, 2) Дальше отсеиваете группы по правилам как хотите. Напр если шаг между соседями 1, то ответ "пусто". Просчитав группу запоминаете результат в счетчикаx точки. Расчет по 1 оси не влияет на расчет по другой
0
|
|
|
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 24
|
|
| 23.09.2013, 20:25 [ТС] | |
|
Что вы понимаете под шагом между соседями? Число координат в которых точки различны? Давайте определим, что сосед порядка d - это точка, которая может быть получена из текущей изменением d координат (неважно на какое число). При этом, при подсчете числа соседей учитываются только точки из данного на входе multiset, но точка относительно которой они считаются может быть произвольной. В этом случае, при d=1 у нас есть 2 точки дающие максимальное число соседей 1 порядка. Это точки 3,1,3 и 1,1,3. Они обе имеют по 3 соседа 1 порядка. Пустое множество вообще не может быть ответом никогда, если входное множество непусто.
0
|
|
| 24.09.2013, 09:52 | ||
|
0
|
||
|
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
| 24.09.2013, 10:13 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 24
|
||
| 24.09.2013, 21:19 [ТС] | ||
|
Например, (0, 0, 0) и (0, 0, 500) - соседи при d=1
0
|
||
| 24.09.2013, 21:19 | |
|
Помогаю со студенческими работами здесь
20
Задача в 3х-мерном пространстве Построить окружности в 3-х мерном пространстве.
Класс вектор в n-мерном пространстве Задача на векторы в в н-мерном пространстве Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|