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

Случайные числа в определенном диапазоне - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
30.03.2011, 14:42     Случайные числа в определенном диапазоне #1
Всем доброго времени суток. В книжке наткнулся на упражнение со случайными числами.Если коротко,то задание следующее - написать ЕДИНСТВЕННЫЙ оператор,который печатает случайное число из набора : 2,4,6,8,10
Как указать именно эти числа?Понятно,что здесь все четные,но как это отразит в rand()?
И еще вопрос вдогонку.
C++
1
n = 2 + rand() % 10;
По идеи,данная переменная может содержать числа в диапазоне от 2 до 10,но на практике,почему-то,диапазон увеличился до 11.Почему так происходит?
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2011, 14:42     Случайные числа в определенном диапазоне
Посмотрите здесь:

Случайные числа в заданном диапазоне C++
Случайные числа C++
Случайные числа в C++ C++
случайные числа C++
C++ Случайные числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.03.2011, 14:55     Случайные числа в определенном диапазоне #2
Levanoff, а Вы посчитать пробовали вообще? Максимальное возможный результат от (x % 10) равен 9, далее (9 + 2) = 11. Магия!

Добавлено через 5 минут
Цитата Сообщение от Levanoff Посмотреть сообщение
ЕДИНСТВЕННЫЙ оператор,который печатает случайное число из набора : 2,4,6,8,10
2 * (rand() % 5 + 1)
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
30.03.2011, 15:02  [ТС]     Случайные числа в определенном диапазоне #3
Спасибо.
Я не так долго давно начал изучать С++,поэтому еще не во все въезжаю. К тому же в книге,по которой я занимаюсь, про rand написано следующее: number=shiftValue + rand() % scalingFactor;
где shiftValue - первое число в диапазоне,а scalingFactor - ширина этого диапазона.
Вот из этого я и исходил.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
30.03.2011, 15:13     Случайные числа в определенном диапазоне #4
Откопал когда-то написанную ф-цию для решения подобной задачи.
C++
1
2
3
4
int randFromSet( int lower, int step, int amount )
{
     return lower + step * ( rand() % amount );
}
Ф-ция с 3 параметрами, lower - первый элемент набора, step - шаг, amout - кол-во членов (за плохой англицкий если что - извиняюсь). Для твоего случая вызов ф-ции будет:
C++
1
randFromSet( 2, 2, 5 );
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.03.2011, 15:16     Случайные числа в определенном диапазоне #5
Цитата Сообщение от Levanoff Посмотреть сообщение
Я не так долго давно начал изучать С++,поэтому еще не во все въезжаю.
Из Си++ здесь надо знать, как обозначаются арифметические операции и что такое rand. Дальше обычная арифметика.
Levanoff
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 31
30.03.2011, 15:36  [ТС]     Случайные числа в определенном диапазоне #6
Спасибо за помощь!Что-то меня в небольшой тупняк ставит % вкупе с rand,но надо потренироваться и думаю все получится.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2011, 15:59     Случайные числа в определенном диапазоне
Еще ссылки по теме:

C++ Написать игру “Угадай число!”. Компьютер загадывает число в определенном диапазоне, а пользователь пытается его угадать
C++ Случайные числа
Найти из массива пары чисел, сумма которых укладывается в определенном диапазоне C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
30.03.2011, 15:59     Случайные числа в определенном диапазоне #7
Levanoff, % - остаток от целочисленного деления.
rand() - псевдослучайное целое число из отрезка [0;RAND_MAX]
Yandex
Объявления
30.03.2011, 15:59     Случайные числа в определенном диапазоне
Ответ Создать тему
Опции темы

Текущее время: 04:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru