I'm coming up on infra-red, Forget your running, I will find you
Скажите, пожалуйста, как пользоваться стандартными srand и rand в Visual C++ 2008 Express? Я хочу получить случайное значение для некой переменной, вот что я пишу, например:
srand(0); a=rand()-50;
Но он мне выдает всё время одно и тоже значение при каждом запуске программы. Почему так? Как правильно воспользоваться srand и rand? Приведите, пожалуйста, код.

Комментарии
02.10.2009 в 10:15

WAAAAAAAAAGH!!!!!!1111ONEONE
если мне не изменяет память, то нужно сделать рандомайз
02.10.2009 в 10:41

Я знаю, что я гений, но мне от этого ничуть не легче.
надо правильно инициализировать рандомайзер. Например так:
srand( (unsigned)time( NULL ) );
02.10.2009 в 13:25

I'm coming up on infra-red, Forget your running, I will find you
Vj_o-oy, на randomize ругается, что не знает такого.

mikluho, спасибо большое, работает) почему мы пишем то, что в скобках у вас? Мы как-то связываем с текущим временем?
02.10.2009 в 13:34

Я знаю, что я гений, но мне от этого ничуть не легче.
Demonic, просто это генератор всевдослучайных чисел, где каждое следующее значение вычисляется по некой формуле от предыдущего. Что бы получить новую последовательность, надо задать начало цепочки случайным образом. количество секунд с 1.1.1970 для данной задачи вполне подходит.
03.10.2009 в 11:38

I wait Caturday. I wait Catnarok.
Кстати, вопрос из той же области:
Есть ли в той же среде программирования источники истинно случайных чисел, как например линуксоидный urandom?
03.10.2009 в 11:40

Я знаю, что я гений, но мне от этого ничуть не легче.
истинно случайных не бывает.
03.10.2009 в 11:48

I wait Caturday. I wait Catnarok.
mikluho
Да? Вы уверены? Значит квантовая механика ложная теория? И тепловой шум предсказуем?
А вообще я уточнил про random.
Насчет urandom'а ошибся, кстати, это как раз ГПСЧ в линукс. А random это ГСЧ.
03.10.2009 в 12:00

Я знаю, что я гений, но мне от этого ничуть не легче.
ДихлофосЪ, пока к компьютеру не подключат квантовый детектор - у него и не будет истинно случайных чисел. Мы же про компьютеры говорили :)
03.10.2009 в 12:11

I wait Caturday. I wait Catnarok.
mikluho
А тепловой шум?
03.10.2009 в 12:18

WAAAAAAAAAGH!!!!!!1111ONEONE
ДихлофосЪ ну можно ещё помехи напряжения в сети мерять. Только я не слышал, чтобы кто-то подобные девайсы вешал в комп
03.10.2009 в 12:26

Я знаю, что я гений, но мне от этого ничуть не легче.
ДихлофосЪ, тепловой шум - если бы он влиял на вычисления... я бы не доверял такому компу...
03.10.2009 в 19:55

I wait Caturday. I wait Catnarok.
mikluho Vj_o-oy
Линукс использует счетчик тактов процессора. Также хороший тепловой шум дает АЦП на звуковой карте. Правда мощность у них не очень большая, кажется порядка нескольких тысяч случайных байт в секунду.