C# 正态分布 公式实现
时间: 2024-08-22 21:02:49 浏览: 57
在C#中,正态分布(也称为高斯分布)通常用于统计学和概率论,其公式表达为:
\[
f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x - \mu)^2}{2\sigma^2}}
\]
其中:
- \( f(x) \) 是给定值\( x \)的概率密度,
- \( \mu \) 是均值(期望值),代表数据集的中心点,
- \( \sigma \) 是标准差,衡量数据分布的宽度。
要实现这个公式,你可以创建一个自定义函数,例如:
```csharp
using System;
using MathNet.Numerics.Distributions; // 如果你的项目依赖于Math.NET Numerics库
public class NormalDistribution
{
private readonly double mean;
private readonly double standardDeviation;
public NormalDistribution(double mean, double standardDeviation)
{
this.mean = mean;
this.standardDeviation = standardDeviation;
}
public double CalculateProbability(double x)
{
var normal = new NormalDistribution(mean, standardDeviation);
return normal.ProbabilityDensityFunction(x); // 使用概率密度函数计算概率
}
}
// 调用示例
NormalDistribution distribution = new NormalDistribution(0, 1); // 均值为0,标准差为1的标准正态分布
double probabilityAtX = distribution.CalculateProbability(1.5); // 计算值1.5处的概率
```
注意:如果你不希望引入外部库,可以手动实现指数函数部分,但这会更复杂一些,并且精度可能会受到影响。