大量类的最有效实现

发布于 2024-07-05 01:47:40 字数 108 浏览 7 评论 0 原文

当对非常大的数字进行计算时,整数数据类型(例如 double 或 int64)无法满足要求,可能需要一个单独的类来处理如此大的数字。

有人愿意提供一种有效的算法来最好地做到这一点吗?

When doing calculations on very large numbers where integral data types such as double or int64 falls short, a separate class to handle such large numbers may be needed.

Does anyone care to offer an efficient algorithm on how best to do this?

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

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

发布评论

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

评论(5

寄居人 2024-07-12 01:47:40

使用语言的内置功能对我来说很有效。

Java 有 BigInteger 和 BigDecimal,如果数字超出整数范围或类似情况,Python 会自动切换到类似于 Java 的对象。

至于其他语言,我不知道。

我讨厌重新发明轮子。

Using the built-in features of a language work for me.

Java has BigInteger and BigDecimal, and Python automagicaly switches to an object similar to Java's if a number gets out of the range of an integer or whatnot.

As for other languages though, I have no idea.

I hate re-inventing the wheel.

似最初 2024-07-12 01:47:40

做你自己的 BigNum 库很复杂,所以我会说像 jjnguy。 使用您的语言提供的任何内容作为库。

在 .net 中,引用 VisualJ dll,因为它们包含 BigInteger 和 BigDecimal 类。 但是,您应该注意这些库的一些限制,例如缺乏平方根方法。

Doing your own BigNum library is complicated, so i'd say like jjnguy. Use whatever your language offers as libraries.

In .net, reference the VisualJ dll as they contain the BigInteger and BigDecimal classes. You should however be aware of some limitations of these libraries, like the lack of a square root method, for example.

我的影子我的梦 2024-07-12 01:47:40

在 C# 4.0 中,使用 BigInteger 类型

In C# 4.0 use the BigInteger type

一世旳自豪 2024-07-12 01:47:40

您询问的是任意精度算术,该主题书籍已写完。 如果您只想要一个简单且相当高效的 C# BigNum 库,您可能需要查看 IntX

You're asking about arbitrary-precision arithmetic, a subject on which books have been written. If you just want a simple and fairly efficient BigNum library for C#, you might want to check out IntX.

嘿看小鸭子会跑 2024-07-12 01:47:40

您的问题有 2 种解决方案:

  • 简单方法:
    使用外部库,例如“GNU MP Bignum 库”,并忘记实现细节。

  • 困难的方法:
    设计您自己的包含多个高阶数据类型(如 double 或 int64 变量)的类/结构,并使用运算符重载(在 C++ 中)或通过名为 add、subtract、multiply、shift 等的方法(在 JAVA 和其他 OO 中)为它们定义基本数学运算语言)。

如果您需要任何进一步的帮助,请告诉我。 我过去曾做过几次这样的事情。

There are 2 solutions to your problem:

  • Easy way:
    Use an external library such as 'The GNU MP Bignum Library and forget about implementation details.

  • Hard way:
    Design your own class/structure containing multiple higher order datatypes like double or int64 variables and define basic math operations for them using operator overloading (in C++) or via methods named add, subtract, multiply, shift, etc. (in JAVA and other OO languages).

Let me know if you need any further help. I have done this a couple of times in the past.

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