擅长:python、mysql、java
<p>我是DecInt(Decimal Integer)库的作者,所以我要做一些评论。</p>
<p>DecInt库是专门为处理需要转换为十进制格式的非常大的整数而设计的。转换成十进制格式的问题是,大多数任意精度库都以二进制存储值。这是最快和最有效的利用内存,但从二进制到十进制的转换通常是缓慢的。Python的二进制到十进制转换使用O(n^2)算法,速度非常快。</p>
<p>DecInt使用一个大的十进制基数(通常为10^250),并将非常大的数字存储在250位的块中。将非常大的数字转换为十进制格式现在以O(n)运行。</p>
<p>幼稚的,或小学的,乘法运算的运行时间是O(n^2)。Python使用运行时间为O(n^1.585)的Karatsuba乘法。DecInt使用Karatsuba、Toom-Cook和Nussbaumer卷积的组合来获得O(n*ln(n))的运行时间。</p>
<p>尽管DecInt有更高的开销,但是O(n*ln(n))乘法和O(n)转换的组合最终将比Python的O(n^1.585)乘法和O(n^2)转换快。</p>
<p>由于大多数计算并不要求每个结果都以十进制格式显示,因此几乎每个任意精度库都使用二进制,因为这使得计算更容易。DecInt的目标是一个非常小的利基市场。对于足够大的数,DecInt的乘法和除法比原生Python快。但是如果你追求纯性能,像GMPY这样的库将是最快的。</p>
<p>我很高兴你能帮上忙。</p>