File size: 485 Bytes
03a907a
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from dataset.problem_18.math_utils import clamp


def moving_average(nums: list[int], window: int) -> list[float]:
    """Simple moving average over a fixed window."""
    if window <= 0:
        raise ValueError("window must be positive")

    window = clamp(window, 1, len(nums))
    out = []
    # BUG: end index is off-by-one; misses final valid window.
    for i in range(0, len(nums) - window):
        out.append(sum(nums[i : i + window]) / window)
    return out