我正在尝试从 [0, 1) 范围内的实数均匀分布中生成数字。但是编译器正在生成超出 [0, 1) 范围的数字。
这是代码:
int main(void) {
// Solver solve;
mt19937 mteng;
mteng.seed(rdtsc());
uniform_real<double> uniRealD;
double randomNum;
for (int index = 0; index < 10; index++){
randomNum = uniRealD(mteng);
if(randomNum<0.5)
cout<<index<<" no. random number is: "<<randomNum<<endl;
else
cout<<"number generate is not in range"<<endl;
}
return 0;
}
关于代码可能有什么问题的任何评论?我rdtsc()
用作种子。