18

我还是个学生,我觉得 Euler 项目很有趣。

有时这个问题需要比原始类型更大的计算。我知道你可以实现它,但我懒得这样做,

所以我尝试了几个库,

MAPM :: 非常好的性能,但它只提供大浮点数,可以检查它是否为整数。非常好接受输入,但很难提供输出,并且使用 Visual C++ 2008 express 像魔术一样编译。

bigint :: 很小的一个,但需要对许多部分进行重新设计。使用非常简单,但功率非常有限,与其他相比非常慢。只有大整数。

ttmath :: 迄今为止我尝试过的最漂亮的一个!只需包含一些文件,您就拥有令人难以置信的力量/简单性。像 Visual C++ 2008 express 中的魔术一样编译。它很快,因为它提供了固定长度的数字。它是使用 C++ 中的元编程构建的。我看到的唯一缺点是,数字在运行时的长度不是任意的,但是在编写代码时你可以很容易地拥有 1024K 的数字,

ttmath::UInt<1024 * 1024> reallyHugeUnsignedInteger;

它提供了三种类型:有符号、无符号和浮点数。

我尝试在VC2008 express下编译gmp,但是失败了!我知道它是最好的,但对于初学者来说在 VC2008 express 下编译并不容易,如果你指出一个在 VC 下编译 gmp 的教程,我也很感激。

编辑 :: 如果您知道如何使用 VC 2008 编译 gmp,请向我解释并获得赏金 :)

EITD :: 看来我没有使用正确的术语,所以这里是用于 Windows 的神奇 GMP!适用于 VC 2008 :) MPIR

4

3 回答 3

5

以下是一些关于 GMP 和 Visual Studio 2008 的链接:

CodeGuru 的 GMP 安装帮助

The Edge Of Nowhere 的 GMP 编译指南(这个看起来很透彻)

于 2009-07-01T15:27:53.847 回答
4

...或者只是尝试 PARI/GP http://pari.math.u-bordeaux.fr/

于 2009-07-02T05:35:45.307 回答
1

GMP。简单的 API,一直存在。

编辑:哦,你试过了。我真的会再试一次,这是最好的。

于 2009-06-26T03:54:57.380 回答