快速计算大浮点数,例如0.4 ^ 100000000,有什么想法吗?

| 嗯...我有问题 我通过某种方式通过名为BIGFLOAT的库http://www.fractal-landscapes.co.uk/bigint解决了这个问题,可以确定结果超过10 ^ -308(double .net中的最大值)。 .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;

    }
其中K为1000,N为1001     
已邀请:
从C#项目下载并参考Microsoft J#.NET库-这样您就可以使用J#\的BigDecimal实现。 看到: C#中的任意精度小数   大十进制:      安装J#运行时(免费):   http://www.microsoft.com/downloads/zh-CN/details.aspx?familyid=f72c74b3-ed0e-4af8-ae63-2f0e42501be1&displaylang=en 和: C#中的任意精度小数? 和: http://geekswithblogs.net/gyoung/archive/2006/05/01/76869.aspx   J#可再发行文件包含   经过良好测试的实现   您可以使用BigInteger和BigDecimal   直接在.NET应用中直接使用   通过引用J#程序集   vjslib.dll。   http://download.microsoft.com/download/2/e/9/2e9bde04-3af1-4814-9f1e-733f732369a3/NETMatters0512.exe   进一步讨论。它也是   继续一些Zip类   很有用。 和: MSDN-BigInteger,GetFiles等   虽然您可以在网上搜索以找到   C#中的大量实现,   C ++和其他多种语言,   可能没有必要。如果你   不要介意依赖   J#库,您已经拥有了很多   您的号码实现   处置。实际上,您有两个。的   J#运行时库vjslib.dll是   可作为可再发行的   组件,就像.NET一样   框架。您可以从下载   Visual J#下载(也   作为Visual的必备软件安装   Studio®)。以与C#相同的方式   或C ++应用程序可以利用   Microsoft.VisualBasic.dll(Visual   基本运行时库),C#,Visual   Basic®和C ++应用程序可以使用   J#运行时库和   众多有趣的课程吧   暴露。     
如果不需要所有数字,可以使用对数。
(0.4 ^ 100000000)
的对数为
log(0.4)*100000000
,正好在常规浮点范围内。     

要回复问题请先登录注册