首页 > 其他分享 >常用的统计数学函数:sum, sd, mean, cv

常用的统计数学函数:sum, sd, mean, cv

时间:2023-07-19 14:57:04浏览次数:38  
标签:__ Last Val Ty sum const mean cv First

/***********************************************************************
 * @file math.h
 * @ingroup math
 * @author wangqing
 * @date 2020-05-14
 * @brief 常用统计计算
 ***********************************************************************/

#ifndef __MATH_H__
#define __MATH_H__

#include <cmath>
#include <iterator>
#include <numeric>

namespace math {
using namespace std;
template <class _InIt, class _Ty>
inline _Ty sum(const _InIt _First, const _InIt _Last, _Ty _Val) {
    _Adl_verify_range(_First, _Last);
    return _Val = accumulate(_First, _Last, _Val);
}

template <class _InIt, class _Ty>
inline _Ty mean(const _InIt _First, const _InIt _Last, _Ty _Val) {
    _Adl_verify_range(_First, _Last);
    return _Val = accumulate(_First, _Last, _Val) / distance(_First, _Last);
}

template <class _InIt, class _Ty>
inline _Ty sd(const _InIt _First, const _InIt _Last, _Ty _Val) {
    _Adl_verify_range(_First, _Last);
    auto   m = mean(_First, _Last, _Val);
    double accum{};
    for_each(
        _First, _Last, [&](decltype(*_First) d) { accum += pow((d - m), 2); });
    return _Val = sqrt(accum / distance(_First, _Last));
    return _Val;
}

template <class _InIt, class _Ty>
inline _Ty cv(const _InIt _First, const _InIt _Last, _Ty _Val) {
    _Adl_verify_range(_First, _Last);
    auto m      = mean(_First, _Last, _Val);
    auto s      = sd(_First, _Last, _Val);
    return _Val = s / m * 100;
}
}  // namespace math
#endif  // __MATH_H__

#endif // __MATH_H__

标签:__,Last,Val,Ty,sum,const,mean,cv,First
From: https://www.cnblogs.com/faithlocus/p/17565549.html

相关文章

  • [LeetCode] 2461. Maximum Sum of Distinct Subarrays With Length K
    Youaregivenanintegerarray nums andaninteger k.Findthemaximumsubarraysumofallthesubarraysof nums thatmeetthefollowingconditions:Thelengthofthesubarrayis k,andAlltheelementsofthesubarrayare distinct.Return themaxim......
  • poj 1844 sum (数学)
    题意:给出一个数S,从1到N个数,每个数前面可以是负号或者是正号,这样累加起来,结果可以等于S,问最小的N是多少。题解:因为从1一直加到n的值(假设为sum(n))等于sum的n是最小的。所以我们先算出sum(n)大于等于sum的那个n。这样我们可以得出一个值m=sum(n)-sum.如果m==0那么n就是我们要求的......
  • python 使用OpenCV进行目标检测和识别的完整示例
    #导入OpenCV库importcv2#加载图像image=cv2.imread('image.jpg')#创建Haar级联分类器cascade_classifier=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')#检测目标图像中的行人gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)faces=ca......
  • SMU Summer 2023 Contest Round 4
    SMUSummer2023ContestRound4A-TelephoneNumber思路:满足有8,且8后有大于等于11个数#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongtypedefpair<int,int>PII;typedefpair<string,int>PSI;typedefpair<char,int>PCI;type......
  • VS2017配置OpenCV
    VS2017配置OpenCV0OpenCV介绍OpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉算法,可用于处理图像和视频数据。OpenCV提供了C语言版本,使开发者可以使用C语言来调用OpenCV提供的功能。OpenCV可以用来进行多种图像处理......
  • CVE-2023-1454注入分析复现
    简介JeecgBoot的代码生成器是一种可以帮助开发者快速构建企业级应用的工具,它可以通过一键生成前后端代码,无需写任何代码,让开发者更多关注业务逻辑。影响版本Jeecg-Boot<=3.5.1环境搭建idea+后端源码:https://github.com/jeecgboot/jeecg-boot/archive/refs/tags/v3.5.0.zip......
  • cvxpylayer使用(基于Compressive Structured Light for Recovering Inhomogeneous Part
    论文中Gini系数的计算defcal_sparsity(x):#print(x.shape)n=x.shape[0]#x=x.reshape(x.shape.prob)x=x.abs()x,_=x.sort()#print(x)Gx=0forkinrange(n):Gx+=x[k]*(n-k+0.5)if(x.sum()==0):Gx=0else......
  • SMU Summer 2023 Contest Round 4
    SMUSummer2023ContestRound4A.TelephoneNumber满足第一个8后面存在10个字符即可#include<bits/stdc++.h>#defineendl'\n'#defineintlonglongusingnamespacestd;intn,m;voidsolve(){cin>>n;strings;cin>>s;......
  • UVA10791 最小公倍数的最小和 Minimum Sum LCM 题解
    前言长沙市一中8机房0714模拟测1。传送门blog思路本题思路,首先我们先看$\operatorname{lcm}$,明显要使得这些数的$\operatorname{lcm}=n$那么我们就需要所有的数的质因子必须包含$n$的质因子。若$1\lea,b$,则$a\timesb\gea+b$,所以我们就有了策略。将同一个质因......
  • cv::Mat at
    chatgpt生成 cv::Mat::at是一个用于访问 cv::Mat 对象的像素值的函数。它提供了对图像像素数据的访问和修改。该函数的语法如下:DataType&cv::Mat::at<DataType>(introw,intcol);其中,DataType 是图像数据的类型(例如:uchar、float、double等),row 和 col 分别是要......