El problema:
Dado un conjunto de puntos no vacío en el plano cartesiano, encuentre el círculo más pequeño que los encierra a todos ( enlace de Wikipedia ).
Este problema es trivial si el número de puntos es tres o menos (si hay un punto, el círculo tiene un radio de cero; si hay dos puntos, el segmento de línea que une los puntos es el diámetro del círculo; si hay tres puntos (no colineales), es posible obtener la ecuación de un círculo que los toca a todos si forman un triángulo no obtuso, o un círculo que toca solo dos puntos y encierra el tercero si el triángulo es obtuso). Entonces, por el bien de este desafío, el número de puntos debería ser mayor que tres.
El reto:
- Entrada: una lista de 4 o más puntos no colineales. Los puntos deben tener coordenadas X e Y; Las coordenadas pueden ser flotadores. Para facilitar el desafío, no hay dos puntos que compartan la misma coordenada X.
Por ejemplo:[(0,0), (2,1), (5,3), (-1,-1)]
- Salida: una tupla de valores, de
(h,k,r)
modo que es la ecuación del círculo más pequeño que encierra todos los puntos.
Reglas:
- Puede elegir el método de entrada que se adapte a su programa.
- La salida debe ser impresa
STDOUT
o devuelta por una función. - Se prefieren los idiomas "normales", de uso general, pero cualquier esolang es aceptable.
- Puede suponer que los puntos no son colineales.
- Este es el código de golf, por lo que gana el programa más pequeño en bytes. El ganador será seleccionado una semana después de que se publique el desafío.
- Incluya el idioma que utilizó y la longitud en bytes como encabezado en la primera línea de su respuesta:
# Language: n bytes
- Incluya el idioma que utilizó y la longitud en bytes como encabezado en la primera línea de su respuesta:
Casos de prueba:
- 1:
- Entrada:
[(-8,0), (3,1), (-6.2,-8), (3,9.5)]
- Salida:
[-1.6, 0.75, 9.89]
- Entrada:
- 2:
- Entrada:
[(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)]
- Salida:
[-1.73, 0.58, 11.58]
- Entrada:
- 3:
- Entrada:
[(0,0), (1,2), (3,-4), (4,-5), (10,-10)]
- Salida:
[5.5, -4, 7.5]
- Entrada:
- 4:
- Entrada:
[(6,6), (-6,7), (-7,-6), (6,-8)]
- Salida:
[0, -0.5, 9.60]
- Entrada:
¡Feliz golf!