Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры_сапр(оба сем)ГОТОВЫЕ.doc
Скачиваний:
7
Добавлен:
13.09.2019
Размер:
3.1 Mб
Скачать

42.Опишите, что представляют собой конгруэнтные процедуры генерации последовательностей

На практике в большинстве случаев применяются программные методы получения случайных чисел. на самом дел'е случайные последовательности, получаемые по некоторому алгоритму, яв-ся псевдослучайными. это происходит из-за того, что связь между значениями в последовательности, получаемой программным путем, обычно все-таки существует. данное обстоятельство приводит к тому, что на каком-то этапе генерируемая последовательность чисел начинает повторяться — «входит в период». рассмотрим несколько наиболее известных и пригодных для практического использования программных методов генерации псевдослучайных величин (все же, понимая смысл выражения, будем по привычке и для удобства называть их случайными).

К онгруэнтный метод генерации последовательности случайных чисел

конгруэнтный метод генерации последовательности случайных чисел получил широкое распространение. он описан во многих источниках, но конкретных рекомендаций по его использованию на платформе intel автор не встретил. попытаемся устранить этот недостаток. в основе этого метода генерации последовательности случайных чисел лежит понятие конгруэнтности. по определению, два числа а и в конгруэнтны (сравнимы) по модулю м в случае, если существует число к, при котором а-в=км, то есть если разность а-в делится на м, и числа а и в дают одинаковые остатки от деления на м. например, числа 85 и 5 конгруэнтны по модулю 10, так как при делении на 10 дают остаток 5 (при к=1). в соответствии с этим методом каждое число в этой последовательности получается исходя из следующего соотношения: хn+1=(ахn+с) mod m, где n > 0. (1)

при задании начального значения хо, констант а и с данное соотношение однозначно определяет последовательность целых чисел x,, составленную из остатков от деления на m предыдущих членов последовательности, в соответствии с соотношением (1). величина этих чисел не будет превышать значение т. если каждое число этой последовательности разделить на т, то получится последовательность случайных чисел из интервала 0.1.1'. но не спешите подставлять в это соотношение какие-либо значения. основная трудность при использовании этого метода — подбор компонентов формулы. в зависимости от значения с различают два вида конгруэнтного метода — мультипликативный (с=0) и смешанный (с не равно 0).

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

мультипликативный конгруэнтный метод задает последовательность неотрицательных целых чисел xj (xj<m), получаемых по формуле:

хn+1=ахn(mod m). (2)

на значения накладываются ограничения:

  • хо — нечетно;

  • а=52р+1 (р=0, 1, 2, ...) или a=2m+3 (m=3, 4, 5, ...) — обе эти записи означают, что младшая цифра а при представлении а в восьмеричной системе счисления должна быть равна 3 или 5 (проще говоря, остаток от деления а/8 должен быть равен 3 или 5);

  • m=2 (1>4).

при соблюдении этих ограничений, длина периода будет равна m/4.

смешанный конгруэнтный метод генерации последовательности случайных чисел

соотношение смешанного конгруэнтного метода выглядит так: xn+1=(axn+c) mod m, где n > 0. при правильном подборе начальных значений элементов кроме увеличения периода последовательности случайных чисел уменьшается корреляция (зависимость) получаемых случайных чисел.

на значения накладываются ограничения:

  • х0>0;

  • а=21+1, где 1>=2;

  • с>0 взаимно просто с m (это выполнимо, если с — нечетно, а т=2р, где (р>=2)

  • m=2р (р>=2) и т кратно 4.