我试图这样做如下:
int main(){
mpz_t v;
mpf_class u,w,x[3][200];
for(i=0;i<n;i++){
for(j=0;j<3;j++){
mpz_random(v,1000000);
mpf_div_ui(w.get_mpf_t(),v,1000000);
mpf_div(u.get_mpf_t(),1,2);
mpf_sub(w.get_mpf_t(),w.get_mpf_t(),u);
mpf_mul(x[i][j].get_mpf_t(),w.get_mpf_t(),2);
}
}
}
但是整数和浮点数一起使用是行不通的。基本上尝试分配随机整数,除以最大值,整数可能会给出一个介于 0 和 1 之间的数字(不一定是整数)。减半并乘以 2 会得到一个介于 -1 和 1 之间的随机数,这是我想要的,但是就像我说的那样,这会因类型而导致问题。