
Другие языки программирования и технологии
Язык си функция rand, не пойму почему так
Если взять остаток от деления случайное число на определённое число то получиться от нуля это я понял, но почему N-1 ?


Описание
Функция rand генерирует случайные числа, возвращает псевдослучайное целое число в диапазоне от 0 до RAND_MAX.
Это число генерируется алгоритмом, который возвращает последовательность псевдо-случайных чисел. Этот алгоритм использует своего рода «семя» — число, для создания серий случайных чисел. То есть, если семя всегда будет одно и то же, то сгенерированная последовательность чисел не будет меняться, исчезнет фактор стохастичности.
RAND_MAX это константа, определенная в . По умолчанию её значение может изменяться, в зависимости от реализации, но, как правило, макрос RAND_MAX меньше значения 32767 не бывает.
Типичный способ генерации псевдослучайных чисел в определенном диапазоне с использованием функции rand выполняется следующим образом:
(value % 100) - генерация чисел в диапазоне от 0 до 99
(value % 100 + 1) - генерация чисел в диапазоне от 1 до 100
(value % 30 + 1985) - генерация чисел в диапазоне от 1985 до 2014
Однако, использование операции остаток от деления не создает поистине равномерно распределенных случайных чисел в заданном диапазоне, но, как правило, такой способ генерации чисел является хорошим приближением для небольших диапазонов.
Функция rand генерирует случайные числа, возвращает псевдослучайное целое число в диапазоне от 0 до RAND_MAX.
Это число генерируется алгоритмом, который возвращает последовательность псевдо-случайных чисел. Этот алгоритм использует своего рода «семя» — число, для создания серий случайных чисел. То есть, если семя всегда будет одно и то же, то сгенерированная последовательность чисел не будет меняться, исчезнет фактор стохастичности.
RAND_MAX это константа, определенная в . По умолчанию её значение может изменяться, в зависимости от реализации, но, как правило, макрос RAND_MAX меньше значения 32767 не бывает.
Типичный способ генерации псевдослучайных чисел в определенном диапазоне с использованием функции rand выполняется следующим образом:
(value % 100) - генерация чисел в диапазоне от 0 до 99
(value % 100 + 1) - генерация чисел в диапазоне от 1 до 100
(value % 30 + 1985) - генерация чисел в диапазоне от 1985 до 2014
Однако, использование операции остаток от деления не создает поистине равномерно распределенных случайных чисел в заданном диапазоне, но, как правило, такой способ генерации чисел является хорошим приближением для небольших диапазонов.
Андрей Галузинский
http://otvet.mail.ru/question/176271946
потому что остаток от деления всегда меньше делителя в данном случае делитель n. Иначе это уже не остаток.
Андрей Галузинский
помогите пжста http://otvet.mail.ru/question/176271946
N-1 Означает "взять значение порядкового номера последнего элемента с вычетом нуля":)
Иначе есть вероятность получить число, выходящее за пределы входного значения т. е "N".
Иначе есть вероятность получить число, выходящее за пределы входного значения т. е "N".
Похожие вопросы
- В языке си функция if (x) {} и if(x!=0){} это дно и тоже?
- Программирование на языке СИ с использованием подпрограммы-функции
- Функции в языке СИ
- Язык си, двухмерный массив и функция.
- Почему язык СИ такой сложный?
- Си. scanf(). не пойму почему не считываются значения. Подскажите, пожалуйста.
- Вопрос по функции rand srand c++
- Си. функции
- Задачка по нахождению суммы цифр числа на языке Си... Не могу разобраться с функциями Div и Fmod...
- язык СИ. НУЖНО ОКРУГЛИТЬ ЧИСЛО В БОЛЬШУЮ СТОРОНУ БЕЗ ФУНКЦИИ FLOOR ЗАРАНЕЕ СПАСИБО