2017-02-15 1 views
0

私は、ポイントクラウドのいくつかのポイントを選択するためのランダムなインデックスを探しています。 コードは次のとおりです。しかし、srand()を使用した後でも、私は3回同じ番号を取得しています。誰か助けてもらえますか?ポイントクラウドのランダムなインデックス

/* find three points randomly */ 
for (long i = 0; i < 3; ++i) 
{ 
    srand (time(NULL)); 
    cout <<"\nRandom index" << (rand() % points.size() + 1); 
} 
+0

について慎重に読んでのforループlongを使用する必要はありません[srandを()](HTTP: //www.cplusplus.com/reference/cstdlib/srand/)あなたはあなたのコードに何が間違っているかを知るでしょう。 – Redanium

+1

うん... $ srand()$は一度呼び出さなければなりません。ループ外...ありがとう:) –

+0

あなたは歓迎です;) – Redanium

答えて

1

ランダムなジェネレータには、ループの繰り返しごとに1回、同じ時間をかけます。

代わりに、開始時に一度シード:

/* find three points randomly */ 
srand(time(NULL)); 
for(int i = 0; i != 3; ++i) { 
    cout <<"\nRandom index" << (rand() % points.size() + 1); 
} 

あなたはまた、三つのステップ:)

関連する問題