Контрольная работа Використання модульної арифметики. Обчислення з многочленами. Методи множення. Складність обчисл
Работа добавлена на сайт bukvasha.net: 2015-10-25Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего
от 25%

Подписываем
договор
Використання модульної арифметики. Обчислення з многочленами. Методи множення. Складність обчислень
Ефективний шлях багаторазового зведення за модулем – використання методу Монтгомері, який було запропоновано в 1985 році. Цей метод особливо ефективний при апаратній реалізації алгоритмів. Дуже зручно відмовитися від операцій множення і ділення та замінити їх операціями додавання. Метод полягає в наступному.
Нехай
Розглянемо алгоритм: R = 0;
for i = 0 until i < n do begin
if ai = 1 then R = R + B;
if R - непарне then R = R + N;
R = R / 2;
end
if R ³ N then R = R - N.
Суть даного алгоритму в тому, що в силу рівності
A =
множення числа В на число А зводиться до обчислення
AB =
зведення модуль многочлен множення
Воно виконується за
Наприклад:
А = 1´20 + 0´21 + 1´22 + 0´23 + 1´24 = 1 + 4 + 16 = 21 (10101) У = 18 N = 41
Зрозуміло, що АВ(mod N) = 21´18 (mod 41) = 9.
Обчислимо добуток цих чисел за допомогою вищезазначеного алгоритму.
R = 0 a0 = 1 R = R + B = 0 + 18 = 18;
R - парне;
R = R / 2 = 9.
2. a1 = 0;
R - непарне;
R = R + N = 9 + 41 = 50;
R = R / 2 = 25;
a2 = 1 R = R + B = 25 + 18 = 43;
R – непарне;
R = R + N = 43 + 41 = 84;
R = R / 2 = 42;
a3 = 0; R – непарне; R = R + N = 1 + 41 = 42;
R = R / 2 = 21;
a4 = 1 R = R + B = 21 + 18 = 39;
R - непарне;
R = R + N = 39 + 41 = 80;
R = R / 2 = 40.
Це ми одержали 2-n AB(mod N)
Тепер ми повинні ще раз скористатися цим алгоритмом для обчислення АВ (mod N).
A’ = 22n (mod N) = 22 ´5(mod N) = 1024(mod 41) = 40 = 0´20 + 0´21 + 0´22 + 1´23 + 0´24 + 1´25
B ’= 40;
N = 41.
R = 0 a0 = 0 R - парне;
R = R / 2 = 0.
a1 = 0; R - парне;
R = R / 2 = 0;
a2 = 0 R - парне;
R = R / 2 = 0;
a3 = 1; R = R + B = 0 + 40 = 40;
R - парне;
R = R / 2 = 20;
a4 = 0; R - парне;
R = R / 2 = 10;
6. a5 = 1; R = R + B = 10 + 40 = 50;
R = R - N = 50 - 41 = 9.
Звертання
Для заданого числа
Ділення
Оскільки
Обчислення з многочленами
Між обчисленнями в кільці многочленів над довільним кільцем
Складність операцій з многочленами, звичайно, оцінюють кількістю ариф-метичних операцій кільця
Обчислення значень многочленів.
Нехай
Останнє число
Алгоритм Руфіні-Горнера дозволяє отримати не тільки значення
Теорема 1
Справедлива рівність
Доведення
Маємо
Методи множення
Для зручності ми думатимемо, що ми оперуємо із цілими числами, вираженими у двійковій системі числення. У нас є два
де
Ця формула зводить задачу множення
Якщо
якщо вибрати
Тобто час, затрачуваний на множення, можна скоротити з величини порядку
Схожий, але більш складний метод виконання множення із часом порядку
Час виконання можна скоротити ще більше, якщо помітити, що тільки що розглянутий метод є окремим випадком (при
для будь-якого фіксованого
на
де кожне
і покладемо
Оскільки
Цього можна досягти, обчислюючи
Коефіцієнти будь-якого многочлена степені
Теорема 2
Для кожного
Перш ніж розглянути алгоритм Тоома-Кука, розберемо один приклад. На цьому прикладі не можна побачити ефективність методу, оскільки ми маємо справу з невеликими числами. Але можна побачити деякі корисні спрощення, що застосовні в загальному випадку.
Приклад
Припустимо, нам потрібно помножити
У двійковій системі числення
Нехай
Багаточлени
Звідси знаходимо
Тепер, використовуючи п'ять останніх величин, знайдемо п'ять коефіцієнтів багаточлена
Для перебування коефіцієнтів багаточлена
при заданих значеннях
Позначаючи ліву частину виразу через
Отже, коефіцієнти
Крайній стовпчик складається із заданих значень
У загальному вигляді можна записати
ця формула показує, яким чином з коефіцієнтів
Послідовно виходять коефіцієнти багаточленів
Відповідно до останньої таблиці ми маємо
Отже, відповіддю до нашої вихідної задачі буде
Размещено на Allbest.ru