数学计算公式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/// <summary>
/// 求出数据平均值,并保留三位小数
/// </summary>
/// <param name="Valist">数据集合</param>
/// <returns></returns>
public static double average(List<double> Valist)
{
    double sum = 0;
    foreach (double d in Valist)
    {
        sum = sum + d;
    }
    double revl = System.Math.Round(sum / Valist.Count, 3);
    return revl;
}
/// <summary>
/// 求数据集合标准差
/// </summary>
/// <param name="ValList"></param>
/// <returns></returns>
public static double stdev(List<double> ValList)
{
    double avg = average(ValList);
    double sumstdev = 0;
    foreach (double d in ValList)
    {
        sumstdev = sumstdev + (d - avg) * (d - avg);
    }
    double stdeval = System.Math.Sqrt(sumstdev);
    return System.Math.Round(stdeval, 3);
}
/// <summary>
/// 相关系数,要求两个集合数量必须相同
/// </summary>
/// <param name="array1">数组一</param>
/// <param name="array2">数组二</param>
/// <returns></returns>
public double correl(List<double> array1, List<double> array2)
{
    //数组一
    double avg1 = average(array1);
    double stdev1 = stdev(array1);
    //数组二
    double avg2 = average(array2);
    double stdev2 = stdev(array2);
 
    double sum = 0;
    for (int i = 0; i < array1.Count && i < array2.Count; i++)
    {
        sum = sum + ((array1[i] - avg1) / stdev1) * ((array2[i] - avg2) / stdev2);
    }
    return Math.Round(sum, 3);
}

  

posted @   逊老头  阅读(215)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示