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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Kolia
Сообщений: n/a
#1

Как заставить rand() выдавать числа в нужном интервале - C++

24.08.2009, 00:35. Просмотров 1440. Ответов 2
Метки нет (Все метки)

Нужны случайные числа в диапазоне от 0 до Х, где Х - каждый раз другое число. rand() генерирует их, но их нельзя коноролировать. Может кто знает как тут быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2009, 00:35     Как заставить rand() выдавать числа в нужном интервале
Посмотрите здесь:
C++ Как заставить внешнее приложение позиционироваться в нужном месте
C++ Rand(), генерирование случайных чисел в заданном интервале
Rand() как именно генерируются эти числа C++
Rand, которая генерирует как целые, так и дробные числа C++
Как модернизировать функцию rand, что бы числа генерировались на заданом промежутке от a до b ? C++
C++ Как сгенерировать случайные числа в заданном интервале?
Отрицательный числа в rand() C++
C++ Rand() исключение числа
C++ вещественные числа через rand
C++ Rand() генерирует одни и те же числа
Rand() создает одинаковые числа C++
числа которые в интервале(100-200) читаются как с начала так и с конца C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
24.08.2009, 12:15     Как заставить rand() выдавать числа в нужном интервале #2
Если речь идет о VC++, то ф-ция rand генерирует случайные числа в диапазоне от 0 до RAND_MAX (не забудь про srand перед использованием rand, что-то вроде srand(time(NULL)) ).

Для того чтобы привести сгенерированное число к нужному диапазону можно воспользоваться простейшим преобразованием:

int n = (int)((double)rand()/RAND_MAX * nUpperBound);

где nUpperBound - верхняя граница диапазона, то есть сгенерированные таким образом числа будут лежать в диапазоне от 0 до nUpperBound. Для того, чтобы отвязаться от 0 используй сдвиг '+/- nShift'.

Однако, совсем недавно я увидел совершенно гениальное решение для задания диапазона, гораздо лучше того что приходит с ходу в голову.

См. конференцию (обязательно посмотри)
http://www.relib.com/forums/topic.asp?id=785494

Удачи, Владимир
Kolia
Сообщений: n/a
24.08.2009, 22:03     Как заставить rand() выдавать числа в нужном интервале #3
Rabotajet
Yandex
Объявления
24.08.2009, 22:03     Как заставить rand() выдавать числа в нужном интервале
Ответ Создать тему
Опции темы

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