Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
the_4ajnik
Зарегистрирован: 16.03.2003 Сообщения: 2
|
Добавлено: Вс Мар 16 2003 20:25 Заголовок сообщения: random в C++ |
|
|
Народ как сделать так, чтобы значения, возвращаемые функцией random() или ей подобной не повторялись при повторном запуске программы. Заранее благодарен. |
|
Вернуться к началу |
|
|
Вася Гость
|
Добавлено: Пн Мар 17 2003 04:15 Заголовок сообщения: Да это не только в C++, это много где так. |
|
|
Не знаю точно из какого промежутка значений случайное значение в с++ производится, на какой основе. Наверное [0;1], как в учебниках всех, не суть. Дело в том, что соображает для себя сам и каждый случайное значение, и все через это дело проходят. Кто что вытворяет и на сколько фантазии хватает. Первое, что всем в голову лезет - это со временем совместить стандартный random(). Потом начинают искать другую изменяющуюся величину. Например, размер оставшегося свободного места с точностью до байта. В этих изысканиях много любопытного и суть даже не в том, что в результате получается "открытие Америки" или "изобретение велосипеда", суть в том, что каждый начинает больше понимать во всей этой кухне, понимать, что сообразить удачную процедуру не получится, если не знаком с анализом и плевать хотел на геометрию. |
|
Вернуться к началу |
|
|
sh
Зарегистрирован: 11.03.2002 Сообщения: 121
|
Добавлено: Пн Мар 17 2003 12:12 Заголовок сообщения: randomize() (-) |
|
|
. |
|
Вернуться к началу |
|
|
ilyasov Гость
|
Добавлено: Пн Мар 17 2003 13:21 Заголовок сообщения: случайные последовательности зависят от некоторого стартового значения |
|
|
Процедуры генерации случайных чисел обычно отталкиваются от некоторого стартового значения. Это значение определяет как длину последовательности (до ее повторения) так и саму последовательность. Не зря же последовательности называют псевдослучайными, т.к. они в действительности порождают вполне определенные величины. Для получения различных последовательностей при разных запусках программы следует менять стартовое значение последовательности по какому-либо алгоритму. Можно использовать состояние машины, системы для выбора стартового значения. Вариант выбора -произвольный. В FreeBSD существует даже /dev/random специально для этих целей. |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Пн Мар 17 2003 20:50 Заголовок сообщения: Re: random в C++ |
|
|
Используй системное время в качестве значения для инициалиизации. |
|
Вернуться к началу |
|
|
Юрий Гость
|
Добавлено: Ср Мар 19 2003 12:43 Заголовок сообщения: Re: random в C++ |
|
|
То что вы сказали, умные люди уже сделали инициализация по времени - randomize А генератор случайной,равномерно распределенной величины почти всегда опирается на предыдущие 2 числа,в основном : c3 = (a*c1 + b*c2) % c ; a,b,c = const c1,c2 - пред. числа |
|
Вернуться к началу |
|
|
|