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

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

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

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

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

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

Как заставить внешнее приложение позиционироваться в нужном месте - C++
Как заставить внешнее приложение позиционироваться в нужном месте? Например, чтобы notebook.exe при запуске позиционировался в настройках...

Rand(), генерирование случайных чисел в заданном интервале - C++
дана функция int MyDblRand(double a,double b) надо написать так что когда будем вызывать функцию в мейн , и напишем там цифры .например...

Rand() как именно генерируются эти числа - C++
Функция rand(). Мне для ответа по ОПИ мало сказать что она возвращает псевдослучайные числа от 0 до RAND_MAX. Надо рассказать как именно...

Rand, которая генерирует как целые, так и дробные числа - C++
Доброго времени суток, форумчане. подскажите, пожалуйста, как нужно прописать функцию rand(), чтобы я получил и целые, и дробные элементы....

Как модернизировать функцию rand, что бы числа генерировались на заданом промежутке от a до b ? - C++
Как модернизировать функцию rand, что бы числа генерировались на заданом промежутке от a до b ?

Как сгенерировать случайные числа в заданном интервале? - C++
как правильно сгенерировать вещественный массив на промежутке mas = (float)(rand()%20001)/50); вроде правильно сделал, а в компиляторе...

2
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
24.08.2009, 12:15 #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

Удачи, Владимир
0
Kolia
24.08.2009, 22:03 #3
Rabotajet
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2009, 22:03
Привет! Вот еще темы с ответами:

Rand() исключение числа - C++
У меня есть код a = -2 + rand () %10; Мне нужно чтобы генерировало все числа от 2- до 10 , кроме 0 Пытался сделать вот так : a =...

Отрицательный числа в rand() - C++
Как?

Rand() создает одинаковые числа - C++
inline void Playing_card::set_random_suit() { std::srand(time(NULL)); suit_.val = rand() % (SPADES - CLUBS) + CLUBS; ...

вещественные числа через rand - C++
Привет всем, прошу помощи в генерации вещественных случайных чисел через rand в диапазонах: 1)от 0 до 450.0 2)от -15 до 15.0 3)от 0...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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