我想写(不是使用现有的)一个使用长数字的库(或其他东西)(我的意思是至少几百个数字)。
第一个问题:选择一种语言。哪个更好:Perl / JavaScript / PHP?
第二个问题:如何实施长号操作?我唯一得到的就是像数组一样使用它们,例如:
arr1 = (12, 34); //1234
arr2 = (98, 76); //9876
sum = longnumbers_add(arr1, arr2); // +
// 34 + 76 = 110 = 10 -..> 1
// 12 + 98 = 110 = 110 + 1 = 11 -..> 1
//sum == (1, 11, 10);
但它起作用缓慢(至少我在PHP中尝试)。也许有一些“移位”超快速方法?
P.S。
我知道有gmp和其他很酷的库。
感谢任何帮助。
答案 0 :(得分:3)
为了好玩,我写了几个大数字库。就语言而言,我要么选择你最喜欢的那个,要么选择你想要了解的更多。对我来说,这是最近的JavaScript,但在我看来,这些语言中没有一种或多或少适合大数字。但对于Web来说,决定的很大一部分取决于您是否要在客户端或服务器端进行计算。在客户端,JavaScript几乎是唯一的选择。
我写了几篇博客文章,演示了基本算法以及我如何选择存储它们。请注意,这些仅适用于大整数(因此没有小数点),但仍然适用基础知识。
以下是我的经历中的一些想法:
答案 1 :(得分:0)
我不确定你是否想要编写一个高级库来处理长数(例如用于计算质数或其他东西),或者只是为了学习目的而实现低级操作(加法,乘法)。如果您对前者感兴趣,则应考虑使用Python而不是JavaScript / PHP / Perl。 Python内置支持任意大整数,并在其标准库中为精确浮点运算提供十进制类。
答案 2 :(得分:-2)
你应该尝试BCMath:http://php.net/manual/en/book.bc.php