А.Ф. Деон, Ю.А. Меняев
140
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2017. № 5
,
если остаток больше нуля;
1, если остаток равен нулю.
r
ng
m r
ng
Позиция
m
позволяет выбрать из множества объектов
b
соответствующий
элемент
1
.
r
m
d b B
Для следующей итерации относительно
2
r
d
номер
r
следует
уменьшить на величину
1 ,
m ng
а из множества
B
— удалить уже выбранный
элемент
.
m
b
Следующие итерации позволяют получить элементы
2
1
.
, ,
n
r
r
d d
После итераций в множестве
B
останется один элемент, который будет послед-
ним элементом
n
r
d
в вычисляемой последовательности
.
r
d
Достаточность дока-
зана по построению.
►
Любая последовательность из модели
M
может быть задана или предъявле-
на случайным образом, если случай предоставит индекс
r
для функционала
F
.
Авторы настоящей работы точно уверены, что предъявленная последователь-
ность обязательно содержит все случайные величины длиной
w
без всяких про-
пусков и повторений.
Конструкция и результаты.
Не нарушая общности получаемых результатов,
определяем множество первичных объектов как совокупность целых чисел
1,
.
B n
Согласно теореме об упорядоченной биекции, в модели
, ,
M B D F
множество упорядоченных последовательностей
D
начинается с последовательно-
сти
1, 2, , .
n
В качестве примера ниже приведена программа
P010301
на языке
программирования C#, в которой моделируются все последовательности
d D
полной перестановки элементов множества
1, 7 .
B
Последовательность
1
1, 2, 3, 4, 5, 6, 7
d
является начальным элементом, за которым следует последо-
вательность
2
1, 2, 3, 4, 5, 7, 6
d
и т. д. Полное множество
D
всего содержит
7
! 7 ! 5040
s
n
N D n
последовательностей. Последовательность
5040
7, 6,
d
5, 4, 3, 2, 1
— последняя.
Пример программы
P010301
на языке программирования C#
namespace P010301
{ class P010301
{ static void Main(string[] args)
{ int[] q = new int[] { 1, 2, 3, 4 }; //, 5, 6, 7 };
int n = q.Length; // длина последовательности
int r = 0; // номер последовательности
while (true)
{ Console.Write("r = {0,4}", ++r);
foreach (int w in q) Console.Write("{0,4}", w);
Console.WriteLine(); // новая строка
if (ProcessUp(q, n) == 0) break; // процесс
}
Console.ReadKey(); // просмотр результата
}