search

Home  >  Q&A  >  body text

c++ - 超大数的运算问题

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

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

大家讲道理大家讲道理2805 days ago535

reply all(2)I'll reply

  • 阿神

    阿神2017-04-17 15:29:58

    The front is easy to say, but the points in the back are not easy to calculate

    reply
    0
  • 迷茫

    迷茫2017-04-17 15:29:58

    I suspect there is a clerical error in the question. The number in the lower left corner should be 251528. In this way, the fraction part is exactly the definition of the Beta function:

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

    The integral part is the definition of incomplete Beta function:

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

    The product of the two is called the regularized incomplete Beta function (Regularized Beta Function).

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

    This function happens to be the cumulative distribution function (CDF) of the Beta distribution, so many software packages can calculate it. For example Excel:

    The result does not exceed the representation range of computer floating point numbers.

    reply
    0
  • Cancelreply