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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Практическая работа 5
p
p
p
p
2
3
p
4
5
A
A
2
A3A
A
4
44 7 17 29 43 67 8768 7500 3293 679 7901
45 2 19 29 43 71 3585 117 4814 9329 7592
46 3 19 29 43 59 4265 6681 4688 3782 1694
47 3 17 23 41 67 7812 163 4765 5121 2291
48 2 19 37 47 59 3050 1193 9268 184 6571
49 2 13 37 47 71 2456 2542 5191 8490 837
50 7 17 37 53 67 8049 6644 81 4616 8188
51 3 19 23 43 61 9346 159 7218 1750 3595
52 2 11 31 43 67 475 1663 6756 1420 4683
53 2 17 29 47 67 731 7825 5517 5945 6268
54 7 11 31 43 71 9530 8957 6871 7767 9039
55 3 17 37 43 71 5471 197 8602 7715 9395
56 3 17 23 43 61 3730 4787 5271 5479 6776
57 5 11 37 53 61 6811 6326 7196 3889 1976
58 3 13 23 41 71 1769 8102 4112 1025 4087
59 3 17 23 47 67 9180 7170 4689 6752 4946
60 2 19 31 43 67 7260 8221 8140 9249 2944
61 3 11 29 53 61 9770 3485 6821 7706 2353
62 3 17 29 47 59 3445 1527 5103 2205 4381
63 7 19 37 41 71 1066 2831 6287 2003 1602
64 3 13 37 41 67 4993 750 5809 275 5925
65 3 13 37 47 71 1730 4674 1560 5933 9497
66 2 13 29 43 61 2139 44 5885 8944 6210
67 2 13 37 47 61 992 1462 25 825 8935
68 5 19 37 43 71 3705 9172 8811 9825 1692
69 5 17 29 47 59 1088 7914 1403 4161 8925
70 5 13 29 41 61 7709 1891 3199 5919 1468
71 7 13 29 47 67 5828 582 4019 3865 866
72 7 17 37 43 71 5432 6048 6035 9569 8048
73 7 17 23 41 71 4342 1142 4177 810 3334
74 5 17 37 53 71 5674 7528 5756 5440 2068
75 5 13 37 47 61 1398 666 6236 4266 5111
76 5 13 31 53 61 923 9592 2463 3402 9598
77 7 11 29 47 59 4286 9246 4249 127 1480
78 2 13 31 41
67 6167 9589 7022 2790 192
79 3 11 23 43 61 2174 3293 265 7079 1930
5
- 51 -
Спутниковые и радиорелейные системы передачи данных
p
p
p
p
2
3
p
4
5
A
A
2
A3A
4
80 5 17 31 43 71 2525 7656 6603 8527 1444
81 2 11 37 47 67 3362 9572 9459 9045 8040
82 3 17 37 43 61 205 4463 1653 8824 8567
83 3 19 31 47 61 7077 7183 3174 592 6
84 2 11 31 41 67 610 2635 9410 4637 5358
85 7 17 31 47 71 8911 1876 1755 5568 5865
86 3 19 29 53 59 4746 2846 2238 9298 653
87 3 13 23 47 67 7151 3805 6329 3894 9479
88 5 17 37 47 71 3558 2477 7821 8754 5760
89 2 17 29 43 61 1494 3400 640 3588 7315
90 2 19 29 41 71 2266 6524 2278 2506 8931
91 5 17 29 53 61 1282 3428 4381 4836 1791
92 7 13 29 43 71 8058 6475 9854 2393 3244
93 5 11 37 53 59 3895 4576 1457 8277 8176
94 5 13 31 53 59 2308 9639 1563 6085 4893
95 3 19 23 41 59 6751 2369 8971 7348 713
96 2 19 37 43 61 846 4845 4972 9603 4678
97 7 13 23 47 61 1777 529 10 1180 6606
98 2 11 23 53 71 7321 5723 4090 4780 9365
99 5 19 23 43 71 1825 8627 5390 6525 6946
100 2 19 31 41 71 6022 2571 6612 1747 236
A
5
2. Перевести в СОК по заданным основаниям p1, p2, p3, p4, p5 двоичные числа B1, B2, B3, используя промежуточные
таблицы перевода.
p
1 7 19 23 43 59 1100011 1100101 1100011
2 3 13 37 41 71 1000110 1010000 1001100
3 2 17 31 43 61 1111100 1101011 1101000
4 5 17 37 47 71 1010101 1001100 1111101
5 2 13 37 47 61 1011111 1011111 1000111
6 3 13 29 41 71 1000000 1111100 1101111
7 2 17 37 53 71 111101 0 1010011 1011100
8 5 11 29 53 59 1 011110 110 1111 1010001
9 2 13 37 41 67 1001000 1011010 1010101
p
p
2
p
3
p
4
5
В
В
В
2
- 52 -
3
Практическая работа 5
p
p
p
2
p
3
p
4
5
В
В
В
2
3
10 2 11 37 41 67 1001010 1010101 1001110
11 5 11 37 41 67 1010011 1011010 1010111
12 7 17 37 43 61 1100000 1001010 1011011
13 7 11 31 41 61 1110101 1000001 1110010
14 2 19 23 41 59 1011111 1001001 1100110
15 2 11 37 41 61 1100010 1001110 111 0011
16 2 17 37 41 67 1100010 1101010 1101001
17 2 17 31 43 67 11110 10 1001000 1111 001
18 7 19 31 47 71 11110 10 1000110 1010011
19 2 17 31 41 71 1110111 1111101 11100 11
20 5 13 23 53 71 1000101 1100001 110 1111
21 5 17 23 47 67 1001000 110 1111 11111 01
22 2 17 29 41 59 1001110 1110 110 1110000
23 5 13 23 53 61 1011000 1101011 110 1110
24 2 11 37 53 71 1101010 1010111 1010110
25 2 19 29 47 59 1011010 1001011 1010101
26 2 17 37 41 67 1110 110 1001101 111 0011
27 3 13 31 43 71 1010101 1110100 1100011
28 2 13 23 47 59 1001110 1101111 1001000
29 2 19 29 41 61 1001010 1100111 1010101
30 5 17 29 41 61 1110100 1100000 1110000
31 2 13 37 41 67 1010000 1101100 1100111
32 3 17 31 47 61 1001101 1001100 1000011
33 3 13 37 47 71 1101100 1010000 1000010
34 3 19 23 47 67 1101001 11110 10 1111100
35 5 17 29 47 59 1110001 1110100 1111100
36 2 19 37 47 71 1110000 1100001 1010110
37 7 11 23 53 61 1001011 1111 010 1101000
38 7 17 29 41 71 111111 0 1101010 111 0110
39 2 11 23 47 71 1111 010 1101011 1110010
40 3 19 29 53 67 1110000 1001011 1001010
41 3 17 29 43 67 1010010 1110110 1101000
42 5 11 31 43 59 1010000 1001000 1011011
43 5 17 23 53 71 1100010 1011000 1101101
44 7 17 29 43 67 1011001 1011111 1110000
45 2 19 29 43 71 1001001 1000011 1110100
- 53 -
Спутниковые и радиорелейные системы передачи данных
p
p
p
2
p
3
p
4
5
В
В
В
2
3
46 3 19 29 43 59 1110101 1110100 11110 01
47 3 17 23 41 67 1100010 1010111 1000000
48 2 19 37 47 59 1001100 1111100 1110101
49 2 13 37 47 71 1001010 1011100 1100011
50 7 17 37 53 67 1000001 1111000 1001100
51 3 19 23 43 61 1000101 1111010 1001110
52 2 11 31 43 67 1100110 1000101 11 00111
53 2 17 29 47 67 1101111 1110001 1011100
54 7 11 31 43 71 1 001111 1100010 1001010
55 3 17 37 43 71 1101101 1001011 11110 00
56 3 17 23 43 61 1100011 1011100 1010010
57 5 11 37 53 61 1110100 1011100 1101100
58 3 13 23 41 71 1011001 1001001 1010011
59 3 17 23 47 67 1110010 1000010 11110 00
60 2 19 31 43 67 1100000 111111 0 1010110
61 3 11 29 53 61 1010000 1110101 1000011
62 3 17 29 47 59 1000000 1010010 1001011
63 7 19 37 41 71 1000100 1100101 1000111
64 3 13 37 41 67 1110111 1111011 1100101
65 3 13 37 47 71 110 1110 1101101 111 0110
66 2 13 29 43 61 1100000 1111111 1010101
67 2 13 37 47 61 1110010 1110010 1001010
68 5 19 37 43 71 1010000 1101011 1101010
69 5 17 29 47 59 1000010 1011100 1110100
70 5 13 29 41 61 1100100 1011100 1011100
71 7 13 29 47 67 1110010 1110001 1001100
72 7 17 37 43 71 1001101 1100100 1110100
73 7 17 23 41 71 1011000 1000000 11110 01
74 5 17 37 53 71 1011100 1100001 1101010
75 5 13 37 47 61 1100010 1010011 1110010
76 5 13 31 53 61 1000111 1000101 1110000
77 7 11 29 47 59 1001100 1000010 1001110
78 2 13 31 41 67 1000100 1110110 1010100
79 3 11 23 43 61 1010010 1111011 111011 0
80 5 17 31 43 71 1000110 1101000 1001100
81 2 11 37 47 67 1111 010 1101100 1010110
- 54 -
Практическая работа 5
p
82 3 17 37 43 61 1100101 1110111 1001110
83 3 19 31 47 61 1101001 1110 110 1000001
84 2 11 31 41 67 1010111 1110000 1101101
85 7 17 31 47 71 10 01111 1000101 1001010
86 3 19 29 53 59 1000010 1101101 1001010
87 3 13 23 47 67 1111101 1100011 11 00111
88 5 17 37 47 71 1001110 1011111 1101011
89 2 17 29 43 61 1011101 1100001 1001101
90 2 19 29 41 71 1111100 1010011 1100110
91 5 17 29 53 61 1011101 1111101 1100100
92 7 13 29 43 71 1000100 1100001 1111000
93 5 11 37 53 59 1001010 1100001 1000101
94 5 13 31 53 59 1101111 1110001 1101000
95 3 19 23 41 59 1001101 1000101 1010111
96 2 19 37 43 61 110 0111 1110001 1101000
97 7 13 23 47 61 1101001 1011001 1010011
98 2 11 23 53 71 1011011 1100000 1101111
99 5 19 23 43 71 1100110 1011101 1101101
100 2 19 31 41 71 1110100 1001011 1011011
p
p
2
p
3
p
4
5
В
В
В
2
3
Контрольные вопросы
1. Опишите метод прямого перевода чисел из позиционной системы счисления в СОК.
2. Опишите метод быстрого поциферного перевода чисел из десятичной системы счисления в СОК.
3. Опишите метод быстрого поциферного перевода чисел из двоичной системы счисления в СОК.
- 55 -
Спутниковые и радиорелейные системы передачи данных
   
Цель занятия: изучение обобщенной позиционной системы
счисления.
Знания и умения, приобретаемые студентом в результате осво-
ения темы, формируемые компетенции или их части: ПК-1, ПК-7.
В результате освоения темы обучающийся должен
• знать: назначение ОПСС, методы перевода чисел из СОК в ОПСС, из ОПСС в СОК, сравнения чисел в ОПСС, расширения диапазона СОК, нахождение остатка от де­ления на 2 в СОК.
• уметь: переводить числа из СОК в ОПСС, из ОПСС в СОК, сравнивать числа в ОПСС, расширять диапазон СОК, находить остаток от деления на 2 в СОК.
• владеть: знаниями, умениями и навыками работы с чис­лами в ОПСС.
Теоретическая часть
Все операции над неотрицательными целыми числами в СОК
можно разделить на два класса:
1. Модулярные, такие как сложение, вычитание и умноже-
ние. Эти операции хорошо распараллеливаются. Услов­но эти операции называются «хорошими операциями».
2. Немодульные операции. Эти операции считаются плохо
пригодными для распараллеливания в СОК. К этой груп­пе операций относятся операции деления с остатком, сравнения чисел, обратный перевод из СОК в ПСС и не­которые другие.
Непосредственно в СОК немодульные операции выполнять сложно. Однако, сложность задачи можно понизить, если исполь­зовать промежуточное представление чисел, называемое обоб­щенной позиционной системой счислении (ОПСС, MRS (англ.).
Обобщенная позиционная система счисления – это такая форма представления целых чисел, в которой для каждого пози­ционного разряда числа может использоваться свое основание (своя система счисления).
- 56 -
Практическая работа 6
Рассмотрим разложение некоторого целого числа A:
A = a1 + a2*p1 + a3*p1*p2 + a4*p1*p2*p3 +…,
где a1, a2, …, an – цифры числа A в ОПСС, p1, p2, p3, … – основа­ния ОПСС (в частном случае, если p1 = p2 = p3 =…, получается обычная позиционная система счисления).
Пример (для p1 = 3, p2 = 5, p3 = 7).
A = 80 = 2 + 1*3 + 5*3*5 = 2 + 1*p1 + 5*p1*p2.
Цифрами числа A = 80 в ОПСС являются a1 = 2, a2 = 1, a3 = 5. Еще раз выпишем разложение X в ОПСС.
A = a1 + a2*p1 + a3*p1*p2 + a4*p1*p2*p3 +… =
= a1 + p1*(a2 + p2*(a3 + p3*(a4 +…)…)
Данная выкладка дает вполне очевидный способ нахождения
цифр числа X в ОПСС:
Y1 = A, a1 = Y1 mod p1, Y2 = (Y1 – a1):p1, a2 = Y2 mod p2, Y3 = (Y2 – a2):p2, a3 = Y3 mod p3, Y4 = (Y3 – a3):p3, a4 = Y4 mod p4, …
Пример (для p
= 3, p2 = 5, p3 = 7).
1
Пусть A = 76, тогда Y1 = 76, a1 = 76 mod 3 = 1, Y2 = (76 – 1):3 = 25, a2 = 25 mod 5 = 0, Y3 = (25 – 0):5 = 5, a3 = 5 mod 7 = 5.
То есть цифрами числа A = 76 в ОПСС будут a1 = 1, a2 = 0, a3 = 5.
Заметим, что в данном способе расчета цифр числа A в ОПСС используются только операции вычитания и деления нацело, т. е. все промежуточные операции можно проводить в СОК, а результат операции mod – это по сути и есть соответствующий остаток представления числа в СОК.
Пример (для СОК с основаниями p1 = 3, p2 = 5, p3 = 7).
Пусть A = 17 = (2, 2, 3).
Y1 = (2, 2, 3),
a1 = (2, 2, 3) mod p1 = 2.
Y2 = ((2, 2, 3) – 2):p1 = ((2, 2, 3) – (2, 2, 2)):(0, 3, 3) =
= (0, 0, 1)*inv(0, 3, 3) = (0, 0, 1)*(–, 2, 5) = (–, 0, 5).
После отбрасывания неопределенного разряда:
- 57 -
Спутниковые и радиорелейные системы передачи данных
Y2 = (0 mod 5, 5 mod 7).
a2 = (0 mod 5, 5 mod 7) mod p2 = 0.
Y3 = ((0,5) – 0):p2 = ((0, 5) – (0, 0)):(0 mod 5, 5 mod 7) =
= (0, 5)*inv(0, 5) = (0, 5)*(–, 3) = (–, 1).
После отбрасывания неопределенного разряда:
Y3 = 1 mod 7 = 1.
a3 = 1 mod p3 = 1.
То есть цифрами числа A = (2, 2, 3) в ОПСС будут a1 = 2,
a2 = 0, a3 = 1.
Из ОПСС далее легко переводить числа в ПСС. Действительно, A = 2 + 0*p1 + 1*p1*p2 = 2 + 0*3 + 1*3*5 = 17. Числа A и B, заданные своими цифрами в ОПСС, легко срав-
нивать между собой.
A = B, если все цифры обоих чисел в ОПСС равны. A > B, если при просмотре цифр числа A от старшей к млад-
шей первой найдется цифра, большая соответствующей цифры числа B.
A < B, если при просмотре цифр числа A от старшей к млад­шей первой найдется цифра, меньшая соответствующей цифры числа B.
Данные правила являются естественными и используются, например, для сравнения чисел в обычных позиционных систе­мах счисления.
Пример (для p1 = 3, p2 = 5, p3 = 7).
A = 80 = 2 + 1*p1 + 5*p1*p2, a1 = 2, a2 = 1, a3 = 5.
B = 76 = 1 + 0*p1 + 5*p1*p2, b1 = 1, b2 = 0, b3 = 5.
Сравниваем между собой цифры чисел A и B в ОПСС.
1) a3 = b3 – сравнение продолжаем;
2) a2 > b2 – сравнение завершено с результатом A > B.
ОПСС позволяет, кроме того, выполнить операцию расширения диапазона СОК, то есть находить значение числа A в другой СОК, с основаниями, возможно отличающимися от исходной СОК.
Для этого достаточно после нахождения цифр числа A в ОПСС с основаниями, формально совпадающими с основания­ми исходной СОК, произвести сборку числа A в СОК с новыми основаниями. Предполагается, что значения цифр a1, a2, …, an
- 58 -
Практическая работа 6
ОПСС-разложения A и значения оснований p1, p2, p3, …, pn ис­ходной СОК известны в новой СОК (на самом деле – это легко выполняемое условие).
Пример (для СОК p1 = 3, p2 = 5, p3 = 7).
A = 17 = (2, 2, 3)
Цифрами числа A = (2, 2, 3), как было вычислено ранее,
в ОПСС будут a1 = 2, a2 = 0, a3 = 1.
То есть A = 2 + 0*p1 +1*p1*p2. Найдем остаток от деления числа A = (2, 2, 3) на 2. Для этого достаточно знать остатки от деления на 2 величин
p1 = 3, p1*p2 = 3*5 = 15, и цифр a1 = 2, a2 = 0, a3 = 1 числа A в
ОПСС.
3 mod 2 = 1,
15 mod 2 = 1,
2 mod 2 = 0, 0 mod 2 = 0, 1 mod 2 = 1.
Соберем теперь остаток от деления на 2 от всего числа A, пользуясь правилами выполнения арифметических операций сложения и умножения в СОК по модулю 2.
A mod 2 = ((2 mod 2) + (0 mod 2) * (p1 mod 2) +
+ (1 mod 2) * (p1*p2 mod 2)) mod 2 =
= (0 + 0*1 + 1*1) mod 2 = 1 mod 2 = 1.
Был рассмотрен случай нахождения остатка от деления на 2 произвольного числа в СОК. Этот частный случай на самом деле очень интересен тем, что может быть существенно ускорен.
Действительно, если все основания СОК отличны от 2 или нечетные, то остаток от их деления на 2 равен 1, остаток от лю­бого числа их произведений тоже будет равен 1 (произведение любого числа нечетных чисел – есть число нечетное).
Это значит, что в формуле сборки числа A в ОПСС все опе­рации умножения будут умножениями на 1, что позволяет при сборке отказаться от умножения вообще. То есть для нахожде­ния остатка от деления на 2 любого числа, представленного в СОК своими остатками от деления на набор взаимно простых оснований, каждое из которых есть число нечетное – достаточно
- 59 -
Спутниковые и радиорелейные системы передачи данных
перевести число в ОПСС и сложить остатки от деления на 2 цифр ОПСС этого числа (фактически – это младший бит каждой из цифр числа в ОПСС). Более того, битовое сложение по мо­дулю 2 – это есть операция XOR, которая выполняется быстро. При большом количестве оснований СОК можно получить до­полнительное ускорение вычисления последовательности XOR, если использовать технику бинарного сдваивания (при условии использования ЭВМ параллельной архитектуры).
Обратный перевод из ОПСС в СОК тоже возможен.
Представим в СОК с основаниями p1, p2, .., pn значения всевоз­можных «цифр»-разрядов ОПСС-числа, например для СОК с ос­нованиями p1 = 3, p2 = 5, p3 = 7 – это будут цифры: 0, 1, 2, 3, 4, 5, 6.
 p = 3 p2 = 5 p3
0 0 0 0
1 1 1 1
2 2 2 2
3 0 3 3
4 1 4 4
5 2 0 5
6 0 1 6
Вычислим в СОК значения p1, p1*p2, p1*p2*p3 и т. д.
Например, для СОК с основаниями p1 = 3, p2 = 5, p3 = 7
p = 3 p2 = 5 p3
p
= 3 0 3 3
1
= 3*5 = 15 0 0 1
p
1*p2
Теперь для нахождения значения в СОК любого ОПСС-числа
A = a1 + a2*p1 + a3*p1*p2 + a4*p1*p2*p3 + …
достаточно выписать из соответствующих таблиц значения a1, a2,…, значения p1, p1*p2, … и «перевычислить» значение A в СОК.
Пример (для СОК с основаниями p1 = 3, p2 = 5, p3 = 7).
Пусть в ОПСС A = <1, 4, 0>.
Из таблицы цифр находим
1 = (1, 1, 1)
- 60 -
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]