Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

최소 산술 평균 편차를 찾는 C++ 코드

<시간/>

요소가 3개인 배열 A가 있다고 가정합니다. A[1]은 A[0] + A[2] =2 * A[1]인 경우 두 요소 A[0] 및 A[3]의 산술 평균입니다. 세 숫자 d(A[0], A[1], A[2])의 산술 평균 편차는|A[0] + A[2] - 2*A[1]|입니다. 다음 연산을 여러 번 수행할 수 있습니다. i !=j가 되도록 인덱스 {0, 1, 2}에서 두 개의 인덱스 i와 j를 선택한 다음 A[i]를 1만큼 증가시키고 A[j]를 1만큼 감소시킵니다. 산술 평균 편차의 최소값을 찾아야 합니다.

따라서 입력이 A =[2, 2, 6]과 같으면 출력은 1이 됩니다. 왜냐하면 A[0]을 줄이고 A[1]을 늘리면 배열은 [1, 3, 6]이 되기 때문입니다. 따라서 평균 편차는 |1 + 6 - 2 * 3| =1.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

a :=A[0]b :=A[1]c :=A[2]최소값 1을 반환하고 (((a + c - 2 * b) mod 3 + 3) mod 3) 

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다-

#include 네임스페이스 std;int solve(vector A){ int a =A[0]; 정수 b =A[1]; 정수 c =A[2]; return min(1, ((a + c - 2 * b) % 3 + 3) % 3);}int main(){ vector A ={ 2, 2, 6 }; cout <<해결(A) < 

입력

{ 2, 2, 6 }

출력

1