Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Использование функции rand.

Генератор случайных чисел

В прошлом уроке мы с вами познакомились с таким понятием как массив и научились заполнять его значениями. Но все наши значения мы вписывали сами, то есть заранее знали какими они будут. Такой способ заполнения переменных и массивов ограничивает возможности программы. Невозможно создать нечто, обладающее искуственным интеллектом, если нет способа получать данные не зависящие от пользователя. Что же делать, если нам необходимы значения, выбранные случайным образом?

Использование функции rand.

В языке С существует возможность сгенерировать случайное число. Для этой операции используется функция под названием rand(). Эта функция находиться в библиотечном файле - stdlib.h, следовательно для ее работы необходимо этот файл подключить с помощью диррективы #include. На место вызова rand() в программе, подставится случайное число в диапазоне от 0 до 32767. Рассмотрим простой пример:

#include< iostream> #include< stdlib.h> // в этом файле содержится функция rand   using namespace std; void main() { int a; //генерация случайного числа и запись его в переменную a a=rand(); cout< < a< < " \n";   //повторная генерация случайного числа и запись его в переменную a a=rand(); cout< < a< < " \n"; }

Если вы создали проект, набрали и запустили наш пример на выполнение, то обнаружили, что программа последовательно сгенерировала два так называемых случайных числа. Вот эти неправда ли:

 

Запустите еще раз. И, снова - таже картина. Выходит, случайные числа - не случайны, кроме того они еще и повторяются от запуска к запуску. Не смотря на несправедливость этого утверждения - это так, и, вполне понятно, почему. Если вы подойдете к любому человеку и на улице и попросите назвать произвольное целое число, этот человек несомненно назовет именно случайное число. И то - не факт. Возможно, прохожий посмотрит на вывеску или на часы и извлечет это число из увиденного. Компьютер, в отличии от живого существа, не способен на ассоциативное мышление, поэтому функция rand() не получает число из воздуха, а работает, используя в качестве начальной точки – точку определенную при написании алгоритма генератора случайного числа, то есть некое постоянное число. Другими словами, опираясь на эту точку, при разных вызовах программы эта функция генерирует одно и то же число, в чём мы уже успели убедиться. Из этого можно сделать вывод: Для того, чтобы rand() при разных вызовах программы выдавал разные числа необходимо изменить начальную точку генерации.

<== предыдущая лекция | следующая лекция ==>
Особенности организации учебных занятий с использованием различных форм и методов игрового обучения | Объекты СУБД




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.