|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Evgenij Masherov 2:5020/175.2 24 Oct 2002 18:17:12 To : Yuri Muhitov Subject : Re: Как получать разные числа -------------------------------------------------------------------------------- Thu Oct 24 2002 16:28, Yuri Muhitov wrote to Evgenij Masherov: >> Она лежит в stdlib.h и принадлежит к стандарту С. YM> randomize() ? YM> Hе лежит. Hет ее в моем 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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33006e003a34.html, оценка из 5, голосов 10
|