当前位置:  开发笔记 > 编程语言 > 正文

Lua的标准(或最佳支持)大数(任意精度)库是什么?

如何解决《Lua的标准(或最佳支持)大数(任意精度)库是什么?》经验,为你挑选了4个好方法。

我正在处理那些我无法完成的大数字.使用Lua的标准数学库,似乎没有方便的方法来保持精度超过某些内部限制.我还看到有几个库可以加载以使用大数字:

    http://oss.digirati.com.br/luabignum/

    http://www.tc.umn.edu/~ringx004/mapm-main.html

    http://lua-users.org/lists/lua-l/2002-02/msg00312.html(可能与#2相同)

    http://www.gammon.com.au/scripts/doc.php?general=lua_bc(但我找不到任何来源)

此外,如果已建立绑定,则可以从Lua调用C 中的许多库.

您是否有过使用这些库中的一个或多个的经验?



1> lhf..:

使用lbc而不是lmapm会更容易,因为lbc是自包含的.

require"bc"
s=bc.pow(2,1000):tostring()
z=0
for i=1,#s do
        z=z+s:byte(i)-("0"):byte(1)
end
print(z)



2> Norman Ramse..:

Lua Figueiredo 的lmapm图书馆,Lua语言的作者之一.



3> Jon Ericson..:

我使用Norman Ramsey的建议来解决Project Euler问题#16.我认为问题的关键在于准确计算303位整数,这并不是一个扰流.

以下是我需要安装和使用库的步骤:

    Lua需要在启用动态加载的情况下构建.我使用Cygwin,但我改变PLATsrc/Makefilelinux.默认情况下,none不启用动态加载.

    该MAMP需要建立和安装的地方,你的C编译器可以找到它.我把libmapm.a/usr/local/lib/.接下来m_apm.hm_apm_lc.h/usr/local/include/.

    需要将lmamp的makefile 更改为Lua和MAMP库的正确位置.对我来说,这意味着在取消的第二个声明LUA, LUAINC,LUALIB,和LUABIN和编辑的声明MAMP.

    最后,mapm.so需要放在Lua会找到的地方.我把它放在了/usr/local/lib/lua/5.1/.

谢谢大家的建议!



4> PhiLho..:

我无法回答,但我会添加LGMP,一个GMP绑定.不曾用过.

不是我的专业领域,但我希望GNU多精度算术库在这里成为一个标准,不是吗?

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有