Тематичний архів статей

Вивчаємо Програмування Випадкових Чисел У Теорії


Про генератор випадкових чисел

Всі явища і процеси в нашому світі бувають випадкові і закономірні. Давайте спробуємо подивитися на випадкові процеси з точки зору програміста, адже про випадки, які трапляються закономірно нам і так все відомо. У програмуванні для отримання випадкових чисел розроблений особливий механізм, який іменується - генератор случайных чисел. Разумеется, данная генерация действует не случайным образом, все явления завязаны на программном таймере. Случайные значения как раз и получаются из системного времени. Поэтому правильнее называть этот механизм – генератор псевдослучайных значений,правда при алгоритмах новых функций результат выборки действительно выходит случайным. Правда в программировании все до единого процессы взаимодействуют с пользователем по средством операторов. Давайте рассмотрим их подробнее.

Операторы rand, srand

В программировании на Си большую роль играет регистр, соответственно в ущерб привлекательности этого заголовка, названия функций написаны со строчной буквы. Поэтому надо писать не как нагляднее, а как правильнее. Что бы генератор случайных чисел возвращал нам случайное значение – используется оператор rand. Посмотрим на примере, как именно нам стоит применять нашу функцию:int j = rand();

Т.е. как видно из примера, функция rand возвращает целый результат. Случайное число изменяется в диапазоне от 0 до константы, причем эта константа указывается в подключаемой директиве, где лежит данный оператор. Попробуйте щас взять и запустить программу, которая выводит случайное число на монитор, только ни один, а несколько раз. К огромному разочарованию, результат будет при каждом старте абсолютно одинаковый – каждый раз выводится тоже самое число. При компиляции программы, эта функция rand запомнила заданное программное время и при старте каждый раз обращается именно к этому времени. Но и для решения неприятности умные люди-программисты придумали оператор srand. Его работа очень проста – при любом обращении программы к оператору rand, обнулять системное время. В результате чего, перед обращением к нашему оператору rand, системный таймер будет обнуляться, следовательно мы будем иметь различные числа.

Оператор random

Для создания программ разной сложности, требующих генератор случайных чисел, хватит и пройденных выше двух операторов. Оператор random появился недавно, причем в программировании на языке си . Він містить в собі пару модифікацій: виріс діапазон значень; процес повернення випадкових значень став практично ідеальним.


  Схожі новини: {related-news}