«Здесь будет город-сад»

Выполнен
Заказ
3913357
Раздел
Программирование
Предмет
ООП - Объектно-ориентированное программирование
Антиплагиат
Не указан
Срок сдачи
24 Фев 2021 в 06:00
Цена
Договорная
Блокировка
10 дней
Размещен
20 Фев 2021 в 13:45
Просмотров
179
Описание работы

Исходная информация: N – количество деревьев в саду, (xi, yi) – координаты деревьев, i = 1, 2, …, N. Так как были высажены молодые саженцы, то их толщиной можно пренебречь.

Требуется определить, к каким из посаженных деревьев надо при- вязать веревку так, чтобы все деревья оказались внутри обнесенной зоны, а длина веревки была минимальная.

Эта и подобные ей задачи сводятся к определению для заданного множества точек на плоскости выпуклой оболочки, то есть выпуклого многоугольника с вершинами в некоторых точках из заданного множества, охватывающего все его точки. В [2] приведено несколько вариантов решения такой задачи с учетом временных затрат на выполнение алгоритмов. Здесь мы рассмотрим способ, использующий свойства скалярного произведения векторов.

Будем строить выпуклую оболочку в порядке обхода участка по ча- совой стрелке. Найдем самую левую точку М0 = (x0, y0), x0 = min{xi}. Если таких точек несколько, то возьмем самую нижнюю из них. Эта точка наверняка принадлежит искомой выпуклой оболочке. Зададим первоначальный вектор a0 с началом в точке (x0, y0), параллельный оси Oy.

Следующей точкой оболочки будет такая точка М1, чтобы вектор a1 с началом в точке М0 и концом в точке М1 образовывал с первоначальным вектором a0 минимальный угол. Если таких точек несколько, то выбирается точка, расстояние до которой максимально.

Далее процесс продолжаем, то есть ищем точку М2 с минимальным углом между вектором a1 и вектором a2 с началом в точке М1 и концом в точке М2, затем точку М3 и т. д. Процесс прекращаем, когда дойдем до первой выбранной точки или количество точек в оболочке станет равно N. Для определения угла между векторами используется скалярное произведение. Причем сам угол можно не вычислять, так как минимальному углу соответствует максимальный косинус угла.

Выполнить работу в программе SharpDeveloper (C#)


Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
21 час 39 минут
Выполнен в срок
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир