Для двух наборов случайных величин найдите ковариацию. Ковариация - это мера того, насколько две случайные величины изменяются вместе. Это похоже на дисперсию, но там, где дисперсия говорит вам, как изменяется одна переменная, ковариация сообщает вам, как две переменные изменяются вместе. Ковариацию можно рассчитать по формуле
Где x 'и y' - средние значения двух данных множеств.
Examples:
Input : arr1[] = {65.21, 64.75, 65.26, 65.76, 65.96}
arr2[] = {67.25, 66.39, 66.12, 65.70, 66.64}
Output : -0.0580511
Input : arr1[] = {5, 20, 40, 80, 100}
arr2[] = {10, 24, 33, 54, 10}
Output : 187.75
Recommended: Please try your approach on {IDE} first, before moving on to the solution.
C++
#include<bits/stdc++.h>
using namespace std;
float mean( float arr[], int n)
{
float sum = 0;
for ( int i = 0; i < n; i++)
sum = sum + arr[i];
return sum / n;
}
float covariance( float arr1[], float arr2[], int n)
{
float sum = 0;
for ( int i = 0; i < n; i++)
sum = sum + (arr1[i] - mean(arr1, n)) *
(arr2[i] - mean(arr2, n));
return sum / (n - 1);
}
int main()
{
float arr1[] = {65.21, 64.75, 65.26, 65.76, 65.96};
int n = sizeof (arr1) / sizeof (arr1[0]);
float arr2[] = {67.25, 66.39, 66.12, 65.70, 66.64};
int m = sizeof (arr2) / sizeof (arr2[0]);
if (m == n)
cout << covariance(arr1, arr2, m);
return 0;
}
|
Java
import java.io.*;
class GFG {
static float mean( float arr[], int n)
{
float sum = 0 ;
for ( int i = 0 ; i < n; i++)
sum = sum + arr[i];
return sum / n;
}
static float covariance( float arr1[],
float arr2[], int n)
{
float sum = 0 ;
for ( int i = 0 ; i < n; i++)
sum = sum + (arr1[i] - mean(arr1, n)) *
(arr2[i] - mean(arr2, n));
return sum / (n - 1 );
}
public static void main (String[] args) {
float arr1[] = { 65 .21f, 64 .75f,
65 .26f, 65 .76f, 65 .96f};
int n = arr1.length;
float arr2[] = { 67 .25f, 66 .39f,
66 .12f, 65 .70f, 66 .64f};
int m = arr2.length;
if (m == n)
System.out.println(covariance(arr1, arr2, m));
}
}
|
Python3
import math
def mean(arr, n):
sum = 0
for i in range ( 0 , n):
sum = sum + arr[i]
return sum / n
def covariance(arr1, arr2, n):
sum = 0
for i in range ( 0 , n):
sum = ( sum + (arr1[i] - mean(arr1, n)) *
(arr2[i] - mean(arr2, n)))
return sum / (n - 1 )
arr1 = [ 65.21 , 64.75 , 65.26 , 65.76 , 65.96 ]
n = len (arr1)
arr2 = [ 67.25 , 66.39 , 66.12 , 65.70 , 66.64 ]
m = len (arr2)
if (m = = n):
print (covariance(arr1, arr2, m))
|
C#
using System;
class GFG {
static float mean( float []arr, int n)
{
float sum = 0;
for ( int i = 0; i < n; i++)
sum = sum + arr[i];
return sum / n;
}
static float covariance( float []arr1,
float []arr2, int n)
{
float sum = 0;
for ( int i = 0; i < n; i++)
sum = sum + (arr1[i] - mean(arr1, n)) *
(arr2[i] - mean(arr2, n));
return sum / (n - 1);
}
public static void Main () {
float []arr1 = {65.21f, 64.75f,
65.26f, 65.76f, 65.96f};
int n = arr1.Length;
float []arr2 = {67.25f, 66.39f,
66.12f, 65.70f, 66.64f};
int m = arr2.Length;
if (m == n)
Console.WriteLine(covariance(arr1, arr2, m));
}
}
|
PHP
<?php
function mean( $arr , $n )
{
$sum = 0;
for ( $i = 0; $i < $n ; $i ++)
$sum = $sum + $arr [ $i ];
return $sum / $n ;
}
function covariance( $arr1 , $arr2 , $n )
{
$sum = 0;
for ( $i = 0; $i < $n ; $i ++)
$sum = $sum + ( $arr1 [ $i ] -
mean( $arr1 , $n )) *
( $arr2 [ $i ] -
mean( $arr2 , $n ));
return $sum / ( $n - 1);
}
$arr1 = array (65.21, 64.75, 65.26,
65.76, 65.96);
$n = count ( $arr1 );
$arr2 = array (67.25, 66.39, 66.12,
65.70, 66.64);
$m = count ( $arr2 );
if ( $m == $n )
echo covariance( $arr1 , $arr2 , $m );
?>
|
Javascript
<script>
function mean(arr, n)
{
let sum = 0;
for (let i = 0; i < n; i++)
sum = sum + arr[i];
return sum / n;
}
function covariance(arr1, arr2, n)
{
let sum = 0;
for (let i = 0; i < n; i++)
sum = sum + (arr1[i] - mean(arr1, n)) *
(arr2[i] - mean(arr2, n));
return sum / (n - 1);
}
let arr1 = [ 65.21, 64.75, 65.26, 65.76, 65.96 ];
let n = arr1.length;
let arr2 = [ 67.25, 66.39, 66.12, 65.70, 66.64 ];
let m = arr2.length;
if (m == n)
document.write(covariance(arr1, arr2, m));
</script>
|
Выход:
-0,0580511
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.