Votre tâche consiste à programmer une fonction mathématique s
, qui prend un ensemble fini non vide A
de points dans le plan 2D et génère un score d'incircularité s(A)
qui satisfait les propriétés suivantes:
- Définition positive : S'il y a un cercle ou une ligne droite qui contient tous les points de
A
, alorss(A) = 0
. Autrements(A) > 0
Surjectivité: elle est surjective aux nombres réels non négatifs, ce qui signifie que pour chaque nombre réel non négatif,
r
il existe un sous-ensemble finiA
du plan tel ques(A) = r
.Invariance de traduction:
s
est invariante de traduction sis(A) = s(A + v)
pour chaque vecteurv
et pour tousA
.Invariance d'échelle:
s
est invariante d'échelle, sis(A) = s(A * t)
pour toust≠0
et pour tousA
.Continuité.
s
est dit continu si la fonctionf(p) := s(A ∪ {p})
(mappant le point ap
sur un nombre réel) est continue en utilisant la valeur absolue standard sur les nombres réels, et la norme euclidienne standard sur les points du plan.
Intuitivement, ce score d'incircularité peut être considéré comme quelque chose de similaire au coefficient de corrélation dans la régression linéaire.
Détails
Votre fonction doit en théorie fonctionner dans les réels, mais pour ce défi, vous pouvez utiliser des nombres à virgule flottante comme substitut. Veuillez fournir une explication de votre soumission et un argument expliquant pourquoi ces cinq propriétés sont détenues. Vous pouvez prendre deux listes de coordonnées ou une liste de tuples ou de formats similaires en entrée. Vous pouvez supposer qu'aucun point de l'entrée n'est répété, c'est-à-dire que tous les points sont uniques.
s
n'est pas unique. La seule chose pour laquelle vous pourriez faire des exemples est s(A) = 0
ce qui est trivial à faire en utilisant la première propriété.