LINQ: Datenstromanalyse mit Gruppierung und Filterung nach gleitendem Fenster
C#
Hard
LINQ
Aufgabe «LINQ: Datenstromanalyse mit Gruppierung und Filterung nach gleitendem Fenster»
Schreiben Sie ein Programm in C#, das eine Folge von ganzen Zahlen (mindestens 10) einliest. Verwenden Sie LINQ, um eine Analyse durchzuführen: Gruppieren Sie die Zahlen nach ihrem Wert und behalten Sie nur die Gruppen, bei denen die Anzahl der Elemente größer als 1 ist. Berechnen Sie dann für jede dieser Gruppen das arithmetische Mittel aller Elemente, die sich in einem gleitenden Fenster der Größe 3 befinden (d.h. für jedes Tripel aufeinanderfolgender Elemente in der ursprünglichen Sequenz, bei dem mindestens ein Element zur Gruppe gehört). Wenn das Fenster mindestens ein Element der Gruppe enthält, fügen Sie dessen Mittelwert zum Ergebnis hinzu. Geben Sie die absteigend sortierten Mittelwerte mit einer Genauigkeit von zwei Nachkommastellen aus. Wenn es keine passenden Fenster gibt, geben Sie "No data" aus.
Eingabeformat
In der ersten Zeile eine ganze Zahl N (10 ≤ N ≤ 1000). Danach N Zeilen, jede enthält eine ganze Zahl.
Ausgabeformat
Eine Zeile mit Zahlen, getrennt durch Leerzeichen, jede mit zwei Nachkommastellen, absteigend sortiert. Oder "No data".
Beispiele
Beispiel 1
EINGABE
12
1
2
2
3
4
4
5
6
6
7
8
8
AUSGABE
7.67 7.00 6.33 5.67 5.00 4.33 3.67 3.00 2.33 1.67
Beispiel 2
EINGABE
3
1 2 3
AUSGABE
No data
main.cs