Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по КМ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.81 Mб
Скачать

Синтаксис последовательностей

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

Описание последовательности в общем случае имеет вид:

$Sequence <имя_последовательности> : <тип_значения_последовательности>

$Type = <тип_последовательности> <значение_базы_генератора>

$Body

<тело_последовательности>

$End

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

Тип значения последовательности - это один из возможных в языке типов данных. При описании типов значений последовательности возможны ссылки на типы параметров ресурсов и типы символьных констант.

В данной версии языка определены последовательности следующих типов:

  • uniform - последовательность псевдослучайных чисел, распределенных по равномерному закону;

  • exponential - последовательность псевдослучайных чисел, распределенных по экспоненциальному закону;

  • normal - последовательность псевдослучайных чисел, распределенных по нормальному закону;

  • by_hist - последовательность псевдослучайных чисел, распределенных по закону, заданному гистограммой;

  • enumerative - последовательность значений, перечисленных непосредственно в теле последовательности.

Значение базы генератора представляет собой целое число в диапазоне [-2147483647..2147483647]. Это значение может отсутствовать, в этом случае будет использовано значение, определенное в языке. Значения баз генераторов могут быть изменены в объекте прогона.

Последовательности типа uniform, normal и exponential не имеют тела.

Тело последовательности типа by_hist имеет следующий формат:

<границы_диапазона> <относительная_частота>

{ <границы_диапазона> <относительная_частота> }

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

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

Значение последовательности типа by_hist вычисляется следующим образом. В начале в соответствии с относительными частотами определяется интервал гистограммы, затем конкретное значение получается как равномерно распределенное на этом интервале число. Для последовательностей с перечислимыми значениями по относительной частоте сразу определяется значение.

Тело последовательности типа enumerative имеет следующий формат:

<значение_последовательности> { <значение_последовательности> }

Значение последовательности задают целой, либо вещественной численной константой или именем значения в соответствии с типом значений последовательности.

Значения последовательности типа enumerative заданы непосредственно в теле. Эти значения выдаются при вызовах последовательности в порядке их следования в описании. При первом обращении выдается первое значение, при втором - второе и так далее. После последнего значения выдается первое.

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

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