Il problema:
Dato un insieme di punti non vuoto nel piano cartesiano, trova il cerchio più piccolo che li racchiude tutti ( link Wikipedia ).
Questo problema è banale se il numero di punti è tre o meno (se c'è un punto, il cerchio ha un raggio di zero; se ci sono due punti, il segmento di linea che unisce i punti è il diametro del cerchio; se ci sono tre punti (non lineari), è possibile ottenere l'equazione di un cerchio che li tocca tutti se formano un triangolo non ottuso, o un cerchio che tocca solo due punti e racchiude il terzo se il triangolo è ottuso). Quindi, per il bene di questa sfida, il numero di punti dovrebbe essere maggiore di tre.
La sfida:
- Input: un elenco di 4 o più punti non lineari. I punti dovrebbero avere coordinate X e Y; le coordinate possono essere float. Per facilitare la sfida, nessun punto deve condividere la stessa coordinata X.
Per esempio:[(0,0), (2,1), (5,3), (-1,-1)] - Output: una tupla di valori,
(h,k,r)tale che è l'equazione del cerchio più piccolo che racchiude tutti i punti.
Regole:
- Puoi scegliere qualsiasi metodo di input adatto al tuo programma.
- L'output deve essere stampato
STDOUTo restituito da una funzione. - Le lingue "normali", di uso generale, sono preferite, ma qualsiasi esolang è accettabile.
- Puoi presumere che i punti non siano lineari.
- Questo è code-golf, quindi vince il programma più piccolo in byte. Il vincitore verrà selezionato una settimana dopo la pubblicazione della sfida.
- Includi la lingua che hai usato e la lunghezza in byte come intestazione nella prima riga della tua risposta:
# Language: n bytes
- Includi la lingua che hai usato e la lunghezza in byte come intestazione nella prima riga della tua risposta:
Casi test:
- 1:
- Ingresso:
[(-8,0), (3,1), (-6.2,-8), (3,9.5)] - Produzione:
[-1.6, 0.75, 9.89]
- Ingresso:
- 2:
- Ingresso:
[(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)] - Produzione:
[-1.73, 0.58, 11.58]
- Ingresso:
- 3:
- Ingresso:
[(0,0), (1,2), (3,-4), (4,-5), (10,-10)] - Produzione:
[5.5, -4, 7.5]
- Ingresso:
- 4:
- Ingresso:
[(6,6), (-6,7), (-7,-6), (6,-8)] - Produzione:
[0, -0.5, 9.60]
- Ingresso:
Buon golf !!!