Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы модулярной арифметики. Практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Практическая работа 7
Последняя операция нахождения остатка от деления нивели­рует весь эффект использования СОК, так как вычислительно трудоемка и при аппаратной реализации требует наличия от­дельного микропроцессора.
Однако, в методе ортогональных чисел, в отличие от метода ортогональных базисов, можно избавиться от операции деления на диапазон P, применяя технику бинарного сдваивания с кор­рекцией переполнения на каждом шаге расчета суммы ортого­нальных чисел в ПСС.
Действительно, каждое из ортогональных чисел в ПСС не пре­вышает диапазона СОК, следовательно, сумма пары таких чисел не превысит удвоенного диапазона СОК и по правилам модуляр­ной арифметики может быть тут же скорректирована путем вычи­тания диапазона (если сумма пары превысила диапазон). Кроме того, техника бинарного сдваивания при расчете суммы значи­тельно ускоряет вычислительный процесс при наличии большого числа слагаемых и не требует ни выполнения операции умноже­ния, ни операции деления, а только лишь сложение чисел, не пре­восходящих диапазон СОК и, возможно, вычитание константного числа (диапазон СОК) из натурального числа, не превосходящего удвоенный диапазон СОК. То есть данная методика может быть эффективно реализована аппаратно.
Пересчитаем пример, производя возможную корректировку после каждого сложения в ПСС:
0 + 84 + 30 = (0 + 84) + (30)
0 + 84 = 84 < 105 (коррекция не требуется)
84 + 30 = 114 >= 105 (производим корректировку, вычитая 105)
114 – 105 = 9.
Для всего лишь трех оснований СОК эффект от применения техники бинарного сдваивания с коррекцией был не так заметен, поэтому рассмотрим более сложный пример СОК с основани­ями p
= 2, p1 = 3, p1 = 5, p1 = 7, p1 = 11, p1 = 13, p1 = 17, p1 = 19
1
(диапазон СОК: P = 9699690).
Предположим, что мы хотим узнать значение числа (1, 2, 3, 4, 5, 6, 7, 8) из этой СОК в ПСС.
- 71 -
Спутниковые и радиорелейные системы передачи данных
Число (1, 2, 3, 4, 5, 6, 7, 8) раскладывается на сумму 8 орто­гональных чисел, которые были вычислены при инициализации СОК-системы.
(1,0,0,0,0,0,0,0) = 4849845 (0,2,0,0,0,0,0,0) = 6466460 (0,0,3,0,0,0,0,0) = 1939938
(0,0,0,4,0,0,0,0) = 4157010
(0,0,0,0,5,0,0,0) = 1763580 (0,0,0,0,0,6,0,0) = 2984520
(0,0,0,0,0,0,7,0) = 5705700
(0,0,0,0,0,0,0,8) = 5615610
На первом этапе бинарного сдваивания найдем суммы чисел:
4849845 + 6466460 = 11316305 >= P (нужна коррекция) =>
1616615 1939938 + 4157010 = 6096948 < P (коррекция не нужна) 1763580 + 2984520 = 4748100 < P (коррекция не нужна)
5705700 + 5615610 = 11321310 >= P (нужна коррекция) =>
1621620
На втором этапе бинарного сдваивания найдем суммы чисел:
1616615 + 6096948 = 7713563 < P (коррекция не нужна) 4748100 + 1621620 = 6369720 < P (коррекция не нужна)
На третьем этапе бинарного сдваивания:
7713563 + 6369720 = 14083283 >= P (нужна коррекция) =>
4383593
Полученный ответ является окончательным.
Задания для практической работы
1. Перевести из СОК в десятичную систему счисле­ния по заданным основаниям p1,p2,p3,p4,p5 число A(a1,a2,a3,a4,a5) тремя способами:
1. Методом ортогональных базисов.
2. Через промежуточный перевод в ОПСС.
3. Методом ортогональных чисел.
- 72 -
Практическая работа 7
p
p
p
p
2
3
p
4
5
a
a
a
2
a
3
4
1 7 19 23 43 59 0 11 18 28 11
2 3 13 37 41 71 1 8 2 22 49
3 2 17 31 43 61 1 7 27 22 33
4 5 17 37 47 71 0 0 10 24 57
5 2 13 37 47 61 1 4 13 7 26
6 3 13 29 41 71 1 7 7 7 56
7 2 17 37 53 71 1 14 9 9 31
8 5 11 29 53 59 3 7 20 26 37
9 2 13 37 41 67 1 2 33 25 33
10 2 11 37 41 67 1 10 19 9 2
11 5 11 37 41 67 4 6 19 38 43
12 7 17 37 43 61 6 6 13 23 36
13 7 11 31 41 61 5 3 16 8 31
14 2 19 23 41 59 1 16 5 39 37
15 2 11 37 41 61 1 10 21 22 58
16 2 17 37 41 67 1 4 5 35 17
17 2 17 31 43 67 0 10 14 1 47
18 7 19 31 47 71 0 17 19 14 38
19 2 17 31 41 71 0 7 17 32 68
20 5 13 23 53 71 0 8 8 12 23
21 5 17 23 47 67 3 14 9 35 15
22 2 17 29 41 59 0 2 2 40 27
23 5 13 23 53 61 3 5 13 23 54
24 2 11 37 53 71 0 6 25 31 26
25 2 19 29 47 59 0 6 24 20 30
26 2 17 37 41 67 1 8 26 28 34
27 3 13 31 43 71 1 5 9 7 10
28 2 13 23 47 59 0 4 14 37 43
29 2 19 29 41 61 0 13 8 23 47
30 5 17 29 41 61 0 8 8 30 21
31 2 13 37 41 67 1 7 30 17 64
32 3 17 31 47 61 1 15 13 21 30
33 3 13 37 47 71 0 2 6 29 34
34 3 19 23 47 67 1 2 14 37 56
35 5 17 29 47
59 2 9 20 33 5
36 2 19 37 47 71 0 7 10 10 2
a
5
- 73 -
Спутниковые и радиорелейные системы передачи данных
p
p
p
p
2
3
p
4
5
a
a
a
2
a
3
4
37 7 11 23 53 61 5 8 20 12 56
38 7 17 29 41 71 4 15 3 32 64
39 2 11 23 47 71 0 7 10 42 59
40 3 19 29 53 67 2 9 13 30 37
41 3 17 29 43 67 1 3 24 39 53
42 5 11 31 43 59 1 6 30 5 11
43 5 17 23 53 71 3 16 13 15 0
44 7 17 29 43 67 3 9 21 35 17
45 2 19 29 43 71 0 11 22 16 12
46 3 19 29 43 59 2 16 5 5 5
47 3 17 23 41 67 0 15 3 26 49
48 2 19 37 47 59 1 10 18 20 5
49 2 13 37 47 71 0 2 30 40 36
50 7 17 37 53 67 1 13 29 5 62
51 3 19 23 43 61 2 5 22 39 50
52 2 11 31 43 67 1 1 12 16 1
53 2 17 29 47 67 1 16 3 41 53
54 7 11 31 43 71 0 0 26 38 41
55 3 17 37 43 71 0 13 28 11 17
56 3 17 23 43 61 2 15 11 40 26
57 5 11 37 53 61 4 7 27 36 35
58 3 13 23 41 71 0 3 0 38 51
59 3 17 23 47 67 2 9 9 33 39
60 2 19 31 43 67 0 7 16 35 40
61 3 11 29 53 61 0 3 8 19 49
62 3 17 29 47 59 2 9 4 16 15
63 7 19 37 41 71 3 14 25 16 67
64 3 13 37 41 67 1 4 24 35 9
65 3 13 37 47 71 2 9 34 38 60
66 2 13 29 43 61 0 4 5 41 13
67 2 13 37 47 61 1 6 3 9 60
68 5 19 37 43 71 1 11 3 37 13
69 5 17 29 47 59 3 4 14 19 29
70 5 13 29 41 61 1 6 1 10 13
71 7 13 29 47
67 6 3 5 8 58
72 7 17 37 43 71 4 16 32 20 60
a
5
- 74 -
Практическая работа 7
p
73 7 17 23 41 71 5 11 15 38 55
74 5 17 37 53 71 4 8 0 32 57
75 5 13 37 47 61 1 1 16 35 25
76 5 13 31 53 61 1 1 21 36 51
77 7 11 29 47 59 3 4 5 7 22
78 2 13 31 41 67 1 7 11 36 38
79 3 11 23 43 61 2 3 12 2 54
80 5 17 31 43 71 1 7 24 21 38
81 2 11 37 47 67 0 8 0 40 32
82 3 17 37 43 61 1 3 22 42 13
83 3 19 31 47 61 1 18 28 32 50
84 2 11 31 41 67 0 8 2 18 7
85 7 17 31 47 71 4 3 17 10 42
86 3 19 29 53 59 2 12 3 17 9
87 3 13 23 47 67 0 1 21 7 63
88 5 17 37 47 71 2 5 12 36 58
89 2 17 29 43 61 1 12 0 35 34
90 2 19 29 41 71 1 8 14 24 42
91 5 17 29 53 61 3 12 4 16 55
92 7 13 29 43 71 3 4 11 9 6
93 5 11 37 53 59 4 4 7 33 54
94 5 13 31 53 59 0 11 6 37 51
95 3 19 23 41 59 2 2 14 32 13
96 2 19 37 43 61 1 0 2 37 11
97 7 13 23 47 61 0 10 9 19 29
98 2 11 23 53 71 0 0 9 1 36
99 5 19 23 43 71 2 13 21 18 12
100 2 19 31 41 71 0 2 21 13 52
p
p
p
2
3
p
4
5
a
a
a
2
a
3
4
a
5
Контрольные вопросы
1. Опишите метод прямого перевода чисел из СОК в ПСС.
2. Опишите ОПСС-метод перевода чисел из СОК в ПСС.
3. Опишите метод ортогональных базисов перевода чисел из СОК в ПСС.
4. Опишите метод ортогональных чисел перевода чисел из СОК в ПСС.
- 75 -
Спутниковые и радиорелейные системы передачи данных
 
Цель занятия: изучение методов сравнения чисел в СОК. Знания и умения, приобретаемые студентом в результате осво-
ения темы, формируемые компетенции или их части: ПК-1, ПК-7.
В результате освоения темы обучающийся должен
• знать: сложность операции сравнения чисел в СОК, ме­тоды сравнения чисел в СОК путем перевода их в ПСС и перевода в ОПСС. Циклическое переполнение диапазона представления чисел в СОК. Выгоду от введения техни­ческого основания по модулю 2, алгоритм сравнения чи­сел в СОК, основанный на переполнении диапазона.
• уметь: сравнивать числа между собой в СОК.
• владеть: знаниями, умениями и навыками сравнения чи-
сел в СОК.
Теоретическая часть
Операция сравнения чисел в СОК считается немодульной, то
есть трудновыполнимой.
Очевидное решение – перевести числа из СОК в ПСС и срав­нить их в ПСС, как обычные числа. Несмотря на кажущуюся дикость такого лобового решения, для СОК малого размера – это может оказаться самым быстрым и компактным способом.
Пример (для СОК p
Непосредственно сравнивая между собой числа 17 и 13, ви­дим, что A > B.
Следующий способ основан на переводе сравниваемых чи­сел из СОК в ОПСС и дальнейшем сравнении цифр чисел в ОПСС. Данный метод пригоден для сравнения чисел произволь­ного размера, но является медленным.
Пример (для СОК p
A = (2, 2, 3). После перевода в ОПСС, A = <2, 0, 1> (в угловых
скобках указаны ОПСС-разряды числа A в порядке увеличения их старшинства).
= 3, p2 = 5, p3 = 7).
1
A = (2, 2, 3) = 17.
B = (1, 3, 6) = 13.
= 3, p2 = 5, p3 = 7).
1
- 76 -
Практическая работа 8
B = (1, 3, 6). После перевода в ОПСС, B = <1,4,0> (в угловых
скобках указаны ОПСС-разряды числа B в порядке увеличения их старшинства).
Поразрядно сравнивая числа A и B в их ОПСС представле-
нии, справа-налево, видим, что A > B.
Данный способ хорош, что, хотя бы он и имеет сложность, пропорциональную числу разрядов СОК (связано со специфи­кой перевода чисел из СОК в ОПСС), но при этом каждая из элементарных операций сложения не превосходит удвоенной величины соответствующего расчетного основания, а внутрен­ние же операции умножения при переходе от СОК к ОПСС мож­но заменить табличными выборками или методом, основанным на теории индексов.
Рассмотрим более эффективный способ решения задачи сравнения чисел в СОК, основанный на контроле переполнения диапазона.
Заметим, что выполнении операции вычитания из меньшего числа большего, произойдет переход через нуль и результат, в силу зацикленности СОК на ее диапазон, формально окажется в верхней половине расчетного диапазона СОК. Если же первое число больше или равно второму, то после выполнения опера­ции вычитания, результат останется в младшей половине рас­четного диапазона СОК.
Пример (для СОК p
= 3, p2 = 5, p3 = 7).
1
Диапазон СОК: P = 105.
Середина диапазона «P/2», разделяющая его на старшую и младшую половину проходит через число 52 = (1, 2, 3).
Пусть A = (2, 2, 3)=17, B = (1, 3, 6) = 13.
A – B = (2, 2, 3) – (1, 3, 6) = (1, 4, 4) = 4 < 52 (разность A – B находится в младшей половине диапазона, то есть A > B).
B – A = (1, 3, 6) – (2, 2, 3) = (2, 1, 3) = 101 > 52 (разность B – A находится в старшей половине диапазона, то есть B < A).
Чтобы быстро определить в какой половине диапазона нахо­дится разность A – B, потребуем наличия в СОК технического основания p
= 2.
0
- 77 -
Спутниковые и радиорелейные системы передачи данных
Вычислив разность A – B в СОК с техническим основанием, запомним остаток от деления на 2, полученный по модулю 2. Затем вычислим остаток от деления на 2 у числа A – B в СОК без технического основания, используя быстрый алгоритм вы­числения остатка от деления на 2, рассмотренный в параграфе, посвященном ОПСС. Если эти два остатка от деления на 2 со­впадут, то число A – B находится в младшей половине рабочего диапазона СОК с техническим основанием p старшей половине.
= 2, иначе – в его
0
Небольшим ограничением данного метода является дополни­тельное требование, чтобы числа A и B изначально находились в младшей половине расчетного диапазона СОК с техническим основанием p пример на 1 меньше P, а число B – мало, например равно 1, то их
= 2. Действительно, если число A – велико, на-
0
разность A – B окажется равной P – 2 и, скорее всего, будет рас­полагаться в старшей половине расчетного диапазона, что при­ведет к ошибочному выводу, что A < B, хотя это совсем не так.
Пример (СОК с техническим основанием p
= 5, p3 = 7).
p
2
Диапазон СОК: P = 210.
= 2, p1 = 3,
0
Середина диапазона «P/2», разделяющая его на старшую и младшую половину проходит через число 105 = (1, 0, 0, 0).
Пусть A = (1, 2, 2, 3) = 17, B = (1, 1, 3, 6) = 13.
A – B = (1, 2, 2, 3) – (1, 1, 3, 6) = (0, 1, 4, 4). Остаток от деления на 2 равен 0.
Восстановим теперь остаток от деления на 2 разности A – B в СОК с основаниями p ского основания p
Переведем A – B = (1, 4, 4) в ОПСС.
= 2.
0
= 3, p2 = 5, p3 = 7, то есть без техниче-
1
A – B = <1, 1, 0> (в угловых скобках указаны ОПСС-разряды числа A – B в порядке увеличения их старшинства).
Найдем теперь XOR-сумму младших битов цифр ОПСС-разности.
(A – B) mod 2 = 1 xor 1 xor 0 = 0.
То есть остаток от деления на 2 разности A – B равен 0 и это совпадает с остатком от деления на 2 в СОК с техническим ос­нованием p
= 2.
0
Делаем вывод, что A > B.
Пусть теперь A = (1, 1, 3, 6) = 13, B = (1, 2, 2, 3) = 17.
A – B = (1, 1, 3, 6) – (1, 2, 2, 3) = (0, 2, 1, 3). Остаток от деления на 2 равен 0.
- 78 -
Практическая работа 8
Восстановим остаток от деления на 2 разности A – B в СОК с основаниями p нования p
= 2.
0
= 3, p2 = 5, p3 = 7, то есть без технического ос-
1
Переведем A – B = (2, 1, 3) в ОПСС.
A – B = <2, 3, 6> (в угловых скобках указаны ОПСС-разряды
числа A – B в порядке увеличения их старшинства).
Найдем теперь XOR-сумму младших битов цифр ОПСС-разности.
Младший бит числа 2 равен 0.
Младший бит числа 3 равен 1.
Младший бит числа 6 равен 0.
(A – B) mod 2 = 0 xor 1 xor 0 = 1.
Остаток от деления на 2 разности A – B без технического ос­нования p в СОК с техническим основанием p
= 2 равен 1 и не совпадает с остатком от деления на 2
0
= 2, равным 0.
0
Делаем вывод, что A < B.
Остается рассмотрение тривиального случая проверки СОК-чисел на равенство. Здесь все просто. Если соответствую­щие остатки СОК-чисел A и B равны, то и числа равны.
Пример (СОК с основаниями p
= 3, p2 = 5, p3 = 7).
1
A = (1, 2, 3)
B = (1, 2, 3)
A = B, так как равны их соответствующие остатки.
Задания для практической работы
Сравнить между собой числа A = (a
, b4, b5) в СОК по заданным основаниям p1, p2, p3, p4, p5 двумя
b
3
, a2, a3, a4, a5) и B = (b1, b2,
1
способами:
1. Через промежуточный перевод в ОПСС.
2. Методом, основанным на переполнении диапазона.
pp2p3p4p
1 7 19 23 43 59 3 0 20 21 7 6 15 19 22 22
2 3 13 37 41 71 2 0 30 38 30 0 11 24 6 9
3 2 17 31 43 61 0 15 8 28 13 0 9 19 26 40
4 5 17 37 47 71 0 15 29 2 58 2 15 10 1 13
5
aa2a3a4a
bb2b3b4b
5
- 79 -
5
Спутниковые и радиорелейные системы передачи данных
pp2p3p4p
5
aa2a3a4a
5
bb2b3b4b
5 2 13 37 47 61 0 3 24 45 18 0 9 4 41 34
6 3 13 29 41 71 1 0 20 23 66 1 9 5 18 33
7 2 17 37 53 71 1 0 15 29 13 0 12 29 32 39
8 5 11 29 53 59 2 3 8 31 41 0 4 10 9 19
9 2 13 37 41 67 0 0 20 6 35 1 10 1 31 25
10 2 11 37 41 67 1 2 28 29 26 1 3 33 15 34
11 5 11 37 41 67 1 5 16 36 38 0 7 23 5 66
12 7 17 37 43 61 5 7 9 4 40 4 16 35 1 6
13 7 11 31 41 61 4 7 0 39 8 1 7 11 29 27
14 2 19 23 41 59 1 18 18 29 51 0 9 20 16 15
15 2 11 37 41 61 0 9 2 34 9 1 1 5 38 8
16 2 17 37 41 67 1 14 9 25 10 0 15 2 37 28
17 2 17 31 43 67 1 13 23 19 19 0 8 1 12 62
18 7 19 31 47 71 0 1 26 13 67 2 4 19 0 66
19 2 17 31 41 71 1 8 19 22 24 0 1 6 18 40
20 5 13 23 53 71 0 8 4 24 66 0 10 7 24 2
21 5 17 23 47 67 1 12 8 0 21 2 1 3 28 47
22 2 17 29 41 59 1 12 5 9 38 0 12 17 17 44
23 5 13 23 53 61 1 1 13 1 28 2 4 12 5 28
24 2 11 37 53 71 1 8 36 23 13 1 6 16 16 54
25 2 19 29 47 59 1 16 18 34 21 0 0 15 19 42
26 2 17 37 41 67 1 3 5 1 43 0 11 28 21 25
27 3 13 31 43 71 1 11 24 12 13 0 2 3 25 8
28
2 13 23 47 59 1 6 8 14 57 1 10 15 40 15
29 2 19 29 41 61 0 6 3 10 60 0 7 11 11 22
30 5 17 29 41 61 3 1 10 16 43 1 7 25 18 11
31 2 13 37 41 67 1 1 24 21 15 0 0 33 24 64
32 3 17 31 47 61 1 8 3 40 46 2 1 4 25 30
33 3 13 37 47 71 2 10 0 7 2 0 9 31 13 46
34 3 19 23 47 67 0 2 18 27 18 0 7 15 23 9
35 5 17 29 47 59 2 15 14 10 57 4 6 10 41 36
36 2 19 37 47 71 1 13 21 31 53 0 7 18 31 15
37 7 11 23 53 61 1 7 2 24 50 6 2 8 24 52
38 7 17 29 41 71 6 5 6 38 51 5 8 7 21 34
39 2 11 23 47 71 1 10 0 39 51 0 5 20 34 16
40 3 19 29 53 67 0 8 28 21 44 2 7 13 35 65
5
- 80 -
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]