Achteraf blijkt het verwerken van de afzonderlijke metingen niet zo nuttig als verwacht: er zit gewoon te veel ruis in de gegevens.

In plaats daarvan neem je de som over een venster dat over drie opeenvolgende metingen loopt. Laat ons opnieuw dezelfde metingen als voorbeeld nemen:

199  A
200  A B
208  A B C
210    B C D
200  E   C D
207  E F   D
240  E F G
269    F G H
260      G H
263        H

Begin met het vergelijken van de sommen over het eerste en het tweede venster dat over drie opeenvolgende metingen loopt. De metingen in het eerste venster zijn gemarkeerd met A (199, 200, 208); hun som is \(199 + 200 + 208 = 607\). Het tweede venster is gemarkeerd met B (200, 208, 210); de som is \(618\). De som van de metingen in het tweede venster is groter dan de som van de metingen in het eerste venster, die deze eerste vergelijking levert een toename op.

Jouw opdracht is nu om te tellen hoeveel keer dat de som van de metingen in het venster van drie opeenvolgende metingen toeneemt ten opzichte van de vorige som. Je moet dus A met B vergelijken, daarna moet je B met C vergelijken, dan C met D, enzoverder. Stop wanneer er niet meer genoeg metingen zijn om nog een nieuwe som van drie metingen te maken.

In bovenstaand voorbeeld zijn dit de sommen binnen elk venster van drie opeenvolgende metingen:

A: 607 (NVT - geen voorgaande som)
B: 618 (toename)
C: 618 (geen verandering)
D: 617 (afname)
E: 647 (toename)
F: 716 (toename)
G: 769 (toename)
H: 792 (toename)

In dit voorbeeld zijn er 5 sommen die groter zijn dan de vorige som.

Opgave

Bepaal de som over een venster dat over drie opeenvolgende metingen loopt. Hoeveel van die sommen zijn groter dan de vorige som?. Bepaal dit op de volgende manier:

Voorbeeld

In deze interactieve sessie gaan we ervan uit dat de tekstbestanden sweep01.txt1 en sweep02.txt2 zich in de huidige directory bevinden.

> Submission.sonar("sweep01.txt")
5
> Submission.sonar("sweep02.txt")
1737

Epiloog

Jordan Ranson (@jordanranson3) animeerde zijn oplossing.