真的很大的数字和目标-C

时间:2009-06-23 07:27:07

标签: objective-c xcode biginteger scientific-computing

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

我喜欢使用GMP,但听起来像使用它与Xcode是一个完整的伤害世界。

有没有人知道其他任何选择?

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

虽然您必须为所有算术问题编写一些新功能,但这就是我们被告知如何在大学中完成这些功能。

另外,计算的速度也得到了很大提高,因为大数字并不是真正的大数据,而且并非完全没有数字

看看是否有帮助

问候

答案 2 :(得分:1)

vBigNum中的

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

答案 3 :(得分:0)

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

这很简单。分别存储每个数字。添加和减法很简单,只需执行进位操作即可。乘法最好使用卷积,然后是进位。实现divide和mod运算符,然后执行powermod操作,对许多PE问题都有用。权力很容易 - 只需重复平方和乘法,基于指数的二进制表示。

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

答案 4 :(得分:0)

我也有明智的想法尝试使用Cocoa / Objective-C的一些Euler Project问题并且发现它令人沮丧。我之前使用的是Java,也许还有一些PHP。我发布了my exact problem in this thread.

答案 5 :(得分:0)

我一直考虑使用图书馆作弊这个项目。只需用你需要的东西写一堂课。并且不要害怕使用malloc和uint64_t等。在许多情况下,NSNumber 是一个好主意。

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