¿Cómo crear una matriz dimensional única que contenga 100 enteros aleatorios y encontrar el valor promedio, la desviación estándar y la varianza?

Intenté intentar esto pero creo que estoy haciendo algo mal. Soy un programador de nivel principiante y realmente necesito ayuda en esto. Siento que estoy cerca de la respuesta, pero no estoy seguro de qué hay de malo en mi programa. Intento verificar mi respuesta mediante el enraizamiento cuadrado del resultado de la varianza para obtener la desviación estándar, pero no coinciden.

    import java.util.Random;
    public class Lab6 {

    public static void main(String[] args) {
    System.out.println("The Average Value is:"+avgValue());
    System.out.println("The Standard Deviation is:"+stdDev());
    System.out.println("The Variance is:"+Var());
    }

    public static int randomFill(){

    Random rand = new Random();
    int randomNum = rand.nextInt();
    return randomNum;
    }

    private static int[] anArray;

    public static int[] list() {
    anArray = new int[100];
    for(int i=0;i<anArray.length;i++)
    {
    anArray[i] = randomFill();
    }
    return anArray;
    }

    private static int sum;

    public static int avgValue() {
    int []a = list();
    for (int e:a)
    {
    sum +=e;
    }
    int n=100;
    sum=sum/n;
    return sum;
    }

    private static int pwr;

    public static int stdDev() {
    int []b = list(); 
    int dev=0;
    for (int e:b)
    {
    dev=(e-sum)+dev;
    }
    pwr=(dev*dev)/99;
    double root=Math.sqrt(pwr);
    return pwr;
    }

    public static int Var() {
    int c= pwr; 
    int opp=c*c; 
    return opp;
    }

    }
Respuesta 1

Ha pasado un tiempo desde que hice estadísticas, pero puedo señalar que su método avgValue () y su stdDev () están computando contra dos matrices int diferentes. Cuando llama a list (), obtiene una matriz diferente de enteros cada vez y sobrescribe una matriz.

Recomiendo crear la matriz dentro de su método principal y luego pasarla como parámetro a los otros métodos. Si desea seguir la ruta en la que se encuentra, cambie "int [] b = list ();" a "int [] b = anArray;" y deberías estar bien.

En general, creo que puede intentar examinar los parámetros del método y el alcance variable a continuación para mejorar su Java. Sigue en camión; Se pone más fácil.

Respuesta: 2

No recuerdo las fórmulas de varianza y desviación estándar correctamente, pero un error relacionado con la lógica de programación en su código es que ha llamado list()una vez al calcular el promedio y una vez al calcular la desviación estándar.

Cada llamada a su list()método devuelve una nueva matriz con nuevos valores aleatorios. Entonces, esencialmente, incluso si calcula la desviación estándar correctamente del código, el promedio que considera (es decir, la sumvariable) corresponde al promedio de alguna otra matriz.

Respuesta: 3

Estoy trabajando en una aplicación de Android que necesita determinar el orden de salida actual en función de los puntajes en una ronda de golf. Para aquellos de ustedes que no saben, el orden de salida (u honores) es el orden de ...

Tengo una clase DAO que tiene muchos métodos para manipular la base de datos. Estoy usando un objeto de conexión para todos los métodos como este (Database.connect () devuelve un objeto de conexión): clase ...

Estoy tratando de implementar el orden de selección de forma recursiva en Java, pero mi programa sigue lanzando una excepción ArrayIndexOutOfBounds. No estoy seguro de lo que estoy haciendo mal. La recursión es muy difícil para mí. Por favor ...

Me preguntaba cómo funcionan los applets de Java con respecto al acceso a los datos en la PC de un usuario. Por ejemplo, deseo tomar un archivo en su PC y enviarlo al servidor web que aloja mi página web (básicamente un simple ...