이것은 일종의 편집 거리 질문이며 매우 쉽습니다. 나는이 주제에 대해 아주 두뇌 죽었고 지금까지 이해할 수 없습니다.
일련의 숫자가 주어진다면
[3, 1, 1, 1]
최소한의 "이동"을 사용하여 모든 숫자를 어떻게 같은 숫자로 가장 효율적으로 바꿀 수 있습니까? "이동"이란 숫자에서 하나를 추가하거나 제거하는 것을 의미합니다.
위의 예에서 가장 효율적인 이동은 다음과 같습니다.
[1, 1, 1, 1]
이를 위해서는 2 번의 이동이 필요하며 첫 번째 숫자는 두 번 줄어 듭니다.
더 큰 수백 개의 숫자가 주어지면 이것을 찾는 가장 좋은 방법을 알 수 없습니다.
원래 반올림 된 평균 수 (모두 합계를 길이로 나눈 값)를 계산 한 다음 계산 된 평균으로 줄이려고 시도했지만 위의 예에서는 2 개 대신 4 개의 이동이 필요했습니다.
나는 내가 이해할 수 있다고 생각한다.
- 평균,
- 모드
- 중앙값
최소 거리를 선택하여 각각의 거리를 편집하십시오. 그러나 이것이 모든 단일 인스턴스에서 올바른지 확실하지 않습니다. 어떻게 알 수 있습니까?