c/c++/c# 快速计算 Cumulative Normal Distribution 正态累积函数CDF

本文提供了一个用于计算标准正态分布函数的C语言实现。该函数采用精确的近似算法,通过一系列预定义的系数来计算输入值的概率密度,并最终得到累积分布函数的值。适用于统计和科学计算等领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接:
http://stackoverflow.com/questions/2328258/cumulative-normal-distribution-function-in-c-c
http://www.johndcook.com/blog/cpp_phi/

个人使用的是如下的代码:

static double CND(double d)
{
    const double       A1 = 0.31938153;
    const double       A2 = -0.356563782;
    const double       A3 = 1.781477937;
    const double       A4 = -1.821255978;
    const double       A5 = 1.330274429;
    const double RSQRT2PI = 0.39894228040143267793994605993438;

    double
    K = 1.0 / (1.0 + 0.2316419 * fabs(d));

    double
    cnd = RSQRT2PI * exp(- 0.5 * d * d) *
          (K * (A1 + K * (A2 + K * (A3 + K * (A4 + K * A5)))));

    if (d > 0)
        cnd = 1.0 - cnd;

    return cnd;
}

此函数版权属于NVIDIA

转载于:https://www.cnblogs.com/norsd/p/6359276.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值