Programa para calcular la Varianza de los primeros N Números Naturales

Dado un número entero N , la tarea es encontrar la varianza de los primeros N números naturales.

La varianza se usa para determinar qué tan lejos se dispersan los datos de su valor promedio. Generalmente se representa con el símbolo σ 2 y la ecuación para encontrar la varianza generalmente viene dada por la siguiente ecuación: 
 

norte yo = 1 (x yo – media(x)) 2 / norte

donde N es el número total de datos

Ejemplos:

Entrada: 5
Salida: 2
Explicación: 
Media de los primeros 5 números = (1 + 2 + 3 + 4 + 5) / 5 = 3 
Por lo tanto, Varianza = ((1 – 3) 2 + (2 – 3) 2 + ( 3 – 3) 2 +(4 – 3) 2 +(5 – 3) 2 ) / 5 = (4 + 1 + 0 + 1 + 4) / 5 = 10 / 5.

Entrada: 4
Salida: 1,25
Explicación: 
Media de los primeros 4 números = (1 + 2 + 3 + 4) / 4 = 2,5 
Por lo tanto, Varianza = ((1 – 2,5) 2 + (2 – 2,5) 2 + (3 – 2,5) ) 2 + (4 – 2,5) 2 ) / 4 = (2,25 + 0,25 + 0,25 + 2,25) / 4 = 5 / 4.

Enfoque ingenuo: el enfoque simple para resolver este problema es calcular primero el valor medio de los primeros N números naturales y luego atravesar el rango [1, N] y calcular la varianza. 

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Solución eficiente: la solución anterior se puede optimizar simplificando las fórmulas de media y varianza mencionadas anteriormente y utilizando las propiedades de la suma de los primeros N números naturales y la suma de los cuadrados de los primeros N números naturales , como se muestra a continuación. 

.Por lo tanto, calcule (N 2 – 1) / 12 e imprímalo como el resultado requerido.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ Program to implement
// the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate Variance
// of first N natural numbers
long double find_Variance(int n)
{
    long long int numerator = n * n - 1;
    long double ans = (numerator * 1.0) / 12;
    return ans;
}
 
// Driver Code
int main()
{
    int N = 5;
 
    cout << fixed << setprecision(6)
         << find_Variance(N);
}

Java

// Java program to implement
// the above approach
class GFG{
 
// Function to calculate Variance
// of first N natural numbers
static double find_Variance(int n)
{
    long  numerator = n * n - 1;
    double ans = (numerator * 1.0) / 12;
    return ans;
}
 
// Driver Code
public static void main(String[] args)
{
    int N = 5;
     
    System.out.println(find_Variance(N));
}
}
 
// This code is contributed by AnkThon

Python3

# Python3 program to implement
# the above approach
 
# Function to calculate Variance
# of first N natural numbers
def find_Variance(n):
     
    numerator = n * n - 1
    ans = (numerator * 1.0) / 12
     
    return ans
 
# Driver Code
if __name__ == '__main__':
     
    N = 5
 
    a = find_Variance(N)
 
    print("{0:.6f}".format(a))
 
# This code is contributed by mohit kumar 29

C#

// C# program to implement
// the above approach
using System;
class GFG
{
 
    // Function to calculate Variance
    // of first N natural numbers
    static double find_Variance(int n)
    {
        long  numerator = n * n - 1;
        double ans = (numerator * 1.0) / 12;
        return ans;
    }
     
    // Driver Code
    public static void Main(string[] args)
    {
        int N = 5;
        Console.WriteLine(find_Variance(N));
    }
}
 
// This code is contributed by AnkThon

Javascript

<script>
 
// Javascript program to implement
// the above approach
  
// Function to calculate Variance
// of first N natural numbers
function find_Variance(n)
{
    var numerator = n * n - 1
    var ans = (numerator * 1.0) / 12
      
    return ans
}
   
// Driver Code
var N = 5;
 
document.write (find_Variance(N).toFixed(6));
 
// This code is contributed by bunnyram19
 
</script>
Producción: 

2.000000

 

Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por AyushMalik y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *