标签:
GMP(GNU Multiple Precision Arithmetic Library,即GNU高精度算术运算库),它是一个开源的高精度运算库,其中不但有普通的整数、实数、浮点数的高精度运算,还有随机数生成,尤其是提供了非常完备的数论中的运算接口,比如Miller-Rabin素数测试算法、大素数生成、欧几里德算法、求域中元素的逆、Jacobi符号、legendre符号等。
gmpy2是Python的一个扩展库,是对GMP的封装,它的前身是gmpy,经过其作者的调整和封装,使得gmpy2的使用大大简化。
-------
1、windows上安装gmpy2
在windows上直接安装wheel文件就方便多了。
https://pypi.python.org/pypi/gmpy2
这里面有python2.6、2.7、3.2、3.3、3.4版本的wheel文件,下载后用pip安装即可。(暂时还找不到3.5版本)
2、linux上安装gmpy2
gmpy2是依赖GMP、MPFR、MPC三个库,故此在linux上安装前得先安装这3个库。
为了后续安装的方便,先建立2个文件夹。
mkdir -p $HOME/src mkdir -p $HOME/static
3、安装GMP
GMP(The GNU Multiple Precision Arithmetic Library) is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers.
https://gmplib.org/
当前最新的是6.1.1
cd $HOME/src wget https://gmplib.org/download/gmp/gmp-6.1.1.tar.bz2 tar -jxvf gmp-6.1.1.tar.bz2 cd gmp-6.1.1 ./configure --prefix=$HOME/static --enable-static --disable-shared --with-pic make && make check && make install
4、安装MPFR
The MPFR library is a C library for multiple-precision floating-point computations with correct rounding.
http://www.mpfr.org/mpfr-current/#download
当前最新的是3.1.4
cd $HOME/src wget http://www.mpfr.org/mpfr-current/mpfr-3.1.4.tar.bz2 tar -jxvf mpfr-3.1.4.tar.bz2 cd mpfr-3.1.4 ./configure --prefix=$HOME/static --enable-static --disable-shared --with-pic --with-gmp=$HOME/static make && make check && make install
5、安装MPC
GNU MPC is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result.
http://www.multiprecision.org/index.php?prog=mpc&page=download
当前最新的是1.0.3
cd $HOME/src wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz tar -zxvf mpc-1.0.3.tar.gz cd mpc-1.0.3 ./configure --prefix=$HOME/static --enable-static --disable-shared --with-pic --with-gmp=$HOME/static --with-mpfr=$HOME/static make && make check && make install
6、安装gmpy2
cd $HOME/src git clone https://github.com/aleaxit/gmpy cd gmpy python setup.py build_ext --static=$HOME/static install
安装后,命令行进入python模式后,输入import gmpy2没报错就成功了。
7、gmpy2使用方法
这里pcat就介绍找一百以内的素数,更多gmpy2的用法自己搜索吧,或者以后补充(←_←)。
import gmpy2 for i in xrange(100+1): if gmpy2.is_prime(i): print i
标签:
原文地址:http://www.cnblogs.com/pcat/p/5746821.html