Laden...

NAverage: Extended mean calculation functionality for .NET

Erstellt von m0rius vor 13 Jahren Letzter Beitrag vor 11 Jahren 11.337 Views
m0rius Themenstarter:in
1.002 Beiträge seit 2007
vor 13 Jahren
NAverage: Extended mean calculation functionality for .NET

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

m0rius Themenstarter:in
1.002 Beiträge seit 2007
vor 13 Jahren

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

m0rius Themenstarter:in
1.002 Beiträge seit 2007
vor 13 Jahren

... und der Quellcode des Projektes.

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

m0rius Themenstarter:in
1.002 Beiträge seit 2007
vor 13 Jahren

Hallo zusammen,

NAverage gibt es nun auch auf CodePlex unter http://naverage.codeplex.com.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

691 Beiträge seit 2007
vor 13 Jahren

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

m0rius Themenstarter:in
1.002 Beiträge seit 2007
vor 13 Jahren

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

m0rius Themenstarter:in
1.002 Beiträge seit 2007
vor 11 Jahren

Hallo zusammen,

NAverage ist nun GitHub zu finden, genau wie ExtraLINQ auch.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg