输入格式:
第一行输入一个整数n
第二行输入n个整数
输出格式:
输出一个浮点数,保留五位小数,四舍五入。比如答案为2.333336,就输出2.33334
样例输入1:
3
7 1 3
1 2 1
样例输出1:
2.00000
样例输入2:
10
2 3 5 7 11 13 17 19 23 29
6 5 4 3 2 1 2 3 4 5
样例输出2:
2.75000
大家可以给个思路么?
求两个数列的协方差的问题
协方差表示两个数列之间的相关性,协方差越大,相关性越高,协方差越小,相关性越低。
协方差的计算公式:Cov(X, Y) = E[(X - EX)(Y - EY)]
其中,EX和EY分别是X和Y的均值。
别说思路了,给一段C++代码吧
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int n;
cin>>n;
double a[n],b[n];
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++) cin>>b[i];
double sum=0;
for(int i=0;i<n;i++) sum+=(a[i]*b[i]);
double res=sum/n;
cout<<fixed<<setprecision(5)<<res<<endl;
return 0;
}
代码如下,仅供参考!
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int b[n];
for (int i = 0; i < n; i++) {
scanf("%d", &b[i]);
}
float sum = 0;
for (int i = 0; i < n; i++) {
sum += (float)a[i] / b[i];
}
printf("%.5f", round(sum / n * 10000) / 10000);
return 0;
}