
2、在下载msys并通过MinGW安装。
3、使芦辩用msys解析GMP文件后成功安装猜清。
4、GMP是一个开源的数学运算库。
gmp安槐伏装及使用哪脊摘要GNU Multiple Precision Arithmetic Library
首先,去libgmp官网下载最新的gmp包。(我下的是gmp-5.1.0)
然后gmp-5.1.0.tar.bz2。使用命令
tar -jvxf gmp-5.1.0.tar.bz2
进入gmp-5.1.0文件夹
cd gmp-5.1.0
接下来比较关键,在使用configure的时候要加上 --enable-cxx命令,否则不能使用c++库gmpxx.h(今年寒假的时候没加这个命令也可以,但现在貌似不行了- -)
./configure --enable-cxx
然后
make
make check
最后
sudo make install
就安装完成了。
可以试着编写一个样例程序:
#include<gmpxx.h>
using namespace std
int main()
{
mpz_t a, b, c, d
mpz_init(a)
mpz_init(b)
mpz_init(c)
mpz_init(d)
//计算2的1000次方
mpz_init_set_ui(a, 2)
mpz_pow_ui(c, a, 1000)
gmp_printf("c = %Zd\n", c)
//计算12345678900987654321*98765432100123456789
mpz_init_set_str(b, "12345678900987654321", 10)//10进制
mpz_init_set_str(c, "98765432100123456789", 10)
mpz_mul(d, b, c)
gmp_printf("d = %Zd\n", d)
mpz_clear(a)
mpz_clear(b)
mpz_clear(c)
mpz_clear(d)
return 0
}
以上程序貌似是C的,编译时使李明渗用:
gcc name.c -o name.o -lgmp
对于C++,编码会方便一些:
#include<iostream>
#include<gmpxx.h>
using namespace std
int main()
{
mpz_class a
//计算2的1000次方,似乎C++就没有数学函数支持了?
a = 1
for(int i = 0i <1000i++)
a *= 2
cout<<"2^1000 = "<<a<<endl
//计算-12345*9876543210123456789
mpz_class b, c
b = -12345
c = "98765432100123456789"
cout<<"b * c = "<<b * c<<endl
return 0
}
编译用:
g++ name.cpp -o name.o -lgmpxx -lgmp
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)