具有巨大数字的基本数学运算

时间:2010-10-08 18:38:26

标签: c math bignum

大量的,我的意思是你拿了一个千兆字节(而不是4/8字节等)并试图用其他任意大(或小)的数字加/减/乘/除它。

加法和减法相当容易(一次一个k / m /字节):

out_byteN = a_byteN + b_byteN + overflowBit 

对于每个字节,因此我可以在读取磁盘中的数字时进行加/减,并且不会有用尽RAM的风险。

对于乘法/除法,只需在循环中执行上述操作。

但是接受巨大数字的第n个根呢?

4 个答案:

答案 0 :(得分:8)

您是否要求“GNU多精度算术库”(http://gmplib.org/)?

答案 1 :(得分:7)

与其他任何数字相同:Newton iteration

答案 2 :(得分:1)

有多种方法:Bisection,Newtons,Householder's方法。

http://en.wikipedia.org/wiki/Root-finding_algorithm

答案 3 :(得分:1)

您可以使用Arbitrary-precision Arithmetic库。 BigDigits是一个很好的。