C++ NTL库:如何为ZZ\p分配一个大整数

C++ NTL库:如何为ZZ\p分配一个大整数,c++,ntl,C++,Ntl,在NTL库中,我知道我们可以将一个大的整数值定义为: ZZ p; p=to_ZZ("1111111111111111111111111111111333333333333333"); ZZ_p::init(p); ZZ_p b(12); 我的问题是:如果我想给b而不是12分配一个大整数,该怎么办 e、 g 因此,它应该对p进行模化,并将1分配给b 我需要它来做fFindRoots(vec_ZZ_p&x,const ZZ_pX&ff),这样就可以将大整数作为系数(多项式)首先:我尝试了你发布的代

在NTL库中,我知道我们可以将一个大的整数值定义为:

ZZ p;
p=to_ZZ("1111111111111111111111111111111333333333333333");
ZZ_p::init(p);
ZZ_p b(12);
我的问题是:如果我想给b而不是12分配一个大整数,该怎么办

e、 g

因此,它应该对
p
进行模化,并将
1
分配给
b


我需要它来做
fFindRoots(vec_ZZ_p&x,const ZZ_pX&ff)
,这样就可以将大整数作为系数(多项式)

首先:我尝试了你发布的代码和行
ZZ_p b(12)对我不起作用。
我不得不使用

ZZ_p b;
b = 12;
如果你想分配一个大整数,你可以通过

ZZ_p b;
b = to_ZZ_p(conv<ZZ>("1111111111111111111111111111111333333333333334"));
ZZ_p b;
b=to_ZZ_p(conv(“1111111111111111111 33333333333 4”);

char biginger[47]=“1111111111111111111 33333333333 4”;
ZZ_p b;
b=to_ZZ_p(conv(biginger));

你不知道如何用变量替换“111…33334”。因为我有一个大整数数组,我想把它们转换成zzp。我试过:string s=“111…33334”;b=至_ZZ_p(conv(s));但它不起作用。@user5111525您的“大整数”是什么类型的?类型是“mpz_t”GMP大整数。@user5111525我不知道如何将其转换为
ZZ
类型。我的猜测是,你必须先转换成cstring。我加了一个例子,谢谢。我的操作如下:1-将大整数转换为字符串:string s=“111111…..2”;2-char*cc=新字符[s.length()];3-strcpy(cc,s.c_str());4-ZZ_p b=to_ZZ_p(conv(cc));
ZZ_p b;
b = to_ZZ_p(conv<ZZ>("1111111111111111111111111111111333333333333334"));
char bigInteger[47] = "1111111111111111111111111111111333333333333334";
ZZ_p b;
b = to_ZZ_p(conv<ZZ>(bigInteger));