Previous Page  10 / 25 Next Page
Information
Show Menu
Previous Page 10 / 25 Next Page
Page Background

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

ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2017. № 2

95

Console.WriteLine("Finish");

Console.ReadKey(); // просмотр результата

}

После выполнения этой программы на мониторе появляется следующий

листинг, который приведен с некоторыми сокращениями (прочерк на месте

пропущенных строк). В конце каждой строки первый дополнительный элемент

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

константы

a

и

c

. Общее количество каждой пачки последовательностей оцени-

вается как

w

N

= 4 ∙ 16 = 64. Всего

w

N

∙ 4

a

∙ 8

c

= 4 ∙ 16 ∙ 4 ∙ 8 = 2048 уникальных

последовательностей.

w = 4 N = 16

maskW = F maskU = 8

Matrix of unique sequences

k = 1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 | 0 1 1

k = 2 | 2 4 6 8 10 12 15 1 3 5 7 9 11 13 14 0 | 0 1 1

- - - - -

k = 64 | 0 9 1 10 2 11 3 12 4 13 5 14 6 15 7 8 | 0 1 1

k = 65 | 1 4 7 10 13 0 3 6 9 12 15 2 5 8 11 14 | 0 1 3

- - - - -

k = 133 | 6 11 0 5 10 15 4 9 14 3 8 13 2 7 12 1 | 0 1 5

- - - - -

k = 600 | 7 15 4 8 1 9 6 10 3 11 0 12 5 13 2 14 | 0 5 3

- - - - -

k =1025 | 1 10 11 4 5 14 15 8 9 2 3 12 13 6 7 0 | 0 9 1

- - - - -

k =2048 | 0 14 5 15 2 8 7 9 4 10 1 11 6 12 3 13 |0 13 15

Finish

Этот листинг показывает, что функция

Repeating()

не зафиксировала ни од-

ной последовательности с повторяющимися элементами из всех возможных

2048 последовательностей. Первый дополнительный элемент в каждой строке

указывает на это, поскольку содержит ноль для каждой сгенерированной после-

довательности. Другими словами, этот результат означает, что теперь можно

генерировать все уникальные последовательности, используя такой тип пара-

метра

a

. Как было указано ранее, этот результат достигается благодаря нечет-

ным значениям конгруэнтной константы

c

. Таким образом, при любых допу-

стимых значениях

a

и нечетных значениях

c

все сгенерированные случайные

последовательности уникальны.

Конструкция и результаты.

От рассмотренных в предыдущих разделах спе-

циальных аспектов перейдем к практической реализации. Далее представлено про-

странство имен

nsDeonYuliTwist28DA

, в котором класс

cDeonYuliTwist28DA

содер-

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

cDeonYuliTwist28DA

показано в следующей программе

P020401

, представленной

после этого программного кода.

namespace nsDeonYuliTwist28DA

{ class cDeonYuliTwist28DA

{ public int w = 16; // битовая длина числа

public int N = 0; // длина последовательности