c++ - 超大数的运算问题
大家讲道理
大家讲道理 2017-04-17 15:27:58
0
2
485

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

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

大家讲道理
大家讲道理

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

全部回覆(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} , dtheta=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:

結果並沒有超出計算機浮點數的表示範圍。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!