C#使用Linq和Loop计算集合的平均值、方差【标准差】
发布人:shili8
发布时间:2025-01-28 17:44
阅读次数:0
**计算集合的平均值、方差和标准差**
=====================================在 C# 中,我们可以使用 LINQ 或循环来计算集合中的平均值、方差和标准差。下面是使用 LINQ 和循环的方法。
### 使用 LINQ 计算平均值、方差和标准差首先,让我们看一下如何使用 LINQ 来计算集合中的平均值、方差和标准差。
csharpusing System; using System.Linq; public class Program{ public static void Main() { // 定义一个数字数组 int[] numbers = {1,2,3,4,5 }; // 使用 LINQ 计算平均值、方差和标准差 double average = CalculateAverage(numbers); double variance = CalculateVariance(numbers); double standardDeviation = CalculateStandardDeviation(numbers); Console.WriteLine("平均值:" + average); Console.WriteLine("方差:" + variance); Console.WriteLine("标准差:" + standardDeviation); } // 使用 LINQ 计算平均值 public static double CalculateAverage(int[] numbers) { return numbers.Average(); } // 使用 LINQ 计算方差 public static double CalculateVariance(int[] numbers) { double average = CalculateAverage(numbers); return numbers.Select(n => Math.Pow(n - average,2)).Average(); } // 使用 LINQ 计算标准差 public static double CalculateStandardDeviation(int[] numbers) { return Math.Sqrt(CalculateVariance(numbers)); } }
### 使用循环计算平均值、方差和标准差下面是使用循环来计算集合中的平均值、方差和标准差。
csharpusing System; public class Program{ public static void Main() { // 定义一个数字数组 int[] numbers = {1,2,3,4,5 }; // 使用循环计算平均值、方差和标准差 double average = CalculateAverage(numbers); double variance = CalculateVariance(numbers); double standardDeviation = CalculateStandardDeviation(numbers); Console.WriteLine("平均值:" + average); Console.WriteLine("方差:" + variance); Console.WriteLine("标准差:" + standardDeviation); } // 使用循环计算平均值 public static double CalculateAverage(int[] numbers) { int sum =0; foreach (int number in numbers) { sum += number; } return (double)sum / numbers.Length; } // 使用循环计算方差 public static double CalculateVariance(int[] numbers) { double average = CalculateAverage(numbers); double sumOfSquares =0; foreach (int number in numbers) { sumOfSquares += Math.Pow(number - average,2); } return sumOfSquares / numbers.Length; } // 使用循环计算标准差 public static double CalculateStandardDeviation(int[] numbers) { return Math.Sqrt(CalculateVariance(numbers)); } }
### 总结在本文中,我们使用 LINQ 和循环来计算集合中的平均值、方差和标准差。LINQ 是一种更高效的方法,但循环也可以实现相同的效果。
**注意**
* 在实际应用中,应考虑到数据量较大的情况下使用 LINQ 的性能。
* 使用循环时,请确保正确处理边界条件(如空数组或单个元素)。
* 如果需要计算多维数据的平均值、方差和标准差,请分别使用 `Average()` 和 `Sum()` 方法来计算每个维度的平均值和总和,然后再进行进一步的计算。