2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Свой random c++
Сообщение23.03.2010, 18:18 
Глянул прогу, с рандомом

Код:
int random(int n)
{
    srand ( time(NULL) );

return rand()%n;
}


Если вызывать подряд, то возвращает и для первого и для второго слуая одинаковые числа, если передавать одно и тоже число, т.е.
Код:
line=random(100);
column=random(100);

Есть ли ещё какой способ?

 
 
 
 Re: Свой random c++
Сообщение23.03.2010, 18:24 
Аватара пользователя
 !  Не плодите одинаковые темы. Дубликат удалён.

 
 
 
 Re: Свой random c++
Сообщение23.03.2010, 18:25 
Аватара пользователя
srand() один раз только надо вызывать, для затравки. Потом только rand().

 
 
 
 Re: Свой random c++
Сообщение23.03.2010, 22:08 
Аватара пользователя
mycoding в сообщении #301390 писал(а):
Если вызывать подряд, то возвращает и для первого и для второго слуая одинаковые числа, если передавать одно и тоже число, т.е.
Логично, потому что за время выполнения этих команд системное время не успевается смениться.
mycoding в сообщении #301390 писал(а):
Есть ли ещё какой способ?
Устанавливать seed только один раз, в начале выполнения программы.

 
 
 
 Re: Свой random c++
Сообщение23.03.2010, 22:30 
Спасибо, помогло

 
 
 
 Re: Свой random c++
Сообщение24.03.2010, 11:02 
Кстати, в тех же numerical receipes были примеры генераторов псевдослучайных чисел. Но современные генераторы и так неплохо работают. За основу seed берется так называемая энтропия, вычисляющаяся из множества различных параметров (загрузка оперативки, процессора и т.п.), меняющихся с течением времени.

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group