28539

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

Доклад

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

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

Русский

2013-08-20

45 KB

26 чел.

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

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

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

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

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

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

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

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

Произвольно выбираются два числа 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-фильтр, подключенный к  тому же стабилитрону. Такой генератор чуть похуже предыдущего по статистике,  зато не требует всякой


 

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

14208. ИСТОРИЯ БЕЛОРУССКОЙ МУЗЫКАЛЬНОЙ КУЛЬТУРЫ ДО XX ВЕКА 553.5 KB
  Е.С. Бондаренко ИСТОРИЯ БЕЛОРУССКОЙ МУЗЫКАЛЬНОЙ КУЛЬТУРЫ ДО XX ВЕКА Учебно-методическое пособие Минск 2007 ВВЕДЕНИЕ Курс истории белорусской музыки музыки нашей страны занимает одно из важнейших мест в ряду музыкальнои...
14209. История белорусской музыки ХХ века 3.37 MB
  Л.А. Волкова История белорусской музыки ХХ века Симфония В пособии освещены актуальные проблемы исторической эволюции национального симфонизма и собственно симфонии жанра занимающего центральное место в белорусской музыке ХХ века. Особое внимание уде...
14210. Музична память (англ. music memory) 155 KB
  Музична память. Музична память англ. music memory здатність впізнавати і відтворювати музичний матеріал. Музичне впізнавання необхідно для осмисленого сприйняття музики. Необхідна умова музичної памяті достатній розвиток музичного слуху. Важливе місце в музичній
14211. Музична педагогіка 281 KB
  Тема 1. Сутність музичної педагогіки та її основні категорії Музичне виховання як важлива складова естетичного виховання відіграє особливу роль у всебічному розвитку особистості дитини. Ця роль визначається специфікою музики як виду мистецтва з одного боку та специф...
14212. Музична педагогіка — галузь педагогічної науки 75 KB
  Музична педагогіка галузь педагогічної науки загальної педагогіки яка вивчає особливості освіти навчання та виховання особистості засобами музичного мистецтва. Музичну педагогіку слід відрізняти від окремих методик музичного навчанн...
14213. Історія музичної психології 57.5 KB
  Історія музичної психології ПЛАН: Предмет структура і методи музичної психології. Їх специфіка. Історія становлення музичної психології від найдавніших часів до сучасності. Етапи становлення музичної психології як науки. Напрямки музичної психолог...
14214. Музичне мистецтво 25.5 KB
  Музичне мистецтво Помітних успіхів досягла українська музична культура у X VIII ст. Осередком музичного життя стала Київська академія де вивчали нотну грамоту та були поширені хоровий спів гра на музичних інструментах. В академії існував симфонічний оркестр. Великий вне...
14215. Діяльність видатного угорського педагога, композитора та видатного громадського діяча Золтана Кодая 3.6 MB
  Зміст Вступ Розділ І. Теоретичні основи системи музичного виховання Золтана Кодая 1.1. Музично педагогічні погляди Золтана Кодая на виховання дітей 1.2. Розвиток метро ритмічного ладового відчуття у молодших школярів за системою Золтана Кодая Розділ ІІ. П
14216. Музично - ритмічні рухи 59 KB
  Музично ритмічні рухи: різновиди та прийоми використання на уроці. Характеристика діяльності. Через обмеженість часу й як правило відсутності спеціального приміщення рухам на уроках музики приділяється незначне місце використовуються лише їх окрем...