Запоминаем технические сведения о случайных числах
Смотреть PDF | Просмотр печати
от: Guest
Просмотров: 440
Слов: 348
Про генератор случайных чисел
Все события и процессы в данном мире бывают случайные и закономерные. Давайте-ка попытаемся обратить внимание на случайные случаи с точки зрения программиста, ведь о случаях, которые происходят закономерно нам все известно. Для того, что бы на языке программирования си извлечь случайное число создан механизм называемый генератор случайных чисел. Все события взаимосвязаны на системном времени, следовательно, его генерация не представляется случайной. Случайные значения как раз и образуются из данного программного времени. При современных алгоритмах операторов результат выборки можно всерьез считать случайным, но все же правильнее будет именовать механизм – генератором псевдослучайных значений. Однако в программировании процессы взаимодействуют с программистом по средством функций. Рассмотрим их подробнее.
Функции rand, srand
Для привлекательности ткущего заголовка не грех было б имена функций начертать с заглавной буквы, но как Вы слышали, что на языке С (си) регистр представляет очень большую роль. Надо писать не как лучше, а как точнее. В программировании за выбор случайных чисел отвечает оператор rand. Посмотрим на примере, как нам нужно применять эту функцию:int h = rand();
На данном примере видно, что результатом данной функции является целочисленное значение. Случайное число изменяется в диапазоне от нуля до константы, причем эта константа указывается в директиве, где располагается текущий оператор. Ну а теперь можно и запустить несколько раз данную программу, которая будет выводить на монитор случайное значение. К сожалению, результат, при очередном запуске, будет всегда выводится одно и то же число. При компиляции программы, наша функция rand отложила в памяти определенное системное время и при старте всегда обращается к данному времени. Для предотвращения неприятности мозговитые программисты придумали оператор srand. Задача данной функции проста– если мы обращаемся к оператору rand, то системный таймер обнуляется. Выходит, что наш оператор всегда будет обращаться к текущему времени, которое всегда изменяется (секунды ведь тикают).
Оператор random
Вообще-то, предвидущих пройденных операторов хватит, что б создать различной сложности приложения, требующие генератор случайных чисел. Оператор random был введен не так давно, причем в языке программирования си ++. Он содержит пару модификаций: увеличен диапазон результатов; процесс получения случайных значений стал практически идеальным.
Об авторе
Снежный Андрей
Рейтинг статьи: Нет оценок