Il tuo compito è programmare una funzione matematica s, che accetta un insieme finito Adi punti non vuoto nel piano 2D e genera un punteggio di circonferenza s(A)che soddisfa le seguenti proprietà:
- Definitività positiva : se c'è un cerchio o una linea retta che contiene tutti i punti di
A, alloras(A) = 0. Altrimentis(A) > 0 Suriettività: è suriettiva ai numeri reali non negativi, ciò significa che per ogni numero reale non negativo
resiste un sottoinsieme finitoAdel piano tale ches(A) = r.Invarianza della traduzione:
sè invariante della traduzione ses(A) = s(A + v)per ogni vettoreve per tuttiA.Invarianza di scala:
sè invariante di scala, ses(A) = s(A * t)per tuttit≠0e per tuttiA.Continuità.
ssi dice che sia continuo se la funzionef(p) := s(A ∪ {p})(mappando il puntopa su un numero reale) è continua usando il valore assoluto standard sui numeri reali e la norma euclidea standard sui punti del piano.
In termini intuitivi, questo punteggio di non circolarità può essere considerato come qualcosa di simile al coefficiente di correlazione nella regressione lineare.
Dettagli
La tua funzione in teoria deve funzionare nei reali, ma ai fini di questa sfida puoi usare numeri in virgola mobile come sostituto. Fornisci una spiegazione della tua richiesta e una spiegazione del motivo per cui sono valide queste cinque proprietà. Puoi prendere due elenchi di coordinate o un elenco di tuple o formati simili come input. Si può presumere che nessun punto nell'input sia ripetuto, cioè tutti i punti sono unici.
snon è unico. L'unica cosa per cui potresti fare degli esempi è per la s(A) = 0quale è banale fare usando la prima proprietà.