Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.05.2009
Сообщений: 5

Из данного множества точек на плоскости выбрать такие точки А,В,С

17.05.2009, 18:16. Показов 1472. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Из данного множества точек на плоскости выбрать такие точки А,В,С , чтобы внутри треугольника АВС содержалось максимальное количество точек этого множества.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2009, 18:16
Ответы с готовыми решениями:

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

Из заданного на плоскости множества точек выбрать такие три, которые составляют треугольник наибольшего периметра.
Помогите ребят!!!!препод задачи задачи для аттестации,сделал фактически все,кроме этой: "Из заданного на плоскости множества точек...

Из заданного множества точек на плоскости выбрать три разные точки А В С так, чтобы внутри треугольника АВС содержалось максимальное количество точек.
Помогите написать программный модуль для решения задачи. Из заданного множества точек на плоскости выбрать три разные точки А В С так,...

8
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,975
19.05.2009, 11:41
Предлагаю такой ход: берем все комбинации треугольников (сочетаний из n по 3) и считаем сколько точек внутри. Лучший результат запоминаем.
Я сделал проверку на нахождение точки внутри тр-ка (PointInTriangle). Осталось сделать перебор всех сочетаний.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Function S(X1, Y1, X2, Y2, X3, Y3) As Double
AB = Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
BC = Sqr((X3 - X2) ^ 2 + (Y3 - Y2) ^ 2)
AC = Sqr((X1 - X3) ^ 2 + (Y1 - Y3) ^ 2)
P = (AB + BC + AC) / 2
S = Sqr(P * (P - AB) * (P - BC) * (P - AC))
End Function
 
 
Function PointInTriangle(X1, Y1, X2, Y2, X3, Y3, NX, NY) As Boolean
s1 = S(X1, Y1, X2, Y2, X3, Y3)
s2 = S(X1, Y1, X2, Y2, NX, NY)
s3 = S(X1, Y1, NX, NY, X3, Y3)
s4 = S(NX, NY, X2, Y2, X3, Y3)
diff = Abs(s1 - (s2 + s3 + s4))
PointInTriangle = diff < 0.0000000001
End Function
0
0 / 0 / 0
Регистрация: 17.05.2009
Сообщений: 5
19.05.2009, 14:09  [ТС]
Спасибо большое!!!
Но в данной задаче меня как раз интересовал перебор всех треугольников с разными координатами...
так как надо выполнять ещё проверку на возможность создания треугольника (А+В<C) в каждом случае, а я не могу сообразить как выполнить этот перебор с проверкой...

Добавлено через 42 секунды
Если есть соображения, пишите!!!
0
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,975
19.05.2009, 16:56
Цитата Сообщение от DAlexV Посмотреть сообщение
надо выполнять ещё проверку на возможность создания треугольника (А+В<C) в каждом случае
Это имеется ввиду длины сторон? А зачем это? Даны же координаты вершин и из 3-х точек треугольник всегда строится.
0
0 / 0 / 0
Регистрация: 17.05.2009
Сообщений: 5
31.05.2009, 19:51  [ТС]
Из трёх точек не всегда можно построить треугольник: может получиться так, что они лежат на одной прямой...
А это уже не треугольник, и дальнейшие операции не выполнимы!!!
0
0 / 0 / 0
Регистрация: 17.05.2009
Сообщений: 5
31.05.2009, 19:54  [ТС]
Как совершить перебор всех возможных треугольников из N заданых точек???
0
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,975
31.05.2009, 20:05
Да и пусть лежат. Почему операции не выполнимы? Все выполнимо. Тругольник с нулевой площадью тоже треугольник.
0
0 / 0 / 0
Регистрация: 17.05.2009
Сообщений: 5
31.05.2009, 20:12  [ТС]
тогда точка, лежащая на этой прямой находится внутри треугольника!
0
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,975
01.06.2009, 15:50
Цитата Сообщение от DAlexV Посмотреть сообщение
тогда точка, лежащая на этой прямой находится внутри треугольника!
Тогда точка, лежащая на этой прямой находится внутри треугольника?
Это я давно хотел спросить Если точка лежит на стороне какого-либо треугольника, она внутри или снаружи?
Я не пойму где противоречие в том что мы будем "исследовать" гипотетический треугольник представляющий из себя прямую?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2009, 15:50
Помогаю со студенческими работами здесь

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

Даны два множества точек на плоскости. Из первого множества выбрать три различные точки так, чтобы треугольник с вершинами в этих точках содержал ...
Даны два множества точек на плоскости. Из первого множества выбрать три различные точки так, чтобы треугольник с вершинами в этих точках...

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

Даны два множества точек на плоскости. Выбрать три точки так, чтобы треугольник с вершинами в этих точках содержал равное количество точек
Даны два множества точек на плоскости. Из первого множества выбрать три различные точки так, чтобы треугольник с вершинами в этих точках...

Из заданного на плоскости множества точек выбрать три различные точки
Здравствуйте, помогите пожалуйста написать программу: Из заданного на плоскости множества точек выбрать три различные точки так, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru