Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ersh Гость
|
Добавлено: Вс Апр 27 2003 00:10 Заголовок сообщения: Генератор случайных чисел на с++ |
|
|
Как мне сделать иак, чтобы генерилось каждый раз новое случайное число???? Смотрел футкцию rand() , тогда как установить пределы??? я так понял функция srand() устанавливает нижний предел, а как тогда установить верхний??? Если можно, напишите, например, генерация случайного числа от 20 до 40... Заранее спасибо... |
|
Вернуться к началу |
|
|
romson
Зарегистрирован: 28.04.2003 Сообщения: 2
|
Добавлено: Пн Апр 28 2003 00:34 Заголовок сообщения: Re: Генератор случайных чисел на с++ |
|
|
Читайте внимательнее. Функция srand() устанавливает не нижний предел, а стартовое число в последовательности. А rand() всегда генерит числа в диапазоне от до RAND_MAX. Т.о. получение числа в требуемом диапазоне: (если имеется ввиду от 20 до 40 включительно)
int x = rand() * 21 / RAND_MAX + 20;
или лучше так:
int x = rand() % 21 + 20; |
|
Вернуться к началу |
|
|
Ersh Гость
|
Добавлено: Пн Апр 28 2003 01:08 Заголовок сообщения: Спасибо, теперь чтобы они не повторялись мне надо что-то типо srand( (unsigned)time( NULL ) ); а можно как нибудь подругому сде |
|
|
вв |
|
Вернуться к началу |
|
|
romson
Зарегистрирован: 28.04.2003 Сообщения: 2
|
Добавлено: Пн Апр 28 2003 15:00 Заголовок сообщения: Re: Спасибо, теперь чтобы они не повторялись мне надо что-то типо srand( (unsigned)time( NULL ) ); а можно как нибудь подругому |
|
|
Согласно MSDN, функция time() возвращает время в секундах, прошедшее с полночи 1 января 1970 года. Так что, последовательность гарантированно будет каждый раз разная, если, конечно не вызывать srand() по несколько раз в секунду. А если программируешь под Windows, то можно ещё использовать GetTickCount() - возвращает время в миллисекундах, прошедшее со времени включения компьютера. |
|
Вернуться к началу |
|
|
Chea Гость
|
Добавлено: Ср Апр 30 2003 07:04 Заголовок сообщения: А Randomize() там нет? (-) |
|
|
. |
|
Вернуться к началу |
|
|
|