<分区>
我正在从事一个项目,我需要以绝对精度和尽可能快的速度处理大整数(如 3^361)。 C 是我熟悉的最快的语言,因此我尝试用该语言编写我的解决方案。
问题是除了 Python 的源代码之外,我无法找到任何数据类型的良好实现来用 C 语言表示无限整数。我需要时间来检查代码并确定我需要什么。
我宁愿使用别人经过测试的具有全套功能的代码(加法、减法、乘法、除法、调制、求幂、相等性检查……即使是按位运算也很不错),而不是花费数周的时间我什至开始让自己的版本达到标准。虽然这将是一次很好的学习经历,但这不是我的问题重点,我宁愿进入我感兴趣的部分:)
一些人已经提到了 GMP。我只想补充一点,至少在我最后一次查看时,它非常限于使用 gcc。
如果你想使用其他编译器,你可能会考虑的是 NTL和 MIRACL .我对 MIRACL 进行了一些测试,它似乎运行良好。我使用 NTL 的次数更多了,虽然大整数更像是它的副业,但它仍然做得很好。它并不声称与 GMP 一样快(事实上,可以使用 GMP 进行基本操作),但是当我在两者之间进行一些最小的基准测试时,我没有发现很多显着差异(尽管那是很久以前的事了,我怀疑它是否仍然有效)。