Страница 2 из 2
Re: Random в С++
Добавлено: 04 апр 2008, 10:06
ROBOT_rus
Поставил srand , всёравно таже фигня - выдаёт каждый раз одни и теже значения.
Код: Выделить всё
#include <iostream.h>
#include <stdlib.h>
int GetRandom(int rand_count)
{
for (int i =0;i < rand_count; i++)
{
cout << rand() << endl;
}
return rand_count;
}
void main()
{
srand(10);
GetRandom ( 10 );
}
Если поменять значение в srand(); то числа выводимые меняются) чтоже мне теперь каждый раз руками менять ?
Re: Random в С++
Добавлено: 04 апр 2008, 11:18
BBB
ROBOT_rus писал(а):Поставил srand , всёравно таже фигня - выдаёт каждый раз одни и теже значения.
..................................
Если поменять значение в srand(); то числа выводимые меняются) чтоже мне теперь каждый раз руками менять ?
BBB писал(а):
http://msdn2.microsoft.com/en-us/library/398ax69y.aspx
(Там внизу страницы, к слову, неплохой пример есть, в частности, как получить число в нужном диапазоне, как инициализировать srand новым ["случайным"] числом:
// Seed the random-number generator with the current time so that
// the numbers will be different every time we run.
srand( (unsigned)time( NULL ) );
)
. .
Re: Random в С++
Добавлено: 07 апр 2008, 18:29
Albor
Наверное нужно пояснить, что инициализация генератора функцией time с параметром NULL, приводит к генерации каждый раз разной последовательности, так как данная функция, возвращает, по-моему, текущее время в милисекундах - значит srand, при каждом запуске программы будет получать число, отличное от предыдущих. А если в srand передавать константу, то и результат всегда будет один и тот же.
Re: Random в С++
Добавлено: 08 апр 2008, 09:50
BBB
Albor писал(а):Наверное нужно пояснить, что инициализация генератора функцией time с параметром NULL, приводит к генерации каждый раз разной последовательности, так как данная функция, возвращает, по-моему, текущее время в милисекундах ....
MSDN дает следующее описание. Время, таки, оказалось в секундах, [s]прошедших со времен царя Гороха[/s] считая от полуночи January 1, 1970:
Код: Выделить всё
[b]time[/b]
Gets the system time.
[b]time_t time( time_t *timer );[/b]
[b]Parameter[/b]
[i]timer[/i] - Storage location for time
[b]Remarks[/b]
The [b]time[/b] function returns the number of seconds elapsed since midnight
(00:00:00), January 1, 1970, coordinated universal time, according to the
system clock. The return value is stored in the location given by [i]timer[/i]. This
parameter may be [b]NULL[/b], in which case the return value is not stored.
Re: Random в С++
Добавлено: 08 апр 2008, 10:20
Vovchik
ROBOT_rus, а ты в
mein() в начале напиши
randomize(); ето команда запускает генератор случайных чисел а потом командой
rand()%(число) ты выбераеш границу от 0 до (число)-1 !!!!

.
Добавлено: 08 апр 2008, 13:00
BBB
Vovchik писал(а):ROBOT_rus, а ты в
mein() в начале напиши
randomize(); ето команда запускает генератор случайных чисел а потом командой
rand()%(число) ты выбераеш границу от 0 до (число)-1 !!!!

Угу. А самые умные сейчас пойдут грузить
чугуний (c)
1) Нет в MS C++ ф-ии
randomize();
2)
BBB писал(а):rand не имеет параметров:
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX. Use the srand function to seed the pseudorandom-number generator before calling rand.