The average so far, after every reading
A quality chart plots not each reading but the average of everything measured up to that point, so a late wobble does not swing the line.
- Every reading is zero or more.
- After each reading, report the mean of every reading so far.
- Drop the fraction — the mean is rounded down to a whole number.
- An empty run of readings gives an empty result.
runningAverage(readings: list<int>) → list<int>
Go needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.
Where you start
func runningAverage(readings []int) []int {
}
Worked examples
| Call | Result |
|---|---|
runningAverage([]int{10, 20, 30}) | []int{10, 15, 20} |
runningAverage([]int{1, 2}) | []int{1, 1} |
runningAverage([]int{5}) | []int{5} |
runningAverage([]int{}) | []int{} |
Hint
Carry the running total and divide by how many readings you have seen. Do not re-add the list each step.
Reference solution in Go
func runningAverage(readings []int) []int {
out := []int{}
total := 0
for i, reading := range readings {
total += reading
out = append(out, total/(i+1))
}
return out
}