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)