Nano Hash - криптовалюты, майнинг, программирование

Найдите точку, покрытую всеми заданными окружностями

Даны n (n ‹= 1000) окружностей ((x;y), r), где (x;y) = координаты центра окружности, r = радиус. х, у, г ‹ = 10 ^ 6. x, y, r могут быть действительными числами.

Задача состоит в том, чтобы найти точку (x; y), покрытую всеми окружностями, или определить, что таких точек нет. Координаты точки тоже могут быть действительными числами.

Нет идей, как это сделать, может кто-нибудь помочь, пожалуйста?

26.12.2020

  • mathoverflow.net может быть более подходящим. 26.12.2020
  • @ Jarod42 хорошо, спасибо! 26.12.2020
  • Я голосую за закрытие этого вопроса, потому что он относится к другому сайту обмена стеками. 26.12.2020
  • @ Jarod42 mathoverflow предназначен для задач, с которыми математикам нужна помощь. математика была бы уместна, но то же самое можно сказать и о stackoverflow/алгоритме, поскольку требуется алгоритм. 26.12.2020
  • Выберите круг с наименьшим радиусом. Если есть такая точка, то она находится в этом круге. Работайте по увеличивающимся радиусам, чтобы найти перекрытия или отсутствие перекрытий. Отсутствие перекрытия означает, что такой точки не существует. Используйте любое перекрытие, чтобы уменьшить возможную площадь, удерживающую конкретную точку. 26.12.2020
  • Что вы подразумеваете под поиском точки (x; y)? Таких точек может быть 0 или бесконечное количество. Вы имеете в виду точки с заданными координатами (x, y)? 27.12.2020

Ответы:


1

Предполагая, что под кругом вы подразумеваете то, что математики назвали бы закрытым диском, существует алгоритм времени O (n²) с простыми структурами данных.

Для k от 1 до n алгоритм находит точку пересечения первых k дисков, предполагая, что такая точка существует. Начните с центра первого диска. Для каждого диска после первого проверьте, принадлежит ли текущая точка этому диску. Если так, отлично. Если нет, то либо пересечение пусто, либо пересечение содержит точку на границе текущего диска (отрезок прямой от текущей точки до любой точки пересечения всех дисков должен пересекать границу). В этом случае найдите новую точку, пересекая границу (окружность) с каждым из предыдущих дисков, что является более простой задачей 1D.

Ожидается, что это может пойти еще быстрее, если мы рандомизируем порядок дисков, но я не разработал доказательство. Будем надеяться, что при n ≤ 1000 O(n²) достаточно быстро.

Шарир (Задачи пересечения и ближайших пар для набора плоских дисков, 1985), возможно, дал алгоритм O (n log² n) за время, но я не могу сказать это из аннотации.

26.12.2020
  • Отличная идея. Почему нам нужно начинать с центра круга, а не начинать с выбора любого круга и обхода дуг на окружности, отмеченных пересечениями с другими кругами, отмечая количество еще открытых? 27.12.2020
  • @גלעדברקן Конечно, это работает. 27.12.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..