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

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

Войти
Регистрация
Восстановить пароль
 
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
#1

Как заполняет функция rand? - C++

16.12.2012, 20:47. Просмотров 702. Ответов 12
Метки нет (Все метки)

Как заполняет функция rand? Допустим у нас есть вот такое:
rand()%10;
rand()%100-50;
rand()%20-20;
В каком диапазоне будут заполняться числа?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 20:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как заполняет функция rand? (C++):

Как сделать так, чтобы функция rand() возвращала разные значения - C++
Добрый вечер, как можно в visual studio в цикле каждый раз задавать новые рандомные значения перменной, к примеру for(int i=0;i<10;i++) ...

Функция создает объекты и указателями на них заполняет массив. При выходе из функции вызываются деструкторы объектов. Как сохранить объекты? - C++
Вопрос прост: как при выходе из функции сохранить объекты, которые были созданы в данной функции (указатели объектов положены в массив)?

Функция rand() - C++
Помогите, как сделать так что бы функция random при каждом запросе к ней генерировала случайное число ( сейчас все 3 числа одинаковые) ...

Функция - rand - C++
Здравствуйте. Проблема - нужно сгенерировать случайное число из области чисел введённых в переменную. Допустим, я создаю переменную: ...

функция rand() - C++
У меня такой вопрос, как можно сделать искать рандомные числа за исключением определенных! Допустим нахожу рандомное число от 0 до 10,...

Функция rand(); - C++
Нужно чтобы функция rand(); выдавала значения в заданном интервале то есть к примеру от 230 до 233 нужно чтобы выдавало числа 230 ...

12
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 20:49 #2
rand()%10; - от 0 до 9
rand()%100-50; - от -50 до 49
rand()%20-20; - от -10 до 19

Добавлено через 1 минуту
грубо говоря rand()%n может сгенерировать n разных чисел в диапазоне от 0 до n-1
1
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
16.12.2012, 20:50 #3
rand()%10; // от 0 до 9
rand()%100-50; // от -50 до 49
rand()%20-20; // от -20 до -1
2
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 20:51 #4
rand() % диапозон + 500

-если мы прибавляем 500, значит минимальное число=500; диапозон - значение возможных вариантов после 500 (500, 501 ... 500+диапозон).
1
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
16.12.2012, 20:53  [ТС] #5
Возможно кто-то напишет по какому принципу заполняет rand! Я что-то понять не могу:
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 20:55 #6
% - деление с остатком. Больше мы ничем не можем тебе помочь
0
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 21:03 #7
Цитата Сообщение от tokar2 Посмотреть сообщение
Возможно кто-то напишет по какому принципу заполняет rand
Попробуй вызвать просто rand() и посмотреть, какое значение получится. Это типа случайное число.

Потом ты берешь остаток от деления этого числа, ну скажем как в твоем примере на 10, т.е. rand()%10.

Остаток от деления на 10 может быть 0, 1, 2, .... 9. Зависеть это будет от числа, сгенерированного rand().
1
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
16.12.2012, 21:04 #8
Функция rand() генерирует псевдослучайное число.
В выражении rand()%A+B берется остаток от деления псевдослучайного числа на A и прибавляется B.
Диапазон составляет [B;A-B)
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
16.12.2012, 21:08 #9
Цитата Сообщение от tokar2 Посмотреть сообщение
Возможно кто-то напишет по какому принципу заполняет rand! Я что-то понять не могу:
а ты объясни, что означает пассаж "по какому принципу заполняет rand!", а то я что-то понять не могу, чего ты тут понять не можешь :
0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
16.12.2012, 21:15  [ТС] #10
Цитата Сообщение от novi4ok Посмотреть сообщение
а ты объясни, что означает пассаж "по какому принципу заполняет rand!", а то я что-то понять не могу, чего ты тут понять не можешь :
Это и значит! Допустим у нас есть такое: rand()%100-100 и я не понимаю как оно берет диапазон этих чисел!
0
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 21:15 #11
Цитата Сообщение от Croessmah Посмотреть сообщение
В выражении rand()%A+B берется остаток от деления псевдослучайного числа на A и прибавляется B.
Диапазон составляет [B;A-B)
Тогда уж [B;A+B) наверное...

Не по теме:

у меня в третьем выражении ошибка, я даже не заметил)

0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 21:16 #12
Вы в курсе, что tokar2 уже все давно понял
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
16.12.2012, 21:32 #13
Цитата Сообщение от tokar2 Посмотреть сообщение
Допустим у нас есть такое: rand()%100-100 и я не понимаю как оно берет диапазон этих чисел!
Допустим, есть
rand()%20+80;

предположим, что функция rand() вернула число 1232
тогда получаем 1232%20=12
12+80=92
Так вот и получается

Добавлено через 33 секунды
Цитата Сообщение от Schizorb Посмотреть сообщение
Тогда уж [B;A+B) наверное...
точно!
0
16.12.2012, 21:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 21:32
Привет! Вот еще темы с ответами:

Функция rand() - C++
Здравствуйте, имеется код с реализацией алгоритма прямого поиска и я не могу понять как задается длина строки и подстроки, в частности...

Функция rand() - C++
Сделал задания: Комп должен угадать число какое я задал в уме. В диапазоне от 1 до 100 . void Ex() { srand(time(NULL)); int first =...

Функция rand() - C++
как с помощью этой функции заполнить массив случайными числами? знаю.что нужно подключить библиотеку <time.h> ,а дальше?...

Функция rand - C++
Помогите написать программу) В цикле, используя функцию rand генерировать числа в диапазоне от 0 до 9. Из этих чисел составить цеиое...


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

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

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