我正在寻找一种算法,该算法需要对两个不合理的大数(均为数千位长)进行除法。
python 或 c++(或程序集)中是否已经存在一个库来执行此操作?甚至可能吗?
没有任何时间限制或任何东西
Python 已经支持大整数,所以唯一缺少的功能是有理数。这是由分数模块提供的:
from fractions import Fraction
>>> print float( Fraction(2**54343) / Fraction( 2**54347 + 1 ) )
0.0625
>>> print Fraction(2**54343) / Fraction( 2**54347 + 1 )
# ... very long exact answer expressed as a fraction ...
在 C++ 中,您可以使用Boost.Multiprecision库:
多精度库在 C++ 中提供整数、有理数和浮点类型,它们比 C++ 的普通内置类型具有更大的范围和精度
例子:
#include <iostream>
#include <string>
#include <utility>
#include <boost/multiprecision/mpfr.hpp>
int main()
{
std::string s(100, '0');
s.at(0) = '1';
boost::multiprecision::mpfr_float_1000 f1(std::move(s));
boost::multiprecision::mpfr_float_1000 f2 = f1 / 42;
std::cout << f2.str() << std::endl;
return 0;
}