Hallo liebe Community!
Die Klassenbibliothek [TT]NAverage[/TT] bietet diverse Methoden zur Berechnung von Mittelwerten an. Mit LINQ hat die Erweiterungsmethode [TT]Enumerable.Average()[/TT] in das .NET-Framework Einzug gefunden, die das arithmetische Mittel einer numerischen Collection berechnet. Weitere Mittelwertsberechnungsmöglichkeiten fehlen jedoch und sollen durch diese Komponente ergänzt werden.
Zur Zeit wird die Berechnung folgender Mittelwerte unterstützt:
*Arithmetisches Mittel (s. arithmetic mean)
*Geometrisches Mittel (s. geometric mean)
*Harmonisches Mittel (s. harmonic mean)
*Arithmetisch-geometrisches Mittel (s. arithmetic-geometric mean)
*Quadratisches Mittel (s. quadratic mean)
*Trunkiertes Mittel (s. truncated mean)
*Winsorisiertes Mittel (s. winsorized mean)
*Median (s. median)
*Modus bzw. Modi (s. mode)
*Spannweitenmitte (s. midrange)
In den weiteren Beiträgen findet ihr die bereits kompilierte DLL sowie den Quelltext des Projektes. Hier habe ich die Methodensignaturen der statischen Klasse AverageExtensions
angehängt, die sowohl Erweiterungsmethoden als auch statische Methoden zur Mittelwertsberechnung zur Verfügung stellt.
m0rius
P.S: Vielen Dank an zommi für seine Hilfe bei der Implementierung der Funktionalität zur Berechnung des Modus bzw. der Modi!
Schlagwörter: NAverage, Average, Mean, Mittelwert, Mittel, Durchschnitt, Avg, Arithmetic, Arithmetisches, Geometric, Geometrisches, Arithmetic-Geometric, Arithmetisch-Geometrisches, Harmonic, Harmonisches, Quadratic, Quadratisches, Truncated, Trunkiertes, Winsorized, Winsorisiertes, Median, Mode, Modusk, Modes, Modi, Midrange, Spannweitenmitte
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hier die DLL ...
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
... und der Quellcode des Projektes.
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Hallo,
mir ist ein Verbesserungsvorschlag aufgefallen.
Die Rechenzeit um den Median eines IEnumerable zu finden kannst du noch verkürzen.
Wenn ich das eben aus der MSDN richtig gelesen habe, dann wird dein Median in O(n*log(n)) bestimmt, wobei n die Anzahl der Listenelemente ist.
Solltest du noch Spaß am verbessern haben, dann kannst du die Strategie "Median der Mediane" implementieren, die den Median in O(n) bestimmt
mit freundlichen Grüßen,
Tomot
Projekte: www.gesellschaftsspieler-gesucht.de
Hallo Tomit,
vielen Dank für deinen Verbesserungsvorschlag!
Ich werde mal sehen, wann und ob ich dazu komme, die Berechnung zu optimieren – zur Zeit habe ich ziemlich viel um die Ohren.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg