순환 성 점수를 프로그래밍


15

귀하의 작업은 2D 평면에서 s비어 있지 않은 유한 A점 세트를 취하는 수학 함수를 프로그래밍하고 s(A)다음 특성을 만족 하는 원형 점수 를 출력하는 것입니다 .

  1. 긍정적 인 명확성 : 원 또는 모든 점을 포함하는 직선이 있다면 A그 다음은 s(A) = 0. 그렇지 않으면s(A) > 0
  2. Surjectivity : 음이 아닌 실수에 대해 추측 적입니다. 즉, 음이 아닌 모든 실수 에 대해 평면 r의 유한 하위 집합 As(A) = r있습니다.

  3. Translation Invariance (번역 불변성) : 모든 벡터 및 모든에 대해 s변하지 않는 번역 입니다.s(A) = s(A + v)vA

  4. 척도 불변 : 매번 그리고 모두에 대해 s척도 불변 입니다.s(A) = s(A * t)t≠0A

  5. 연속성. s것으로 알려져 연속 함수 경우 f(p) := s(A ∪ {p})(A 지점 매핑 p실수로)가 실수에 표준 절대 값을 이용하여 연속 한 평면의 점에서 표준 유클리드 놈.

직관적으로 말하면이 비순환 성 점수 는 선형 회귀 분석에서 상관 계수와 비슷한 것으로 생각할 수 있습니다.

세부

이론상 함수는 실제에서 작동해야하지만,이 문제를 해결하기 위해 부동 소수점 숫자를 대용으로 사용할 수 있습니다. 제출물에 대한 설명과이 5 가지 속성이 포함 된 이유를 설명하십시오. 입력으로 두 개의 좌표 목록 또는 튜플 또는 유사한 형식의 목록을 사용할 수 있습니다. 입력의 점이 반복되지 않는다고 가정 할 수 있습니다. 즉, 모든 점이 고유합니다.


1
몇 가지 테스트 사례를 추가 할 수 있습니까?
얽히고 설킨

원이 A의 모든 점을 포함한다는 것은 무엇을 의미 합니까?
H.PWiz

@ H.PWiz 원을 2d 평면의 부분 집합으로 간주하면 점이이 부분 집합의 요소 인 경우 점이 원에 포함됩니다.
flawr

@Shaggy 아니요 s고유하지 않기 때문에 불가능합니다. 당신이에 대한 사례를 만들 수있는 유일한 s(A) = 0사소한되는 첫 번째 속성을 사용 할 수 있습니다.
flawr

프로그램이 이론적으로 제로 확률로 오류를 일으킬 수 있습니까? (부동 소수점 숫자가 불연속이기 때문에 실제 확률은 0이 아닙니다) / 부동 소수점 부정확성을 무시하도록 허용합니까? 관련 메타 .
user202729

답변:


2

numpy, 116 바이트의 Python 2

from numpy import*
def f(x,y):a=linalg.lstsq(hstack((x,y,ones_like(x))),(x*x+y*y)/2);return a[1]/sum((x-a[0][0])**4)

x와 y를 2 차원 열 벡터로 사용하고 답이 포함 된 배열을 반환합니다. 이렇게하면 완벽하게 직선이거나 3 개 이하의 점이있는 빈 배열이 생깁니다. 나는 lstsq가 완벽하게 적합하면 잔차를 제공하지 않는다고 생각합니다.

설명

본질적으로 이것은 가장 적합한 원을 찾고 제곱 잔차를 얻습니다.

우리는 최소화하고 싶습니다 (x - x_center)^2 + (y - y_center)^2 - R^2. 그것은 불쾌한 및 비선형 보이지만, 우리는 같은 것을 다시 작성할 수 있습니다 x_center(-2x) + y_center(-2y) + stuff = x^2 + y^2(가) 어디, stuff여전히 불쾌한 측면에서 비선형 x_center, y_center그리고 R, 그러나 우리는 그것에 대해 신경 쓸 필요가 없습니다. 그래서 우리는 단지 해결할 수 있습니다 [-2x -2y 1][x_center, y_center, stuff]^T = [x^2 + y^2].

우리가 정말로 원한다면 R을 철회 할 수는 있지만 여기서 많은 도움이되지는 않습니다. 고맙게도 lstsq 함수는 잔차를 제공하여 대부분의 조건을 만족시킵니다. 중심을 빼고 스케일링 (R^2)^2 = R^4 ~ x^4하면 번역 및 스케일이 변하지 않습니다.

  1. 제곱 잔차가 음이 아니므로 정사각형으로 나누기 때문에 양의 확정입니다. 원을 맞추기 때문에 원과 선의 경우 0을 향하는 경향이 있습니다.
  2. 나는 그것이 의심스럽지 않다는 것을 확신하지만 좋은 경계를 얻을 수는 없습니다. 상한이 있으면 [0, bound)를 음수가 아닌 실수에 매핑 할 수 있습니다 (예 : 1 / (bound-answer)-1 / bound).
  3. 우리는 중심을 빼서 번역 적으로 변하지 않습니다.
  4. 배율 의존성을 제거하는 x ** 4로 나눕니다.
  5. 연속 기능으로 구성되어 있으므로 연속적입니다.

서브 미션이 실제로 컴퓨팅하는 내용을 자세히 설명 할 수 있습니까?
flawr

@flawr 다음에서 수정되었습니다.

t → 0에 대해 {(1, 0), (2, 0), (3, 0), (4, t)}에서 이것을 테스트하려고했지만 0 이 아닌 모든 f(array([[1.0],[2.0],[3.0],[4.0]]),array([[0.0],[0.0],[0.0],[t]]))것을 나에게주는 것처럼 보입니다 . (t = 0에서는 이것이 중단된다고 말했지만 결과는 적어도 t → 0의 경우 0에 접근해야합니다.) 잘못 부르고 있습니까? array([ 0.00925926])t
Anders Kaseorg

2

파이썬, 124 바이트

lambda A:sum(r.imag**2/2**abs(r)for a in A for b in A for c in A for d in A if a!=d!=b!=c for r in[(a-c)*(b-d)/(a-d)/(b-c)])

소요 복소수 (의 순서로 x + 1j*y) 및 요약 임 ( R ) 2 / 2 | r | A 의 4 개 점의 모든 복합 교차비 r대해 .

속성

  1. 긍정적 인 확실성.모든 항은 음이 아니며, 모든 교차 비율이 실제 값일 때 정확히 0이됩니다. 이는 점이 동일 선상에 있거나 동일 할 때 발생합니다.

  2. 주사율. 많은 포인트를 추가하여 합계를 임의로 크게 만들 수 있으므로, 연속성에서 노출 성이 따라옵니다.

  3. 번역 불일치. 교차 비율은 번역 불변입니다.

  4. 스케일 불일치. 교차 비율은 규모가 변하지 않습니다. (사실, 그것은 모든 뫼비우스 변환에서 변하지 않습니다.)

  5. 연속성. 교차 비율은 확장 복합 평면에 대한 연속 맵이며 r ↦ Im ( r ) 2 / 2 | r | (∞ ↦ 0)는 확장 된 복소 평면에서 실수까지 연속적인 맵입니다.

(참고 : 이론적으로 동일한 속성을 가진 더 예쁜 맵은 r ↦ (Im ( r ) / ( C + | r | 2 )) 2 입니다. 교차 비율의 4 개 점 모두의 등고선이 원형입니다. 원형 측정, 당신은 아마 그것을 원할 것입니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.