首页 > 解决方案 > 发现差异

问题描述

我正在尝试添加一个静态方法来计算a的平均值,整数数组,重载a中的方法。还要计算一个双精度数组。添加一个方法来计算整数或双精度数组的总和 添加一个方法来计算整数或双精度数组的方差。添加一种方法来计算整数或双精度数组的标准差。

我已经完成了大部分代码,但是在创建计算方差的方法时遇到了问题。

我在这里尝试了不同的东西,但它总是给我一个错误,我相信 Math.Pow 是什么搞砸了。是否有另一种方法和可能更简单的方法来计算其余代码的方差?

class States
{
    private static int Sum(int[] a)
    {
        int sum = 0;

        for (int i = 0; i < a.Length; i++)
        {
            sum += a[i];
        }
        return sum;
    }

    private static double Average(int[] a)
    {
        int sum = Sum(a);
        double Avg = (double)sum / a.Length;
        return Avg;
    }

//this is where i am having trouble

    private static double Var(int[] a)

    {

        if (a.Length > 1)

        {

            double Avg = Average(a);

            double var = 0.0;



            foreach (int A in Average)

            {

                // Math.Pow to calculate variance? 

                var += Math.Pow((A - Average)), 2.0) 

            }

            return var;

        }

        else

        {

            return 0.0;

        }
        private static double StdDev(double var)
        {
            return Math.Sqrt(var);
        }
    }
}

“Foreach 不能对方法组进行操作”

标签: c#calculatorvariance

解决方案


class States
{
    private static int Sum(int[] values)
    {
        int sum = 0;
        for (int i = 0; i < values.Length; i++)
        {
            sum += values[i];
        }
        return sum;
    }

    private static double Average(int[] values)
    {
        int sum = Sum(values);
        double avg = (double)sum / values.Length;
        return avg;
    }

    //this is where i am having trouble
    public static double Variance(int[] values)
    {
        if (values.Length > 1)
        {
            double avg = Average(values);
            double variance = 0.0;
            foreach (int value in values)
            {
                // Math.Pow to calculate variance? 
                variance += Math.Pow(value - avg, 2.0);
            }
            return variance;
        }
        else
        {
            return 0.0;
        }
    }

    private static double StdDev(double var)
    {
        return Math.Sqrt(var);
    }
}

推荐阅读