首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Lua的标准(或最受支持的)大数字(任意精度)库是什么?

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

Stack Overflow用户
提问于 2008-11-13 23:10:23
回答 6查看 9.2K关注 0票数 25

我正在处理我不能舍入的大数字。使用Lua的标准数学库,似乎没有便捷的方法来保持超出内部限制的精度。我还看到有几个库可以加载以处理大数字:

  1. http://oss.digirati.com.br/luabignum/
  2. http://www.tc.umn.edu/~ringx004/mapm-main.html
  3. http://lua-users.org/lists/lua-l/2002-02/msg00312.html (可能与#2)
  4. http://www.gammon.com.au/scripts/doc.php?general=lua_bc相同(但我找不到任何源码)

此外,如果绑定已建立,则可以从Lua调用C中的many libraries

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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-11-28 21:09:30

Lua语言的作者之一language所写的lmapm library

票数 7
EN

Stack Overflow用户

发布于 2009-05-14 14:10:17

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

代码语言:javascript
复制
local bc = 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)
票数 17
EN

Stack Overflow用户

发布于 2009-03-06 22:58:17

我使用Norman Ramsey的建议来解决项目Euler problem #16。我不认为说问题的症结在于准确地计算一个303位的整数是一个剧透。

以下是安装和使用该库所需的步骤:

构建

  1. Lua时需要启用动态加载。我使用Cygwin,但我将src/Makefile中的PLAT改为linux。缺省值none不支持动态加载。
  2. MAMP需要构建并安装在C编译器可以找到的地方。我把libmapm.a放在/usr/local/lib/里了。接下来,m_apm.hm_apm_lc.h转到/usr/local/include/.
  3. The makefile,因为需要将lmamp更改为Lua和MAMP库的正确位置。对我来说,这意味着取消注释LUALUAINCLUALIBLUABIN的第二个声明,并编辑MAMP的声明。
  4. 最后,mapm.so需要放在Lua能找到的地方。我把它放在/usr/local/lib/lua/5.1/.

感谢大家的建议!

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/288707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档