Ваше завдання - запрограмувати математичну функцію s
, яка займає не порожній кінцевий набір A
точок у двовимірній площині та виводить оцінку некруглості, s(A)
яка задовольняє наступним властивостям:
- Позитивна визначеність : Якщо є коло або пряма, яка містить усі точки
A
, тоs(A) = 0
. Інакшеs(A) > 0
Сюрєктивність: це сюрприз до негативних дійсних чисел, це означає, що для кожного негативного дійсного числа
r
існує кінцеве підмножинаA
площини, така щоs(A) = r
.Інваріація
s
перекладу: інваріантнаs(A) = s(A + v)
для перекладу, якщо для кожного вектораv
і для всіхA
.Інваріантність масштабу:
s
інваріантність масштабів, якщоs(A) = s(A * t)
для кожногоt≠0
і для всіхA
.Неперервність.
s
кажуть, що є безперервним, якщо функціяf(p) := s(A ∪ {p})
(відображення точкиp
на дійсне число) є безперервною, використовуючи стандартне абсолютне значення на дійсні числа, а стандартну евклідову норму в точках площини.
Інтуїтивно кажучи, цей показник нециркулярності можна розглядати як щось подібне до коефіцієнта кореляції в лінійній регресії.
Деталі
Теоретично ваша функція повинна працювати в реальному масштабі, але для цілей цього завдання ви можете використовувати номери з плаваючою комою як заміну. Укажіть, будь ласка, пояснення вашого подання та аргумент, чому ці п’ять властивостей є. Ви можете взяти два списки координат або список кортежів або подібні формати для введення. Можна припустити, що жодна точка введення не повторюється, тобто всі точки є унікальними.
s
не є унікальним. Єдине, для чого ви могли б зробити приклади - s(A) = 0
це тривіально зробити, використовуючи першу властивість.