А.Ф. Деон, Ю.А. Меняев
144
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2017. № 5
}
//-----------------------------------------------------------
static int DeonNumber(int[] q)
{ int r = 0; // пока неизвестный номер функции
int n = q.Length; // длина последовательности
int nb = n; // начальное число объектов
int[] b = new int[nb]; // порядковые номера объектов
for (int i = 0; i < nb; i++) b[i] = i + 1;
int zF = 1; // zF-факториал для b
for (int i = 2; i < n; i++) zF *= i;
for (int z = 0; z < n - 1; z++) // цикл позиций в q
{ int k = 0;
for (; k < nb; k++)
if (q[z] == b[k]) break;
int rg = k * zF; // номер перед группой
r += rg; // неполный номер функции
// сдвиг: удаление элемента b[k] из b
for (int i = k; i < nb - 1; i++) b[i] = b[i + 1];
nb--; // на один объект меньше
zF /= n - z - 1; // zF-факториал для z
}
r++; // учет последнего элемента последовательности
return r; // номер функции
}
}
}
После выполнения программы на мониторе появляется следующий ре-
зультат:
n = 7
q = 5 4 3 6 1 7 2
r = 3302
Соответствие заданного номера
r
последовательности
q
также можно про-
верить по распечатке моделирования в программе
P010301.
Функция
DeonNumber()
реализует условие необходимости в доказательстве теоремы об
упорядоченной биекции.
Обсуждение.
Два современных генератора равномерных случайных вели-
чин
MT19937
[16] и
nsDeonYuliTwist32D
[19] превосходят по своим возможно-
стям остальные аналогичные генераторы. Кроме того, отсутствие пропусков и
повторений, а также возможности произвольной битовой длины
w
случайных
величин вихревого генератор
nsDeonYuliTwist32D
позволяют получать случай-
ные последовательности огромной длины. Эти свойства дают возможность вих-
ревому генератору
nsDeonYuliTwist32D
превзойти генератор
MT19937
.
Согласно исследованию [19], вихревой генератор
nsDeonYuliTwist32D
мо-
жет создать число
( )
T
N w
случайных последовательностей:
2 .
w
T
N w w
Выше факториальное моделирование равномерных последовательностей
случайных величин показывает, что при битовой длине
w
случайных величин,
число
( )
F
N w
случайных последовательностей составляет