Проблема:
Враховуючи не порожній набір точок в декартовій площині, знайдіть найменше коло, яке їх усіх охоплює ( посилання Вікіпедії ).
Ця проблема є тривіальною, якщо кількість точок становить три або менше (якщо є одна точка, коло має радіус нуля; якщо є дві точки, відрізок прямої, що приєднується до точок, - це діаметр кола; якщо є три (нелінійні) точки, можна отримати рівняння кола, яке торкається їх усіх, якщо вони утворюють не тупий трикутник, або коло, яке торкається лише двох точок, а третє додає, якщо трикутник тупий). Отже, заради цього виклику кількість балів повинна бути більшою, ніж три.
Змагання:
- Введення: Список з 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]
- Вхід:
Щасливого гольфу !!!