登录
首页 >  Golang >  Go问答

在Go语言中使用Excel的Application.NormDist公式的方法

来源:stackoverflow

时间:2024-02-05 14:11:27 169浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《在Go语言中使用Excel的Application.NormDist公式的方法》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我最近遇到需要将用 Excel 编写的旧应用程序迁移到 Go 语言。该应用程序依赖 Application.NormDist 函数来计算值。

=Application.NORMDIST(A1,A3,A4,TRUE)

但是,我找不到任何提供此函数的 Go 库,并且编写自己的函数会带来挑战,而且无法保证正确性。

有人可以建议一个解决方案或指导我如何处理 NormDist 函数从 Excel 到 Go 的转换吗?


正确答案


我创建了一个函数,使用 distuv 包来计算累积分布函数(CDF)和概率质量函数(Prod),遵循 Microsoft 的指南https://support.microsoft.com/en-au/office/normdist-function-126db625-c53e-4591 -9a22-c9ff422d6d58

func NORMDIST(x float64, mean float64, stdDeviation float64, cumulative bool) (float64, error) {
    if stdDeviation <= 0 {
        return 0, ErrInvalidStdDev
    }

    if mean == 0 && stdDeviation == 1 && cumulative {
        stdNormalDist := distuv.UnitNormal
        return stdNormalDist.CDF(x), nil
    }

    dist := distuv.Normal{
        Mu:    mean,
        Sigma: stdDeviation,
    }

    if cumulative {
        return dist.CDF(x), nil
    }

    return dist.Prob(x), nil
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>