Deviazione standard in C#

Muhammad Maisam Abbas 15 febbraio 2024
  1. Deviazione standard con il metodo auto-definito in C#
  2. Deviazione standard con la funzione di estensione in C#
Deviazione standard in C#

Questo tutorial introdurrà i metodi per trovare la deviazione standard degli elementi di una lista in C#.

Deviazione standard con il metodo auto-definito in C#

La deviazione standard è la misura della dispersione dalla media nelle statistiche. Viene calcolato prendendo il quadrato della differenza di ogni elemento dal valore medio, sommando tutti i valori al quadrato, dividendo la risposta per il numero totale di valori e prendendo una radice quadrata del valore risultante.

deviazione standard

Sfortunatamente, non esiste un metodo predefinito per calcolare la deviazione standard in C#. Ma possiamo definire una logica per calcolarlo. L’esempio di codice seguente mostra come trovare la deviazione standard degli elementi all’interno di una lista in 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);
    }
  }
}

Produzione:

Standard Deviation = 1.4142135623731

Nel codice sopra, abbiamo creato la funzione standardDeviation() che calcola la deviazione standard degli elementi di una lista di double in C#. Per prima cosa abbiamo calcolato la media dei valori con la funzione sequence.Average(). Abbiamo quindi calcolato la somma del quadrato della differenza dei singoli valori dalla media e l’abbiamo salvata nella variabile sum. Alla fine, abbiamo diviso la sum per il numero totale di valori e calcolato la sua radice quadrata. Abbiamo salvato il risultato di questo calcolo all’interno della variabile result e restituito la variabile result.

Deviazione standard con la funzione di estensione in C#

La logica discussa nell’esempio precedente può anche essere trasformata in una funzione di estensione per motivi di facilità d’uso. L’esempio di codice seguente mostra come modificare la logica dell’esempio precedente in un metodo di estensione in 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);
    }
  }
}

Produzione:

Standard Deviation = 1.4142135623731

Nel codice precedente, abbiamo trasformato il nostro codice precedente in un metodo di estensione in C#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Articolo correlato - Csharp Math