Le problème:
Étant donné un ensemble de points non vide dans le plan cartésien, trouvez le plus petit cercle qui les entoure tous ( lien Wikipedia ).
Ce problème est trivial si le nombre de points est de trois ou moins (s'il y a un point, le cercle a un rayon de zéro; s'il y a deux points, le segment de ligne qui rejoint les points est le diamètre du cercle; s'il y a trois points (non colinéaires), il est possible d'obtenir l'équation d'un cercle qui les touche tous s'ils forment un triangle non obtus, ou un cercle qui ne touche que deux points et entoure le troisième si le triangle est obtus). Donc, pour relever ce défi, le nombre de points devrait être supérieur à trois.
Le défi:
- Entrée: une liste de 4 points non colinéaires ou plus. Les points doivent avoir des coordonnées X et Y; les coordonnées peuvent être des flottants. Pour faciliter le défi, deux points ne doivent pas partager la même coordonnée X.
Par exemple:[(0,0), (2,1), (5,3), (-1,-1)]
- Sortie: Un tuple de valeurs
(h,k,r)
tel que est l'équation du plus petit cercle qui entoure tous les points.
Règles:
- Vous pouvez choisir la méthode de saisie qui convient à votre programme.
- La sortie doit être imprimée
STDOUT
ou retournée par une fonction. - Les langues «normales», à usage général, sont préférées, mais tout esolang est acceptable.
- Vous pouvez supposer que les points ne sont pas colinéaires.
- Il s'agit de code-golf, donc le plus petit programme en octets gagne. Le gagnant sera sélectionné une semaine après la publication du défi.
- Veuillez inclure la langue que vous avez utilisée et la longueur en octets comme en-tête dans la première ligne de votre réponse:
# Language: n bytes
- Veuillez inclure la langue que vous avez utilisée et la longueur en octets comme en-tête dans la première ligne de votre réponse:
Cas de test:
- 1:
- Contribution:
[(-8,0), (3,1), (-6.2,-8), (3,9.5)]
- Sortie:
[-1.6, 0.75, 9.89]
- Contribution:
- 2:
- Contribution:
[(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)]
- Sortie:
[-1.73, 0.58, 11.58]
- Contribution:
- 3:
- Contribution:
[(0,0), (1,2), (3,-4), (4,-5), (10,-10)]
- Sortie:
[5.5, -4, 7.5]
- Contribution:
- 4:
- Contribution:
[(6,6), (-6,7), (-7,-6), (6,-8)]
- Sortie:
[0, -0.5, 9.60]
- Contribution:
Bon golf !!!