Ответы:
Хм... Можно попробовать таким образом:
1. Строим матрицу, которая будет увеличивать свои геометрические размеры при добавлении очередной точки, если та выходит за границы. Для подобных изысков лучше всего использовать разреженный массив, ибо точек мало, а раскиданы они могут быть далеко.
2. Выбираем точку на нижней границе квадрата (матрицы). Находим точку, наиболее близко отстоящую от нижней границы (смотрим по строкам снизу-вверх). Нашли, получили уравнение прямой.
Пока не дойдем до верха:
3. Продолжаем обход вверх. Если натыкаемся на точку, которая находится ниже нашей прямой (сравниваем координаты Y для заданного X), то считаем ее нижней и пересчитываем уравнение.
КонецЦикла.
Хотя с матрицей я погорячился. Можно просто отсортировать массив по Y и затем по X.
Прежде чем, что-то посоветовать, разрешите выяснить условие задачи (на будущее и Вам советую ...).
Ну, как я понимаю то, что написано: надо выбрать две точки такие, что при проведении через них прямой, эта прямая не будет проходить через "облако" заданных точек. То есть, нижняя грань многоугольника, описывающего все эти точки будет частью прямой. Хотя, меня тоже пугает фраза: "И так все существующие комбинации точек". Вроде как получается, что как раз таки надо построить этот самый описывающий многоугольник, и показать его грани...
Ну, как я понимаю то, что написано: надо выбрать две точки такие, что при проведении через них прямой, эта прямая не будет проходить через "облако" заданных точек. То есть, нижняя грань многоугольника, описывающего все эти точки будет частью прямой. Хотя, меня тоже пугает фраза: "И так все существующие комбинации точек". Вроде как получается, что как раз таки надо построить этот самый описывающий многоугольник, и показать его грани...
16 лет назад