Su tarea es programar una función matemática s, que toma un conjunto finito Ade puntos no vacíos en el plano 2D, y genera un puntaje de circularidad s(A)que satisface las siguientes propiedades:
- Definitividad positiva : si hay un círculo o una línea recta que contiene todos los puntos de
A, entoncess(A) = 0. De otra maneras(A) > 0 Surjectividad: es surjective a los números reales no negativos, lo que significa que para cada número real no negativo
rhay un subconjunto finitoAdel plano tal ques(A) = r.Invariancia de traducción:
ses invariante de traducción sis(A) = s(A + v)para cada vectorvy para todosA.Invarianza de escala:
ses invariante de escala, sis(A) = s(A * t)para todost≠0y para todosA.Continuidad.
sse dice que es continua si la funciónf(p) := s(A ∪ {p})(mapear un puntopa un número real) es continua usando el valor absoluto estándar en los números reales y la norma euclidiana estándar en los puntos del plano.
Hablando intuitivamente, esta puntuación de falta de circularidad puede considerarse como algo similar al coeficiente de correlación en la regresión lineal.
Detalles
Su función en teoría tiene que funcionar en los reales, pero para el propósito de este desafío puede usar números de coma flotante como sustituto. Proporcione una explicación de su envío y un argumento de por qué se mantienen esas cinco propiedades. Puede tomar dos listas de coordenadas o una lista de tuplas o formatos similares como entrada. Puede suponer que no se repite ningún punto en la entrada, es decir, todos los puntos son únicos.
sque no es único. Lo único para lo que podría hacer ejemplos es para s(A) = 0qué es trivial hacerlo usando la primera propiedad.