과제에 대해 수학적 문제를 해결해야합니다. 다음과 같이 좁혀졌습니다 :A [i]와 상수의 차이의 최소 합 찾기
A[1, ... ,n]
을 n
의 정수로 지정하십시오.
y
을 정수 상수로 둡니다.
M(y) = Sum |A[i] - y|, i = 1 to n
:
는 지금, 나는 O(n)
시간에 M(y)
의 최소를 발견하는 알고리즘을 작성해야합니다. 나는 단지 A[i] - y
을 취하지 만, 절대 값은 |A[i] - y|
입니다.
명확성을 위해이 방정식을 Wolfram Alpha에 넣습니다.
나는 최소 제곱 법을 고려했으나, M(y)
의 최소값을 산출하지는 않지만, 평균값은 A
입니다. A[i] - y
의 절대 값을 사용하고 있으므로이 함수를 y
과 구별 할 수있는 방법이 없습니다. 또한 나는 단지 O(n)
시간에 그것을해야하기 때문에 어떤 알고리즘을 생각해 낼 수 없다. 또한, 어떤 경우에는 y
에 대해 더 정확한 답이있을 수 있다고 생각합니다.이 경우 y
의 값은 A
의 정수 요소 중 하나와 같아야합니다.
이것은 지금 정말로 일주일 내내 나를 먹었으며 아직 이해하지 못했습니다. 누구든지 저에게 올바른 방향으로 나를 가르키거나 가르쳐 줄 방법을 가르쳐 주실 수 있습니까? 나는 붙어있다. 도와 주셔서 정말 감사합니다.
중간 값을 찾고 있습니다. 저는 그것을 대답으로 설명하려고합니다. – Nelfeal
@Nelxiost가 맞습니다. 'y'를'A'의 중앙값으로 설정하면 최소'M (y)'가됩니다. 선형 시간의 중간 값 *을 사용하여 중앙값을 계산할 수 있습니다. –
정말 고마워요! 그러나 어떻게이 방법을 증명할 수 있습니까? – Anteino