除数据类型限制之外的划分

时间:2013-06-04 09:43:50

标签: c++ python assembly

我正在寻找一种算法,这种算法需要对两个不合理的大数字进行除法(数千个数字长)。

是否存在python或c ++(或程序集)中已存在的库?它甚至可能吗?

没有任何时间限制或任何事情

2 个答案:

答案 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;
}