28539

Получение случайных чисел

Доклад

Информатика, кибернетика и программирование

Последовательности случайных чисел найденные алгоритмически на самом деле не являются случайными т. Однако при решении практических задач программно получаемую последовательность часто все же можно рассматривать как случайную при условии что объем выборки случайных чисел не слишком велик. В связи с этим для случайных чисел найденных программным путем часто применяют название псевдослучайные числа.

Русский

2013-08-20

45 KB

25 чел.

Получение случайных чисел

Последовательность случайных чисел можно получить одним из следующих способов:

- путем выборки из специальных таблиц

- используя датчики случайных чисел

- программными методами.

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

Последовательности случайных чисел, найденные алгоритмически,  на самом деле не являются случайными, т.к. не удовлетворяют  необходимым статистическим оценкам. Однако при решении практических  задач программно получаемую последовательность  часто все же можно рассматривать как случайную при условии,  что объем выборки случайных чисел не слишком велик. В связи с этим, для случайных чисел, найденных  программным путем, часто применяют название псевдослучайные числа. Обычно для  программных способов получения случайных чисел используется рекуррентное соотношение, с помощью которого каждое последующее число образуется из предыдущего в соответствии с правилом,  задаваемым в виде набор арифметических и логических операция,  выполняемых ЭВМ. Основной недостаток этих методов заключается  в том, что получаемая последовательность случайных чисел является  периодической. Однако при решении практических задач ее период  часто оказывается достаточным, чтобы это существенно не сказалось  на результатах вычислений. Вместе с тем, программные способы  получения случайных чисел обладают тем достоинством по сравнению  с использованием специальных датчиков, что позволяют при необходимости  воспроизвести решение задачи что особенно важно при больших  объемах затрат машинного времени в случае сбоев в работе ЭВМ.  Рассмотрим некоторые алгоритмы получения последовательности случайных чисел, которые можно использовать при решении оптимизационных задач методами случайного поиска.

                             Метод произведений  

Произвольно выбираются два числа b0 и b1 , имеющие одинаковое число  значащих цифр m. Находится их произведение q2 =b0 b1 . Если m > 1, то  число значащих цифр в q2 будет больше, чем m. Тогда из всех значащих цифр  произведения q2 выбирается m цифр, расположенных в середине числа q2, и эти цифры используют как случайное число b2. Следующее случайное  число b3 получается аналогично из произведения b1 b2 и т.д.

Недостатком этого метода является возможность вырождения последователь- ности находимых случайных чисел, т.е. возможность получения на некотором  этапе случайного числа, равного 0, после чего все остальные числа, определяемые с помощью данного метода, оказываются равными 0.                                           Метод вычетов

Применение метода вычетов основано на том, что каждое последующее

случайное число bk+1 образуется из предыдущего bk согласно рекуррентному  соотношению:

 bk+1 =l*bk(modN)   (1)  

которое означает, что число b равно остатку от деления на N произведения

числа b на постоянный множитель l. Очевидно, что остаток от деления на

 N в общем случае имеет туже разрядность, что и число N, т.е. выбором числа  N по существу определяется разрядность получаемых случайных чисел.

С использованием этого алгоритма была, например, найдена следующая  зависимость для получения последовательности псевдослучайных чисел b ,  равномерно расположенных на интервале [0;1]:  

dk+1 =517*d (mod 242 ); d0 = 1;   (2)  

 

bk =2-42 *dk   (3)  

Уравнение (2) является записью алгоритма (1), а (3) применяется для того,

чтобы привести случайные числа к интервалу [0; 1]. Период последовательности, получаемый по (2) примерно равен 1210 .Другая последовательность

псевдослучайных чисел может быть получена при использовании рекуррентного

соотношения (1), если принять  l=513;    n=236   (4)  

Получаемая при этих значениях последовательность имеет период,  оцениваемый  числом 22.1010 .

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

Получение псевдослучайных последовательностей из иррациональных   чисел.  Этот способ основан на свойстве иррациональных чисел образовывать  неупорядоченную последовательность цифр дробной части при вычислении  иррационального числа с достаточно высокой степенью точности.  В наиболее простой форме данный способ реализуется при расчете дробной  части произведения иррационального числа Z на последовательность  натуральных чисел. При этом алгоритм может быть записан в следующем  виде: bk= {K*Z}   K=1; 2; 3...   (5)  

Фигурные скобки в (5) означают, что из произведения K*Z берется только дробная часть, которая должна вычисляться с необходимой степенью  точности, характеризующей разрядность находимых псевдослучайных  чисел. Необходимо также отметить, что использование последовательностей  псевдослучайных чисел, отличающихся по вероятностным оценкам от  идеальной последовательности равномерно расположенных случайных  чисел, в некоторых случаях может заметно увеличить время решения  оптимизационной задачи методами случайного поиска.

                       Генерирование псевдослучайных чисел

Вообще говоря, получение случайных чисел при помощи компьютеров,  (как и всех детерминированных устройств) невозможно. ВСЕ программные  генераторы случайных чисел являются на самом деле генераторами  псевдослучайной последовательности.

Более того, псевдослучайные генераторы имеют ограниченный период повторения, то есть когда-нибудь они перебирают весь цикл, и все начинается  с  начала. Наиболее известными генераторами псевдослучайных чисел  являются конгруэнтные генераторы.

Одной из задач при использовании конгруэнтных генераторов является  подбор чисел-параметров генератора.  "Из простейших процедур, имитирующих случайные числа, наиболее  употребляемым так называемый конгруэнтный способ, приписываемый  Д.Х.Ламеру (Вообще-то он D.H.Lehmer):

    G(n+1)=K*G(n) + C MOD M

В нем каждое псевдослучайное число G(n+1) получается из предыдущего

 G(n1) умножением его на K, сложением с C и взятием остатка от деления

на M. Весь фокус здесь в том, чтобы подобрать хорошие значения K,C и

 M, на что были потрачены десятилетия работы математиков. Подбор почти

иррациональных K ничего не дает. Разумнее вычисления вести в целых

числах. Для них было установлено, что при C=0 и M=2^n наибольший

период M/4 достигается при K=3+8*i или K=5+8*i и нечетном начальном

числе. При достаточно больших K ряд производит впечатление случайного.

Результат можно улучшить если C нечетно и K=1+4*i, то период ряда равен  M. После долгих поисков K исследователи остановились на  значениях  69069 и 71365. Кроме значений M=2^N широко используются выборы  простых M, например, простого числа M=2^31 -1, известного со времен  Эйлера." Hаиболее  эффективным из псевдослучайных генераторов  является циклический генератор с обратной связью. Описан в книге  "Хоровиц, Хилл - Искусство схемотехники". Если период повторения  псевдослучайного генератора слишком мал, используют XOR нескольких  генераторов с взаимно простыми периодами. Период такого агрегированного  генератора есть произведение периодов элементарных генераторов.

Через несколько лет этот генератор отвергли, т.к. было обнаружено  (экспериментально), что если каждую тройку последовательно сгенерированных  подпрограммой чисел рассматривать как координаты числа в трехмерном  пространстве, то все такие точки окажутся на пятнадцати параллельных  плоскостях! Может ли кто-нибудь доказать (или опровергнуть) это утверждение?

Аппаратные генераторы

Hастоящие же генераторы истинно случайных последовательностей делают  в виде аппаратного устройства (или компьютерной карты).  Самым лучшим таким генератором является счетчик Гейгера + какой-нибудь  слаборадиоактивный изотоп. В таком генераторе меряется время между "щелчками"  моментами, когда генератор поймал частицу. Такой генератор дает очень хорошее  нормальное распределение, и обладает высокой производительностью. Применяется  в крипто-штучках, где гарантировано необходима истинно случайная уникальная  последовательность.

Для "бытового" применения хороши генераторы, оцифровывающие шум обычного  стабилитрона. То есть имеется компаратор, на одном из входов которого висит  стабилитрон, подпертый резистором, а на другом RC-фильтр, подключенный к  тому же стабилитрону. Такой генератор чуть похуже предыдущего по статистике,  зато не требует всякой


 

А также другие работы, которые могут Вас заинтересовать

4452. Коммуникация как функция управления организацией 92 KB
  Введение. Коммуникации являются важнейшей составляющей в деятельности руководителя, поскольку коммуникации - это обмен информацией между людьми. Без обмена информацией они не могут вместе работать, формулировать задачи и решать их...
4453. История развития микропроцессоров 45.5 KB
  Все персональные компьютеры и растущее число наиболее современного оборудования работают на специальной электронной схеме, названной микропроцессором. Часто его называют компьютер в чипе. Современный микропроцессор- это кусочек кремния, который был ...
4454. Управление конфликтами 210.5 KB
  Введение. Чем отличаются 20 пауков в одной банке от 20 сотрудников в одном отделе? - Пауки могут съесть друг друга, но банка останется цела, а сотрудники сами останутся целы, но могут разнести вдребезги не только отдел, но и всю компанию. Руководить...
4455. Керамика. История стилей керамических изделий 2.2 MB
  История керамики Керамика принадлежит к древнейшим созданиям человека, рожденным из его жизненно необходимых потребностей. В первобытные времена ее производство определялось исключительно факторами пользы. Творческих за­мыслов сперва не было. Высоко...
4456. Органи державного регулювання митною справою і їх повноваження. Організаційна структура митної системи України 350 KB
  Органи державного регулювання митною справою і їх повноваження. Організаційна структура митної системи України Вступ Дотримуючись міжнародних правових норм, Україна розвиває власну систему митного регулювання. На основі головних законодавчих актів, ...
4457. Геометрические характеристики координатных осей 46 KB
  Геометрические характеристики координатных осей. Главные оси и главные моменты инерции При повороте осей координат центробежный момент инерции меняет знак, а следовательно, существует такое положение осей, при котором центробежный момент равен нулю....
4458. Экономический ущерб 95 KB
  Экономический ущерб Оценку экономического ущерба от чрезвычайных ситуаций природного и техногенного характера затрудняет отсутствие единого подхода к содержанию данного показателя. Единственным законнодательным актом в нашей стране, в котором дается...
4459. Україна Короткий історичний нарис 213 KB
  Україна Короткий історичний нарис Територія України почала залюднюватися в ранньому палеоліті. Біля селища Королеве в Закарпатті зафіксовані останки людей у шарах давністю до мільйона років. У середньому палеоліті (від 150 тис. років тому) люди розс...
4460. Витоки українського народу та його державності 176.5 KB
  Мета заняття. Ознайомити студентів із життям та найдавнішими поселеннями людей на території України періоду кам'яного віку, заняттями та віруваннями племен трипільської культури і кочових та землеробських племен раннього залізного віку.