2

我一直在玩弄一些Project Euler问题,自然会遇到很多需要处理大于long long类型数字的问题。我致力于使用 Cocoa 和 Objective-C(我需要在工作中保持敏锐)但找不到一种优雅的方式(阅读:库)来处理这些非常大的数字。

我很想使用 GMP,但听起来像在 Xcode 中使用它是一个完整的伤害世界。

有谁知道任何其他选择?

4

6 回答 6

3

如果我是你,我会在 XCode 之外编译gmp ,并在我的 XCode 项目中只使用gmp.hlibgmp.a(或 libgmp.dylib) 。

于 2009-06-23T13:50:23.253 回答
1

尝试将数字存储在数组中。

尽管您必须为所有算术问题编写一些新函数,但这就是我们在大学时被告知这样做的方式。

再加上计算速度得到了相当大的提高,因为大数字毕竟不是很大,也不是真正的数字

看看有没有帮助

问候

于 2009-06-23T07:47:17.697 回答
1

vBigNuminvecLib实现 1024 位整数(有符号或无符号)。够大吗?

于 2012-04-29T00:39:38.673 回答
0

如果您想使用 matlab(或任何接近的东西),您可以查看我在文件交换中实现的大整数形式(vpi) 。

这很简单。分别存储每个数字。加减法很简单,只需实现一个进位操作。乘法最好使用卷积,然后是进位。实现除法和 mod 运算符,然后是 powermod 操作,对许多 PE 问题很有用。幂很容易 - 只需根据指数的二进制表示重复平方和乘法。

这将让您解决许多 PE 问题。

于 2009-06-24T13:39:50.943 回答
0

我也想到了用 Cocoa/Objective-C 尝试一些 Euler Project 问题的好主意,但发现它令人沮丧。我以前使用过 Java,也许还有一些 PHP。我在这个线程中发布了 我的确切问题。

于 2013-02-02T02:03:59.497 回答
0

我一直考虑为这个项目使用库作弊。只需编写一个包含您需要的东西的类。并且不要害怕使用 malloc 和 uint64_t 等等。在许多情况下, NSNumber不是一个好主意。

另一方面,在许多问题中,显而易见的解决方案需要大量的数字,诀窍是找到一种方法来解决问题,而不使用这些庞大的数字。(例如,1,000,000 阶乘的最后一千位数字的总和是多少)?

于 2014-04-02T12:12:40.470 回答