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>
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