我试图找到随机指数来选择点云中的一些点。 以下是代码。但是,即使在使用srand()之后,我也会三次获得相同的数字。有人可以帮忙吗?
/* find three points randomly */
for (long i = 0; i < 3; ++i)
{
srand (time(NULL));
cout <<"\nRandom index" << (rand() % points.size() + 1);
}
答案 0 :(得分:1)
每次循环迭代时,您都会在同一时间播种随机生成器。
而是在开始时播种一次:
/* find three points randomly */
srand(time(NULL));
for(int i = 0; i != 3; ++i) {
cout <<"\nRandom index" << (rand() % points.size() + 1);
}
您也不需要使用long
进行三个循环:)