Écart type en C#
Ce tutoriel présentera les méthodes pour trouver l’écart type des éléments d’une liste en C#.
Écart type avec la méthode auto-définie en C#
L’écart type est la mesure de la dispersion par rapport à la moyenne dans les statistiques. Il est calculé en prenant le carré de la différence de chaque élément par rapport à la valeur moyenne, en ajoutant toutes les valeurs au carré, en divisant la réponse par le nombre total de valeurs et en prenant une racine carrée de la valeur résultante.
Malheureusement, il n’existe pas de méthode intégrée pour calculer l’écart type en C#. Mais, nous pouvons définir une logique pour le calculer. L’exemple de code suivant nous montre comment nous pouvons trouver l’écart type des éléments à l’intérieur d’une liste en C#.
using System;
using System.Collections.Generic;
using System.Linq;
namespace sd_list {
class Program {
static double standardDeviation(IEnumerable<double> sequence) {
double result = 0;
if (sequence.Any()) {
double average = sequence.Average();
double sum = sequence.Sum(d => Math.Pow(d - average, 2));
result = Math.Sqrt((sum) / sequence.Count());
}
return result;
}
static void Main(string[] args) {
List<double> intList = new List<double> { 1, 2, 3, 4, 5 };
double standard_deviation = standardDeviation(intList);
Console.WriteLine("Standard Deviation = {0}", standard_deviation);
}
}
}
Production:
Standard Deviation = 1.4142135623731
Dans le code ci-dessus, nous avons créé la fonction standardDeviation()
qui calcule l’écart type des éléments d’une liste de doubles en C#. Nous avons d’abord calculé la moyenne des valeurs avec la fonction sequence.Average()
. Nous avons ensuite calculé la somme du carré de la différence des valeurs individuelles par rapport à la moyenne et l’avons sauvegardée dans la variable sum
. Au final, nous avons divisé la sum
par le nombre total de valeurs et calculé sa racine carrée. Nous avons sauvegardé le résultat de ce calcul dans la variable result
et renvoyé la variable result
.
Écart type avec la fonction d’extension en C#
La logique discutée dans l’exemple précédent peut également être transformée en une fonction d’extension par souci de facilité d’utilisation. L’exemple de code suivant nous montre comment modifier la logique de l’exemple précédent en une méthode d’extension en C#.
using System;
using System.Collections.Generic;
using System.Linq;
namespace sd_list {
public static class ExtensionClass {
public static double standardDeviation(this IEnumerable<double> sequence) {
double average = sequence.Average();
double sum = sequence.Sum(d => Math.Pow(d - average, 2));
return Math.Sqrt((sum) / sequence.Count());
}
}
class Program {
static void Main(string[] args) {
List<double> intList = new List<double> { 1, 2, 3, 4, 5 };
double standard_deviation = intList.standardDeviation();
Console.WriteLine("Standard Deviation = {0}", standard_deviation);
}
}
}
Production:
Standard Deviation = 1.4142135623731
Dans le code ci-dessus, nous avons transformé notre code précédent en une méthode d’extension en C#.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn