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

发布于 2024-11-02 18:13:49 字数 698 浏览 5 评论 0原文

嗯...我有一个问题 我有一个特定的计算,结果超过 10^-308 ( double .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;

    }

其中 K 是 1000,N 是 1001

Ehm ... I got a problem
I've a certain calculation that result is over 10^-308 (the biggest value in double .net ) any way I solved this problem through a library called BIGFLOAT http://www.fractal-landscapes.co.uk/bigint.html ,

What ever I need to calculate something like 0.4 ^(1000 or 100000000) the problem it takes very very long time I didn't study parallel or distributed programming yet but I need a solution that is fast and understandable for me
I'm going to deliver this project in next 6 Hours!! :D

Here's the code :

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;

    }

where K is 1000 , N is 1001

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半窗疏影 2024-11-09 18:13:49

如果不需要所有数字,则可以使用对数。 (0.4 ^ 100000000) 的对数为 log(0.4)*100000000,完全在常规浮点范围内。

If you don't need all the digits, you can get away with using logarithms. The log of (0.4 ^ 100000000) is log(0.4)*100000000, well within the regular floating point range.

孤寂小茶 2024-11-09 18:13:49

从您的 C# 项目中下载并引用 Microsoft J# .NET 库 - 以便您可以使用 J# 的 BigDecimal 实现。

请参阅:

C# 中的任意精度小数

大十进制:

安装 J# 运行时(免费):
http://www.microsoft.com/downloads/en/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 作为先决条件安装
工作室®)。以与 C# 相同的方式
或 C++ 应用程序可以使用
Microsoft.VisualBasic.dll(视觉
基本运行时库)、C#、Visual
Basic® 和 C++ 应用程序可以使用
J# 运行时库和
许多有趣的课程
暴露。

Download, and reference, the Microsoft J# .NET Library from your C# project - so that you can use J#'s BigDecimal implementation.

See:

Arbitrary-Precision Decimals in C#

Big Decimal:

Install the J# runtime (it's free):
http://www.microsoft.com/downloads/en/details.aspx?familyid=f72c74b3-ed0e-4af8-ae63-2f0e42501be1&displaylang=en

and:

Arbitrary precision decimals in C#?

and:

http://geekswithblogs.net/gyoung/archive/2006/05/01/76869.aspx

The J# re-distributables contain very
well tested implementations of
BigInteger and BigDecimal that you can
use directly in your .NET apps simply
by referencing the J# assembly
vjslib.dll.
http://download.microsoft.com/download/2/e/9/2e9bde04-3af1-4814-9f1e-733f732369a3/NETMatters0512.exe
discusses this further. It also
contins some Zip classes which are
quite useful.

and:

MSDN - BigInteger, GetFiles, and More

While you can search the Web to find a
plethora of implementations in C#,
C++, and a variety of other languages,
it might not be necessary. If you
don't mind taking a dependency on the
J# libraries, you already have a big
number implementation at your
disposal. In fact, you have two. The
J# run-time library, vjslib.dll, is
available as a redistributable
component, just like the .NET
Framework. You can download it from
Visual J# Downloads (it's also
installed as a prerequisite by Visual
Studio®). In the same manner that a C#
or C++ application can make use of
Microsoft.VisualBasic.dll (the Visual
Basic run-time library), C#, Visual
Basic®, and C++ applications can use
the J# run-time library and the
numerous interesting classes it
exposes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文