Sua tarefa é programar uma função matemática s, que recebe um conjunto finito não vazio Ade pontos no plano 2D e gera uma pontuação de incircularidade s(A)que satisfaz as seguintes propriedades:
- Definição positiva : se houver um círculo ou uma linha reta que contenha todos os pontos de
A, entãos(A) = 0. De outra formas(A) > 0 Surjectividade: É um adjetivo para os números reais não negativos, ou seja, para cada número real não negativo,
rexiste um subconjunto finitoAdo plano, de modo ques(A) = r.Invariância da tradução:
sé invariável à tradução ses(A) = s(A + v)para cada vetorve para todosA.Invariância da escala:
sé invariável à escala, se fors(A) = s(A * t)para todost≠0e para todosA.Continuidade.
sé considerado contínuo se a funçãof(p) := s(A ∪ {p})(mapear o ponto appara um número real) for contínua usando o valor absoluto padrão nos números reais e a norma euclidiana padrão nos pontos do plano.
Intuitivamente, esse escore de falta de circularidade pode ser pensado como algo semelhante ao coeficiente de correlação na regressão linear.
Detalhes
Sua função na teoria precisa funcionar em reais, mas, para o objetivo desse desafio, você pode usar números de ponto flutuante como substituto. Forneça uma explicação do seu envio e um argumento sobre o motivo dessas cinco propriedades. Você pode usar duas listas de coordenadas ou uma lista de tuplas ou formatos semelhantes como entrada. Você pode assumir que nenhum ponto na entrada é repetido, ou seja, todos os pontos são únicos.
snão é único. A única coisa para a qual você pode fazer exemplos é do s(A) = 0que é trivial fazer usando a primeira propriedade.