c++ - 超大数的运算问题
大家讲道理
大家讲道理 2017-04-17 15:27:58
[C++讨论组]

在一个问题中遇到的需要求这样的一个表达式:

应该如何计算可以得到结果?如果用龙贝格积分计算是算不出来的,伽马函数用定义算也求不出来。请问应该使用什么算法?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
阿神

前面倒是好说,后面的积分不太好算呀

迷茫

怀疑题目有笔误。左下角数字应该是251528。这样分式部分就正好是Beta函数的定义:

$$\frac{\Gamma(m+n)}{\Gamma(m)\ \Gamma(n)}=\frac{1}{B(n,m)}$$

积分部分,是不完全Beta函数的定义:

$$\int_0^{\frac{1}{2}} \theta ^{n-1} (1-\theta )^{m-1} \, d\theta=B_{\frac{1}{2}}(n,m)$$

两者乘积叫做正则化不完全Beta函数(Regularized Beta Function)。

$$\frac{B_{\frac{1}{2}}(n,m)}{B(n,m)}=I_{\frac{1}{2}}(n,m)$$

这个函数正好是Beta分布的累积分布函数(CDF),所以许多软件包都能计算。比如Excel:

结果并没有超出计算机浮点数的表示范围。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号