我正在处理我不能舍入的大数字。使用Lua的标准数学库,似乎没有便捷的方法来保持超出内部限制的精度。我还看到有几个库可以加载以处理大数字:
此外,如果绑定已建立,则可以从Lua调用C中的many libraries。
您是否有过使用其中一个或多个库的经验?
发布于 2008-11-28 21:09:30
Lua语言的作者之一language所写的lmapm library。
发布于 2009-05-14 14:10:17
使用lbc而不是lmapm会更容易,因为lbc是自包含的。
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)
发布于 2009-03-06 22:58:17
我使用Norman Ramsey的建议来解决项目Euler problem #16。我不认为说问题的症结在于准确地计算一个303位的整数是一个剧透。
以下是安装和使用该库所需的步骤:
构建
src/Makefile
中的PLAT
改为linux
。缺省值none
不支持动态加载。libmapm.a
放在/usr/local/lib/
里了。接下来,m_apm.h
和m_apm_lc.h
转到/usr/local/include/
.LUA
、LUAINC
、LUALIB
和LUABIN
的第二个声明,并编辑MAMP
的声明。mapm.so
需要放在Lua能找到的地方。我把它放在/usr/local/lib/lua/5.1/
.上
感谢大家的建议!
https://stackoverflow.com/questions/288707
复制相似问题