Здравствуйте, Testus, Вы писали:
T>Есть функция rand() для которой инициализация не нужна и она возращает unsigned long число.
Есть функция srand(int seed) которая как раз инициализирует ГСЧ (в противном случае при каждом запуске программы будет одна и та же последовательность).
Самый простой способ — это сделать srand(time()). Если программа запускается чаще, чем раз в секунду — или в ней одновременно стартуют несколько потоков — то можно в качестве семечка использовать ещё и ID потока (это уже ОС-зависимо, для виндов ::GetCurrentThreadID()) — что-то вроде srand(time() + GetCurrentThreadID() + (++g_count)).
T> Если тебе нужны какие либо вариации типа random(100) то тут уже сам придумывай я всегда делал rand() % 100.
Получится не совсем равномерное распределение, ну да и так сойдёт. Если же хочется ГСЧ с чётко оговоренными характеристиками — то проще своё написать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>