Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
WinstonCherchil
7 / 7 / 0
Регистрация: 20.01.2011
Сообщений: 73
#1

srand(), rand() и их seed - C++

22.10.2013, 14:27. Просмотров 1362. Ответов 3
Метки нет (Все метки)

Пишу класс, объекты которого представляют из себя трехмерные модели планет.
Для того что бы разнообразить ландшафт использую алгоритм, основанный на srand(seed) и rand().

Вопросы:
Гарантированы ли одинаковые генерации чисел для одного и тогоже семени рандома? (нужно для того что бы передавать число, ну или файл настроек генерации на крайний случай, а не всю модель целиком)
Зависит ли генерация чисел от платформы, на которой компилируется программа. (Планируется использовать как MinGW+Win так и GCC+FreeBSD)

Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2013, 14:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос srand(), rand() и их seed (C++):

srand и rand - C++
Здравствуйте. Надо заполнить массив единицами и нулями. srand (time (NULL)); for (int i=0; i<size; i++){ val=rand()%2; } ...

rand, srand и т.д - C++
Дана целочисленная матрица A (N,M), в которой имеются ровно два одинаковых элемента. Найти индексы этих элементов. Вопрос: можно ли...

Различия srand() и rand() - C++
Привет, форумчане! Изучаю с++шник, внезапно появился нездоровый интерес. Чем srand() отличается от rand()? Знаю, что srand() генерирует...

rand() & srand() - C++
кто знает как работает пара функции rand() и srand(). я знаю как это пара функци работает.мне всегда интересовало как это зделано .одно...

Объясните что делает эта программа (for,rand,srand) - C++
Пожалуйста объясните что делает эта программа. Поподробней про for(i=1;i<=5;i++) , a=rand()%(20-10+1)+10; и b=b+a;c=b/i; #include...

Нужно ли задавать random seed в каждой функции? - C++
Хочу добавить в функцию "multiplicationTable" несколько вариантов восклицаний на правильный и неправильный ответ. Эти варианты будут...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
22.10.2013, 14:43 #2
Цитата Сообщение от WinstonCherchil Посмотреть сообщение
Гарантированы ли одинаковые генерации чисел для одного и тогоже семени рандома?
т.е. например для случаев, где srand(c), c - константа? Да.

Цитата Сообщение от WinstonCherchil Посмотреть сообщение
Зависит ли генерация чисел от платформы, на которой компилируется программа
С srand не зависит.

Цитата Сообщение от WinstonCherchil Посмотреть сообщение
нужно для того что бы передавать число, ну или файл настроек генерации на крайний случай, а не всю модель целиком)
Вам жалко памяти на жестком диске? Вы полагаете, что программе лучше выполнить лишнюю работу по генерации, а затем нарисовать нежели считать последовательность точек с файла и отрисовать по ним? Если нужна одинаковая поверхность то лучше вспомогательной программой запишите N чисел в файл, а затем считывайте эти числа уже основной программой.

Добавлено через 32 секунды
Кстати, что касается графики, то тут srand вам может не хватить.
1
WinstonCherchil
7 / 7 / 0
Регистрация: 20.01.2011
Сообщений: 73
22.10.2013, 15:17  [ТС] #3
Цитата Сообщение от MrGluck Посмотреть сообщение
Вам жалко памяти на жестком диске? Вы полагаете, что программе лучше выполнить лишнюю работу по генерации, а затем нарисовать нежели считать последовательность точек с файла и отрисовать по ним? Если нужна одинаковая поверхность то лучше вспомогательной программой запишите N чисел в файл, а затем считывайте эти числа уже основной программой.

Добавлено через 32 секунды
Кстати, что касается графики, то тут srand вам может не хватить.
Спасибо.

Жалко не места на жестком диске, жалко времени для передачи через интернет больших миров. К тому же никто не запрещает передавать уже готовый, сохраненный мир. Это уже дело вкуса и провайдера пользователей.

Ландшафт не создается обычным рандомом, алгоритм немного сложнее. Если интересно, за основу взят Алгоритм «diamond-square», который будет немного изменен, для того чтобы можно было генерировать, как случайные миры, так и отталкиваясь от сида. Будет создавать, как плоские, прямоугольные миры, так и сферические (типа планета )
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,061
Завершенные тесты: 1
22.10.2013, 15:39 #4
Цитата Сообщение от WinstonCherchil Посмотреть сообщение
для того чтобы можно было генерировать, как случайные миры, так и отталкиваясь от сида.
накрайняк можно свою функцию псевдослучайной последовательности написать и все
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2013, 15:39
Привет! Вот еще темы с ответами:

srand - C++
что значит строка? srand((unsigned)time(NULL);

Srand - C++
есть кусок кода: srand(time(NULL)); for (jeka = 0; jeka < 100000; jeka++) { jora = rand() % 9; cout << jora << " "; ...

Srand - C++
что делает srand? (наприме: srand(static_cast<unsigned int>(time(0))); )

Srand - C++
Нужно сделать так чтобы начальное значение Srand было не от времени а от тактовой частоты процессора, подскажите как сделать


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.10.2013, 15:39
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru