最好的bignum库解决C ++中的Project Euler问题?

时间:2009-06-26 03:39:55

标签: c++ bignum

我还是学生,我觉得项目Euler非常有趣。

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

所以我尝试了几个库,

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

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

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

ttmath::UInt<1024 * 1024> reallyHugeUnsignedInteger;

它提供三种类型:signed,unsigned和float。

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

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

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

3 个答案:

答案 0 :(得分:5)

以下是有关GMP和Visual Studio 2008的几个链接:

GMP Install Help at CodeGuru

GMP Compile Guide at The Edge Of Nowhere(这个看起来非常彻底)

答案 1 :(得分:4)

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

答案 2 :(得分:1)

GMP。简单的API,永远存在。

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