Проблема:
Учитывая непустое множество точек в декартовой плоскости, найдите наименьший круг, который охватывает их все ( ссылка на Википедию ).
Эта проблема тривиальна, если число точек равно трем или меньше (если есть одна точка, радиус окружности равен нулю; если имеется две точки, то отрезок линии, соединяющий точки, является диаметром круга; если есть В трех (не коллинеарных) точках можно получить уравнение окружности, которая касается их всех, если они образуют не тупой треугольник, или окружность, которая касается только двух точек и окружает третью, если треугольник тупой). Итак, ради этого испытания количество очков должно быть больше трех.
Соревнование:
- Ввод: список из 4 или более неколинейных точек. Точки должны иметь координаты X и Y; координаты могут быть плавающими. Чтобы облегчить задачу, никакие две точки не должны иметь одинаковую координату X.
Например:[(0,0), (2,1), (5,3), (-1,-1)]
- Вывод: кортеж значений,
(h,k,r)
такой что - это уравнение наименьшего круга, охватывающего все точки.
Правила:
- Вы можете выбрать любой метод ввода, подходящий для вашей программы.
- Вывод должен быть напечатан
STDOUT
или возвращен функцией. - «Обычные» языки общего назначения предпочтительны, но приемлем любой язык.
- Можно предположить, что точки не являются коллинеарными.
- Это код-гольф, поэтому выигрывает самая маленькая программа в байтах. Победитель будет выбран через неделю после объявления конкурса.
- Пожалуйста, укажите язык, который вы использовали, и длину в байтах в качестве заголовка в первой строке вашего ответа:
# Language: n bytes
- Пожалуйста, укажите язык, который вы использовали, и длину в байтах в качестве заголовка в первой строке вашего ответа:
Тестовые случаи:
- 1:
- Входные данные:
[(-8,0), (3,1), (-6.2,-8), (3,9.5)]
- Выход:
[-1.6, 0.75, 9.89]
- Входные данные:
- 2:
- Входные данные:
[(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)]
- Выход:
[-1.73, 0.58, 11.58]
- Входные данные:
- 3:
- Входные данные:
[(0,0), (1,2), (3,-4), (4,-5), (10,-10)]
- Выход:
[5.5, -4, 7.5]
- Входные данные:
- 4:
- Входные данные:
[(6,6), (-6,7), (-7,-6), (6,-8)]
- Выход:
[0, -0.5, 9.60]
- Входные данные:
Удачного игры в гольф !!!