首页 > 编程语言 >C++ 相关系数的计算以及作用

C++ 相关系数的计算以及作用

时间:2023-06-28 15:56:32浏览次数:37  
标签:std double 相关系数 C++ vector 计算 size sum mean

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

// 计算平均值
double mean(vector<double> v) {
    double sum = 0;
    for (int i = 0; i < v.size(); i++) {
        sum += v[i];
    }
    return sum / v.size();
}

// 计算协方差
double covariance(vector<double> x, vector<double> y) {
    double x_mean = mean(x);
    double y_mean = mean(y);
    double sum = 0;
    for (int i = 0; i < x.size(); i++) {
        sum += (x[i] - x_mean) * (y[i] - y_mean);
    }
    return sum / x.size();
}

// 计算相关系数
double correlation(vector<double> x, vector<double> y) {
    double cov = covariance(x, y);
    double x_std = sqrt(covariance(x, x));
    double y_std = sqrt(covariance(y, y));
    return cov / (x_std * y_std);
}


int main() {
    vector<double> x = { 2, 3, 4, 5, 6};
    vector<double> y = { 20, 30, 40, 50, 61};
    cout << "Correlation: " << correlation(x, y) << endl;
    return 0;
}
相关系数

 

标签:std,double,相关系数,C++,vector,计算,size,sum,mean
From: https://www.cnblogs.com/lizhiqiang0204/p/17511618.html

相关文章

  • 斜抛计算器2024下载 Skew Throw Calculator 2024 Download
    本版本可以计算斜抛运动中的重量,重力加速度,截面积,阻力因数、最大下落速度等参数之间的计算。支持中文和英文的界面。Thisversioncancalculatetheweight,Gravitationalacceleration,sectionalarea,resistancefactor,maximumfallingspeedandotherparametersinob......
  • 成绩计算系列blog
    一、前言主要学习了java的集合框架一系列知识,如,HashSet,HashMap,TreeMap等,以及对该知识的应用。这几周的作业让我们进一步掌握OOP的继承和多态性,而其中具有代表性的就是课程成绩统计系统。题目的难度中等偏上,适合用来考察学生对面向对象设计原则和异常处理的理解。题量中等,包含......
  • PHP根据身份证号码,获取性别、获取生日、计算年龄等多个信息
    /***根据身份证号码获取性别*@paramstring$idcard身份证号码*@returnint$sex性别1男2女0未知*/functionget_sex($idcard){if(empty($idcard))returnnull;$sexint=(int)substr($idcard,16,1);return$sexint%2===0?'女'......
  • 6-8次PTA题目集(成绩计算系列)分析
      前言知识点:类和对象:定义班级、学生和课程等类,并创建相应的对象;封装和访问控制:使用private、public等关键字对类的字段进行封装和访问控制;集合类:使用ArrayList或者其他集合类存储学生和课程信息;输入输出:通过控制台或者文件读写来输入和输出学生课程成绩信息;循环和条......
  • c++中static_cast用法
    static_cast是指显性类型强制转换,如: 结果为a=120.和C语言学习时的显性意义一样,但是编译器会对此类型转换进行检查。另外还有另外3种转换:const属性用const_cast。基本类型转换用static_cast。多态类之间的类型转换用daynamic_cast。不同类型的指针类型转换用reinterprete......
  • 机器人与计算机视觉实战
    开发环境WindowsWSL2上安装Ubuntu22.04(直接在ubuntu上运行也可以的)ROS2Pytorch2.0安装教程Ubuntu安装本文介绍如何在Windows上安装wsl2,再安装Ubuntu22.04。wsl2是WindowsSubsystemforLinux的第二代版本,它可以让Windows用户在不需要虚拟机或双系统的情况下,直接在Windows上运行......
  • C++入门
    c++入门--变量与基本类型如果你还没有接触过编程,想先体验一下编程的乐趣。请看我的c++入门(1)--输入输出,代码运行顺序及其控制。此文开始学习变量以及基本类型。原始内置类型(PrimitiveBuild-inTypes)两类:算术类型(arithmetictypes)和void。我们主要讲解算术类型。算术类型(Arithmetic......
  • C++ 命名空间
     假设这样一种情况,当一个班上有两个名叫Zara的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。同样的情况也出现在C++应用程序中。例如,您可能会写一个名为xyz()的函数,在另一个可用的库中也存在一个相同的......
  • C/C++自助点餐系统[2023-06-28]
    C/C++自助点餐系统[2023-06-28]面向对象程序课程设计任务书【题目】自助点餐系统【目的】通过设计一个小型的自助点餐系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。【要求】1、每个学生必须独立完成;......
  • C++ - 连接mysql数据库
    1.准备工作1.1把libmysql.dll和libmysql.lib文件复制到工程目录下首先,我们要找到刚刚开始下载的MySQL数据库的安装目录,打开目录,并且将libmysql.dll文件和libmysql.lib文件复制到工程目录下~我安装MySQL的路径:C:\ProgramFiles\MySQL\MySQLServer5.7\lib 1.2......