Как я могу генерировать разные случайные числа в один момент в C ++? - PullRequest
2 голосов
/ 03 апреля 2011

Как я могу генерировать разные случайные числа в один момент в c ++?

Теперь я использую

while ( flag )
{
   ....
   srand( time( NULL) ); 
   int rndSig = rand() % 10 + 1;
   ......
}

Но в один момент все числа равны.Как я могу генерировать разные числа в цикле while?

Ответы [ 3 ]

7 голосов
/ 03 апреля 2011

Переместить срандель из цикла while.Вам нужно вызвать его только один раз, rand () сохраняет статическое состояние.

5 голосов
/ 03 апреля 2011

Вы не запускаете генератор случайных чисел непосредственно перед его использованием.Просто используйте srand один раз перед циклом.

4 голосов
/ 03 апреля 2011

Вот так:

srand( time( NULL) ); 
while ( flag )
{
   ....
   int rndSig = rand() % 10 + 1;
   ......
}

Если вам нужно другое распределение или лучшая случайность, вам нужно использовать библиотеку.

...