Столкнулся со следующей проблемой. При генерации случайных чисел (язык C) получается неудовлетворительный результат — выходят последовательности вида N, N, N+n, N+n, N+2n, N+3n... Компилятор — gcc для 64-разрядной Windows.
Числа получаю с помощью функций rand() и srand():
Код:
srand(clock());
long int x = rand ();
/*Оба способа работают примерно одинаково*/
srand(time(NULL));
long int x = rand ();
Я что-то делаю неправильно, или это косяк компилятора? Можно ли придумать что-нибудь еще кроме инициализации системным временем?
Еще интересно было бы узнать про то, как генерировать случайные числами средствами STL C++.