Re: Как получать разные числа

From
Evgenij Masherov (2:5020/175.2)
To
Yuri Muhitov
Date
2002-10-24T18:17:12Z
Area
RU.ALGORITHMS
From: "Evgenij Masherov" <EMasherow@nsi.ru>

Thu Oct 24 2002 16:28, Yuri Muhitov wrote to Evgenij Masherov:

 >> Она лежит в stdlib.h и принадлежит к стандарту С.

 YM>  randomize() ?
 YM> Не лежит. Нет ее в моем stdlib.h из состава VC6.0. Есть rand() srand(), а
 YM> randomize() нет.
 YM> И в файле crtdll.dll нет такой экспортированной функции.

В таком случае можно ее определить, как это сделано в Борланде, или
использовать эквивалент:

inline void _RTLENTRY randomize(void) { srand((unsigned) time(NULL)); }
(Для С++)
#define randomize() srand((unsigned)time(NULL))
(Для чистого С)

Смысл здесь один и тот же. Генератор _псевдо_случайных чисел будет выдавать
одно и то же значение, если инициализировать его одним и тем же числом.
Использование в качестве инициализатора времени приведет к тому, что при
неодновременных вызовах инициализация будет разная, а один прогон ГСЧ
обеспечит то, что его выход будет различен, даже если на входе отличия были в
последнем разряде. Разумеется, для инициализации можно использовать любое
неопределенное в программе значение (ввод с клавиатуры, звуковой карты и пр.)

Евгений Машеров АКА СанитарЖеня

--- ifmail v.2.15dev5
 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)