我正在寻找一种算法,这种算法需要对两个不合理的大数字进行除法(数千个数字长)。
是否存在python或c ++(或程序集)中已存在的库?它甚至可能吗?
没有任何时间限制或任何事情
答案 0 :(得分:3)
Python已经支持大整数,因此唯一缺少的功能是有理数。这是由 fractions 模块提供的:
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 ...
答案 1 :(得分:2)
在C ++中,您可以使用Boost.Multiprecision库:
Multiprecision Library提供整数,有理和 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;
}