快速计算大浮点数就像0.4 ^ 1亿,任何想法?

xsa*_*i3x 2 c# performance computation bigint bigfloat

嗯......我遇到了一个问题我有一个计算结果是超过10 ^ -308(双.net中的最大值)我通过一个名为BIGFLOAT的库解决了这个问题http://www.fractal- landscapes.co.uk/bigint.html,

我需要计算一些像0.4 ^(1000或100000000)这样的问题我需要花很长时间来研究并行或分布式编程但是我需要一个快速且易于理解的解决方案我将要去在接下来的6小时内完成这个项目!! :d

这是代码:

private BigFloat getBlocking(double k)
    {
        double p1, p2;
        BigFloat p3;
        p3 = new BigFloat(pp);
        p1 = this.P / (double)(k / (double)this.N);
        p2 = Math.Pow((1 - p1), 2);
        p3= new BigFloat(1-p2,pp);
        p3.Pow((int)k);
        return p3;

    }
Run Code Online (Sandbox Code Playgroud)

其中K是1000,N是1001

Mar*_*som 6

如果您不需要所有数字,则可以使用对数.日志(0.4 ^ 100000000)log(0.4)*100000000在常规浮点范围内.