Постигаем суть действия генератора случайных значений

Принцип функционирования генерации случайных чисел

Все, что происходит в мире, условно делятся на лагери – закономерные и случайные ситуации. К примеру, у вас недоставало на покупку музыкального центра пары сотен, и вы решили купить плеер – т.е. поступок представляется ожидаемым и логичным. Идя по тропинке, вы находите нужную наличку, которая случайно поменяла ваши планы. Работа генератора случайных чисел всецело зависит от встроенного в оператор механизма, поэтому все числа, которые возвращаются, в данном событии являются псевдослучайными. Функции, возвращающие случайные значения, обращаются ко времени – системному. Кто бы что ни придумывал, но в природе нет ничего полностью закономерного и случайного, а в программировании – тем более.

Оператор rand

Что бы сгенерировать случайное значение в программировании на языке си создали специализированные алгоритмы, именуемыми операторами, которые возвращают нам значение. И так, для получения случайного значения используется функция rand, которая выдачи случайных значений, которые способны выдавать диапазон от 0, и до определенной константы. Данная функция rand и определенная константа объявлены в программном файле, называемом <stdlib.h>, который подсоединяется к программе посредством препроцессорной директивы include. Дан вызов: тип переменной h = начальное число + rand() % конечное значение. Как это ни странно, при запуске программы у нас постоянно будет ответом то же самое число. Просчет является в том, что во время компиляции приложения, функция rand запомнила заданное системное время и взаимодействует с ним. Так как встроенное время то же самое, генератор случайных чисел, а именно его механизм, перестает функционировать.

Теперь о srand и random

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

Отправить комментарий

Вам нужно войти, чтобы оставить комментарий.