Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
标准差java,真方程_Java - Fatal编程技术网

标准差java,真方程

标准差java,真方程,java,Java,这是我所有的代码。我对标准偏差公式有问题。 我使用以下值运行程序: 项目数量:5个 项目:1625818024 我应该得到这个输出: 平均值:45.20 标准偏差:32.41 低于平均值:3 import java.text.DecimalFormat; import java.util.Scanner; public class array { public static void main(String[] args) { Scanner input = new Scanner(Syste

这是我所有的代码。我对标准偏差公式有问题。 我使用以下值运行程序:

项目数量:5个

项目:1625818024

我应该得到这个输出:

平均值:45.20

标准偏差:32.41

低于平均值:3

import java.text.DecimalFormat;
import java.util.Scanner;
public class array {

public static void main(String[] args) {
Scanner input = new Scanner(System.in); 
DecimalFormat df = new DecimalFormat ("#.00");
System.out.println("How many values do you want?");
int num = input.nextInt(); 
if (num< 1 || num > 100)
{
    System.out.println("Error");
    System.exit(0);
}
int[] array= valueArray(input, num);
double o= average(num,  array);
double standdev = getStdDev(array, num); 
int lessThanAvg = lessAvg ( array, num, o );
boolean sorted=isArraySorted(array, num);
System.out.println("Average: " + df.format(o));
System.out.println("Std Dev: " + df.format(standdev));
System.out.println("Less than Avg: " + lessThanAvg);
}

public static int[] valueArray (Scanner input, int num )
{
    int[] values = new int[100]; 
    System.out.println("What numbers do you want to put in?");
    for (int j = 0; j < num; j++)
    {
        values[j]=input.nextInt();

    }
    return values;
}
public static double average ( int num ,int[] values)
{
    double avg=0.0;
    for (int i = 0; i < num; i++)
    {
        avg = avg+values[i];
    }

    return avg/num;
}

public static double getStdDev (int [] values, int num)
{
    double avg = 0.0;
    double sum = 0 ;
    for (int i = 0; i < num - 1; i++)
    {

        sum = Math.sqrt ((Math.pow((values[i]-avg),2) + Math.pow((values[num-1]),2)) / num-1);


    }
    return sum;

}
public static int lessAvg ( int [] values, int num, double avg )
{
    int counter = 0;
    for (int i = 0; i < num; i++ )
    {
        if (values[i] < avg)
        {
            counter = counter + 1;
        }
    }
    return counter;
}
public static boolean isArraySorted (int [] values, int num)
{
    for (int i = 0; i < num - 2; i++)
    {
        if (values[i]>values[i+1])
        {
            System.out.println("Array is not in sorted order");
            return false;

        }
    }

     System.out.println("Array is in sorted order"); 
    return true;
}
}
数组未按排序顺序排列

相反,我得到以下输出:

数组未按排序顺序排列

平均值:45.20

标准偏差:55.60

低于平均值:3

import java.text.DecimalFormat;
import java.util.Scanner;
public class array {

public static void main(String[] args) {
Scanner input = new Scanner(System.in); 
DecimalFormat df = new DecimalFormat ("#.00");
System.out.println("How many values do you want?");
int num = input.nextInt(); 
if (num< 1 || num > 100)
{
    System.out.println("Error");
    System.exit(0);
}
int[] array= valueArray(input, num);
double o= average(num,  array);
double standdev = getStdDev(array, num); 
int lessThanAvg = lessAvg ( array, num, o );
boolean sorted=isArraySorted(array, num);
System.out.println("Average: " + df.format(o));
System.out.println("Std Dev: " + df.format(standdev));
System.out.println("Less than Avg: " + lessThanAvg);
}

public static int[] valueArray (Scanner input, int num )
{
    int[] values = new int[100]; 
    System.out.println("What numbers do you want to put in?");
    for (int j = 0; j < num; j++)
    {
        values[j]=input.nextInt();

    }
    return values;
}
public static double average ( int num ,int[] values)
{
    double avg=0.0;
    for (int i = 0; i < num; i++)
    {
        avg = avg+values[i];
    }

    return avg/num;
}

public static double getStdDev (int [] values, int num)
{
    double avg = 0.0;
    double sum = 0 ;
    for (int i = 0; i < num - 1; i++)
    {

        sum = Math.sqrt ((Math.pow((values[i]-avg),2) + Math.pow((values[num-1]),2)) / num-1);


    }
    return sum;

}
public static int lessAvg ( int [] values, int num, double avg )
{
    int counter = 0;
    for (int i = 0; i < num; i++ )
    {
        if (values[i] < avg)
        {
            counter = counter + 1;
        }
    }
    return counter;
}
public static boolean isArraySorted (int [] values, int num)
{
    for (int i = 0; i < num - 2; i++)
    {
        if (values[i]>values[i+1])
        {
            System.out.println("Array is not in sorted order");
            return false;

        }
    }

     System.out.println("Array is in sorted order"); 
    return true;
}
}
导入java.text.DecimalFormat;
导入java.util.Scanner;
公共类数组{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
DecimalFormat df=新的DecimalFormat(#.00”);
System.out.println(“您想要多少个值?”);
int num=input.nextInt();
如果(num<1 | | num>100)
{
System.out.println(“错误”);
系统出口(0);
}
int[]数组=valueArray(输入,num);
双o=平均值(num,数组);
双标准偏差=getStdDev(数组,num);
int-lessThanAvg=lessAvg(数组,num,o);
布尔排序=isArraySorted(数组,num);
System.out.println(“平均:+df.format(o));
System.out.println(“标准开发:+df.format(标准开发));
System.out.println(“小于平均值:+lessThanAvg”);
}
公共静态int[]值数组(扫描程序输入,int num)
{
int[]值=新的int[100];
System.out.println(“您想输入什么数字?”);
对于(int j=0;j值[i+1])
{
System.out.println(“数组未按顺序排序”);
返回false;
}
}
System.out.println(“数组按排序”);
返回true;
}
}

获取标准偏差

  • 找出平均值

  • 然后,对数组中的每个数字减去平均值和平方 结果

  • 然后计算出这些平方差的平均值

  • 求出它的平方根


  • 作为参考,您可以查看此

    以获得标准偏差

  • 找出平均值

  • 然后,对数组中的每个数字减去平均值和平方 结果

  • 然后计算出这些平方差的平均值

  • 求出它的平方根


  • 作为参考,您可以查看此

    您的代码比需要的复杂得多。考虑不要使用数组并围绕实际元素的数量移动;创建一个与您需要的大小完全相同的数组,稍后在迭代时只需使用该数组的.length字段!然后:你想让我们花时间来帮助你。所以请您花一分钟的时间来真正正确地缩进/格式化您的源代码。最后:您是否考虑过使用调试器或打印计算步骤?为什么你要依赖别人来检查你自己的代码?我必须用这种格式写这个程序,我还是java编程的新手。我对你循环的
    stdDev
    中的debuggerIn不是很熟悉,但是每次迭代你都要替换
    sum
    的值,你的getStdDev函数是一个大烂摊子,为什么不把average作为参数传递给函数呢?。在开始计算之前,将平均值设置为0。你的计算是错误的,即使你把平均值设置正确了,我也在说缩进。看看你上面的主要方法是什么样子!您的代码比需要的复杂得多。考虑不要使用数组并围绕实际元素的数量移动;创建一个与您需要的大小完全相同的数组,稍后在迭代时只需使用该数组的.length字段!然后:你想让我们花时间来帮助你。所以请您花一分钟的时间来真正正确地缩进/格式化您的源代码。最后:您是否考虑过使用调试器或打印计算步骤?为什么你要依赖别人来检查你自己的代码?我必须用这种格式写这个程序,我还是java编程的新手。我对你循环的
    stdDev
    中的debuggerIn不是很熟悉,但是每次迭代你都要替换
    sum
    的值,你的getStdDev函数是一个大烂摊子,为什么不把average作为参数传递给函数呢?。在开始计算之前,将平均值设置为0。你的计算是错误的,即使你把平均值设置正确了,我也在说缩进。看看你上面的主要方法是什么样子!