[kotlin] 코틀린으로 이동 평균 알고리즘 구현하기

이동 평균은 일련의 수치 데이터에서 일정한 구간을 선택하여 해당 구간의 평균을 구하는 방법입니다.

이동 평균의 개념

이동 평균은 데이터의 변동을 완화하고 추세를 파악하는 데 유용합니다. 이동 평균을 구할 때는 데이터를 일정한 구간으로 나누어 해당 구간의 평균을 구합니다. 이를 통해 추세를 파악할 수 있고, 변동이 큰 데이터의 불규칙성을 줄일 수 있습니다.

코틀린으로 이동 평균 알고리즘 구현

다음은 코틀린으로 간단한 이동 평균 알고리즘을 구현하는 예제입니다.

fun movingAverage(data: List<Double>, windowSize: Int): List<Double> {
    val result = mutableListOf<Double>()
    var windowSum = 0.0
    for (i in data.indices) {
        if (i >= windowSize) {
            windowSum -= data[i - windowSize]
        }
        windowSum += data[i]
        if (i >= windowSize - 1) {
            result.add(windowSum / windowSize)
        }
    }
    return result
}

fun main() {
    val data = listOf(3.5, 2.5, 4.0, 5.0, 3.5, 4.5, 5.5, 6.0)
    val windowSize = 3
    val result = movingAverage(data, windowSize)
    println("이동 평균: $result")
}

위 예제에서 movingAverage 함수는 주어진 데이터와 윈도우 크기에 대해 이동 평균을 계산합니다. 이 알고리즘은 데이터의 인덱스에 따라 윈도우 크기만큼의 데이터를 더하여 평균을 구하고, 결과를 반환합니다.

마무리

코틀린을 사용하여 이동 평균 알고리즘을 구현하는 방법을 알아보았습니다. 데이터의 추세를 파악하고 불규칙성을 줄이는 데 유용한 이동 평균은 실제 데이터 분석 및 예측에 널리 활용됩니다.

이번 포스트에서는 간단한 이동 평균 알고리즘을 구현하고 활용하는 방법을 살펴보았습니다.

참고 문헌: