- •I. Теоретические сведения.
- •II. Примеры.
- •III. Задания.
- •I. Теоретические сведения.
- •II. Примеры.
- •III. Задания.
- •I. Теоретические сведения.
- •II. Примеры.
- •III. Задания.
- •I. Теоретические сведения.
- •II. Примеры.
- •III. Задания.
- •I. Теоретические сведения.
- •Если , то решением сравнения является класс вычетов , где ― функция Эйлера.
- •II. Примеры.
- •III. Задания.
- •I. Теоретические сведения.
- •II. Примеры.
- •III. Задания.
- •I. Теоретические сведения.
- •II. Примеры.
- •III. Задания.
Федеральное агентство морского и речного транспорта Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «государственный университет морского и речного флота имени адмирала с.о. макарова»
––––––––––––––––––––––––––––––––––––––––––––––––––––––––
М.Ю. Ястребов, И.В.Ланева
АЛГОРИТМЫ ТЕОРИИ ЧИСЕЛ
Лабораторный практикум
Санкт-Петербург 2015
УДК 511
ББК 22.13
Рецензенты:
д.т.н. профессор
Молдовян Н.А.
к. ф.-м.н., доцент
Кузнецов В.О.
Ястребов М.Ю.
Алгоритмы теории чисел. Лабораторный практикум: методи-ческие указания по выполнению лабораторных работ. - СПб: 2014. - 49 с.
Предназначено для студентов направления 090900.62 «Информационная безопасность», специальности 090303.65 «Информационная безопасность автоматизированных систем» и для углубленного изучения магистрам по направлению 090900.68 «Информационная безопасность».
Содержание соответствует рабочей программе дисциплины направления 090900.62 «Информационная безопасность».
Печатается по решению редакционно-издательского совета Государственного университета морского и речного флота им. адмирала С.О. Макарова.
УДК 511
ББК 22.13
|
|
Ястребов М.Ю., 2014 |
|
|
***************** |
|
|
Государственный университет морского и речного флота |
|
|
имени адмирала С.О.Макарова, 2014 |
Лабораторная работа № 1. Деление с остатком. Алгоритм Евклида для отыскания наибольшего общего делителя.
I. Теоретические сведения.
Деление с остатком.
Всякое
при всяком натуральном
единственным образом представимо в
виде:
,
где
,
(то есть
делится на
с остатком
).
Термины:
―
неполное частное;
― остаток.
Алгоритм
Евклида.
Наибольший из общих делителей натуральных
чисел
называется их наибольшим общим делителем
(НОД). Обозначение НОД:
.
Деление
с остатком даёт цепочку равенств (если
положить
,
все равенства, включая два первых, примут
единообразный вид):
,
;
,
;
;
… (1)
;
.
При некотором
обязательно окажется
,
то есть
,
поскольку цепочка убывающих
натуральных чисел
не может продолжаться неограниченно.
Получение указанной цепочки равенств
путём последовательных делений с
остатком называется алгоритмом Эвклида.
Последний ненулевой
остаток
является наибольшим общим делителем.
Линейное
представление НОД.
Пусть
.Тогда
существуют целые числа
и
,
такие что
.
Идя по цепочке (1), последовательно получаем:
Из первого равенства:
, где
.
Далее, из второго равенства:
,
где
,
,
и т. д. вплоть до
линейного представления
.
Бинарный алгоритм опирается на следующие свойства натуральных чисел:
1)
— если оба аргумента чётны, то множитель
можно вынести за знак НОД;
2)
— если у аргументов разная чётность,
то чётный аргумент можно разделить на
два;
3)
— разность двух нечётных чисел чётна;
4) при
;
5)
;
6)
;
7)
.
Бинарный алгоритм на основании свойств 1) и 2) заменяет чётные аргументы их половинами, а в ситуации, когда оба нечётны, свойства 3) и 4) позволяют заменить больший из аргументов их чётной разностью. Свойство 5) гарантирует уменьшение аргументов. Свойства 6) и 7) обеспечивают завершение бинарного алгоритма.
II. Примеры.
1. Деление с остатком. Следует учитывать, что в соответствии с определением, остаток от деления отрицательного на положительное является неотрицательным: . Поэтому:
при делении на
даёт остаток
:
;
при делении на
даёт остаток
:
.
2. Алгоритм
Евклида и линейное представление НОД.
Найдём
.
Проводим последовательные деления с
остатком:
;
;
;
.
Последний
ненулевой остаток равен 21, так что
.
Получим
линейное представление НОД, равного
,
выражая остатки от деления через делимое
(левая часть каждого равенства) и делитель
(первый множитель после знака равенства)
и применяя к последним ранее полученное
представление:
;
;
Найдём
.
Проводим последовательные деления с
остатком:
;
;
;
;
;
.
Последний
ненулевой остаток равен
,
так что
.
Получим линейное представление НОД:
;
;
;
;
.
3. Бинарный алгоритм отыскания НОД.
.
III. Задания.
1) Разделить на с остатком:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
.
2) Найти с помощью алгоритма Евклида НОД и его линейное представление для следующих пар чисел:
1. 2806, 1058. 2. 147220, 18186. 3. 1672, 1848. 4. 589, 343.
5. 8211, 1350. 6. 29719, 76501. 7. 1717, 3232. 8. 7566, 606.
9. 6728, 42. 10. 525, 1002. 11. 15642, 2823. 12. 671, 1110.
13. 6021, 42. 14. 325, 1072. 15. 3641, 2823. 16. 167, 1210.
17. 7041, 422. 18. 1305, 174. 19. 2642, 2803. 20. 3167, 3215.
21. 6841, 4202. 22. 13010, 1540. 23. 22642, 280. 24. 9929,116.
25. 167, 3216. 26. 7997, 346. 27. 215, 3397. 28. 217, 4444.
29. 5021, 423. 30. 2325, 107. 31. 35642, 822. 32. 1680, 1210.
33. 856, 45422. 34. 2306, 374. 35. 5640, 2800. 36. 8187, 3014.
37. 6045, 4207. 38. 1210, 4542. 39. 2962, 1880. 40. 3029,1162.
41. 1661, 3216. 42. 7597, 346. 43. 2145, 3397. 44. 3570, 4784.
45. 806, 41400. 46. 2306, 256. 47. 1024, 2800. 48. 187, 3016.
49. 6043, 1207. 50. 3210, 512. 51. 262, 4880. 52. 4000,1369.
53. 2611, 3233. 54. 5598, 3046. 55. 2100, 2697. 56. 370, 6684.
57. 2610, 133. 58. 1598, 9147. 59. 3333, 2600. 60. 3215, 628.
3) Найти НОД, используя бинарный алгоритм:
1.
;
2.
;
3.
;
4.
;
5.
;
6.
;
7.
;
8.
;
9.
;
10.
;
11.
;
12.
;
13.
;
14.
;
15.
;
16.
;
17.
;
18.
;
19.
;
20.
;
21.
;
22.
;
23.
;
24.
;
25.
;
26.
;
27.
;
28.
;
29.
;
30.
;
31.
;
32.
;
33.
;
34.
;
35.
;
36.
;
37.
;
38.
;
39.
;
40.
;
41.
;
42.
;
43.
;
44.
;
45.
;
46.
;
47.
;
48.
;
49.
;
50.
;
51.
;
52.
;
53.
;
54.
;
55.
;
56.
;
57.
;
58.
;
59.
;
60.
.
Лабораторная работа № 2. Представление рациональных чисел непрерывными дробями.
