Вот грубая идея (я не слишком разбираюсь в вычислительной геометрии). Треугольник с фиксированным периметром и основанием может создать эллипс. Например, здесь B
и C
фиксированы, и любая точка, A
, на эллипсе будет сохранять периметр треугольника одинаковым:
![enter image description here](https://i.stack.imgur.com/KgQYy.png)
Для каждого сегмента, соединяющего две точки, выберите случайную третью точку в нашем наборе. Создайте соответствующий эллипс, затем выберите другую случайную точку из нашего набора, которая находится вне этого эллипса. Каждый эллипс будет исключать точки, которые генерируют треугольники с одинаковым или меньшим периметром, пока у нас не кончатся точки, найденные самые большие. Конечно, нам понадобятся некоторые эффективные методы для поиска соответствующих точек (возможно, с использованием разбиения пространства?).