C#求中位数

            static void Main(string[] args)
        {
            int[] num1 = { 1, 3 };
            int[] num2 = { 2 ,4};
            List<int> lis = new List<int>();
            lis.AddRange(num1);
            lis.AddRange(num2);
            int[] num3 = lis.ToArray();
            Array.Sort(num3);
            double med;
            int len = num3.Length;
            if (len % 2 == 0)        
                med = (num3[len / 2] + num3[len / 2 - 1]) / 2d;                                   
            else
                med = num3[len / 2];        
            Console.WriteLine(med);
        }

C#中,处理数据集中的极端值和寻找中位数通常用于数据分析和预处理阶段,有助于提高模型的稳定性和准确性。以下是关于这两个主题的基本解释: 1. **去极值(Outlier Detection)**: - **离群点检测**:当数据集中有异常值(显著偏离其他值的数据点),可能会对分析结果产生负面影响。常见的去极值方法包括Z-score方法(计算每个值与平均值的距离除以标准差)、IQR方法(四分位距,基于数据分布的上四分位数与下四分位数之间的距离)等。 - **代码示例**: ```csharp double[] numbers = ...; // 数据数组 double mean = numbers.Average(); double stdDev = numbers.StandardDeviation(); // 或者计算标准差 double threshold = mean + (stdDev * 3); // 使用三倍标准差规则 numbers = numbers.Where(n => n <= threshold && n >= mean - threshold).ToArray(); ``` 2. **中位数解(Median Calculation)**: - 中位数是一组数值中间的值,将它们按顺序排列后,处于中间位置的那个数。对于整数数组,如果长度是奇数,直接取中间的元素;如果是偶数,则取中间两个数的平均值。 - **代码示例**: ```csharp List<double> sortedNumbers = numbers.OrderBy(n => n).ToList(); if (sortedNumbers.Count % 2 == 0) median = (sortedNumbers[sortedNumbers.Count / 2] + sortedNumbers[sortedNumbers.Count / 2 - 1]) / 2; else median = sortedNumbers[sortedNumbers.Count / 2]; ``` 注意,这里假设`numbers`是一个已经排序的数字列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值