Теорема. Справедлива рівність

Доведення.
Маємо

Теорема доведена.
Методи множення.
Для зручності ми
будемо вважати, що оперуємо цілими числами, що виражені в двійковій системі
обчислення. Ми маємо два  -розрядних числа
-розрядних числа   и
 и  ,
, 
то можна записати

де  - „найбільш значуща
половина” числа,
 - „найбільш значуща
половина” числа,  , а
, а  - „найменш значуща”;
подібним чином
 - „найменш значуща”;
подібним чином  ,
,  .
.
Наприклад: Запишемо у подібній формі число 
Тепер ми маємо
 .
.
Ця формула зводить задачу множення  -розрядних чисел до трьох
операцій множення
-розрядних чисел до трьох
операцій множення  -розрядних чисел:
-розрядних чисел:  . Плюс деякі прості операції зсуву і додавання. Цю формулу можна
використовувати для множення з подвоєною точністю, коли результат треба
отримати з четвірною  точністю. За допомогою цієї формули можна
визначити деякий рекурсивной процес для множення, набагато швидший, ніж вже
знайомий нам метод, коли
. Плюс деякі прості операції зсуву і додавання. Цю формулу можна
використовувати для множення з подвоєною точністю, коли результат треба
отримати з четвірною  точністю. За допомогою цієї формули можна
визначити деякий рекурсивной процес для множення, набагато швидший, ніж вже
знайомий нам метод, коли  - велике і що має час виконання
- велике і що має час виконання   .кщо
.кщо  - час, що потребує множення
 - час, що потребує множення  -розрядних чисел, то ми маємо
-розрядних чисел, то ми маємо
 для
деякої константи
 для
деякої константи  , оскільки у правій частині співвідношення треба виконати тільки три
операції множення плюс деякі операції додавання і зсуву. З останнього
співвідношення по індукції витікає, що
, оскільки у правій частині співвідношення треба виконати тільки три
операції множення плюс деякі операції додавання і зсуву. З останнього
співвідношення по індукції витікає, що  ,
, 
Якщо вибрати  достатньо великим, з тим,
щоб ця нерівність виконувалась при
 достатньо великим, з тим,
щоб ця нерівність виконувалась при  , отримаємо
, отримаємо 
Тобто час, що витрачається на множення, можна скоротити з величини
порядку  до
величини порядку
 до
величини порядку  , і, звичайно при більшому
, і, звичайно при більшому  цей алгоритм набагато швидше.
цей алгоритм набагато швидше.
Схожий, але складніший  метод виконання множення з часом  біля  був вперше запропонований
А.Карацубою.
 був вперше запропонований
А.Карацубою.
Час виконання можна скоротити ще більше, якщо помітити, що тільки що
розглянутий метод є окремим випадком (при  ) більш загального методу,
який дає
 ) більш загального методу,
який дає
 
 
для будь-якого
фіксованого  . Цей
загальний метод можна отримати наступним чином. Розіб’ємо
. Цей
загальний метод можна отримати наступним чином. Розіб’ємо
 и
    и      
на  часток:
 часток:
 
            
 
де кожне  і кожне
 і кожне
 є
 є  розрядними
числами.
розрядними
числами.
Розглянемо многочлени
 ,
,    
і припустимо
 .
.
Так як  і
 і  , то ми маємо
, то ми маємо  , і тому, якщо знати
коефіцієнти
, і тому, якщо знати
коефіцієнти   , можна легко обчислити
, можна легко обчислити  . Задача полягає у тому, щоб
знайти добрий спосіб обчислення коефіцієнтів
. Задача полягає у тому, щоб
знайти добрий спосіб обчислення коефіцієнтів  , виконуючи лише
, виконуючи лише  операцій множення
 операцій множення  -розрядних чисел плюс деякі
додаткові операції, для яких час виконання пропорційний
-розрядних чисел плюс деякі
додаткові операції, для яких час виконання пропорційний  .
.
Цього можна досягти обчисенням  .
.
Коефіцієнти усякого
многочлена ступіня  можна записати у вигляді лінейної комбінації значень цього многочлена у
 можна записати у вигляді лінейної комбінації значень цього многочлена у
 різних
точок. Найбільший час, необхідний для взяття такої комбінації пропорційний
 різних
точок. Найбільший час, необхідний для взяття такої комбінації пропорційний   . Насправді добутки
. Насправді добутки  являють собою, за сутністю,
не добутки
 являють собою, за сутністю,
не добутки  -розрядних
чисел, а добутки чисел, розряд яких не перевищує
-розрядних
чисел, а добутки чисел, розряд яких не перевищує  , де
 , де  - фіксована величина, що
залежить від
 - фіксована величина, що
залежить від  . Легко
скласти програму множення для
. Легко
скласти програму множення для  -розрядних чисел, яка потребує тільки
-розрядних чисел, яка потребує тільки  операцій, так як при фіксованому
 операцій, так як при фіксованому  два добутки
 два добутки  -розрядних чисел на
-розрядних чисел на  -розрядні можна
отримати за
-розрядні можна
отримати за  операцій.
Можна показати, що для цього метода
 операцій.
Можна показати, що для цього метода  .
.
Теорема.
Для будь-якого  існує така постійна
 існує така постійна  і такий алгоритм
множення, що число елементарних операцій
 і такий алгоритм
множення, що число елементарних операцій  , що потрібне для
множення двох
 , що потрібне для
множення двох  -розрядних чисел, задовольняє оцінку
-розрядних чисел, задовольняє оцінку  .
.
Ця теорема ще не
найкращій результат. Для практичних цілей великий недолік, що метод різко
ускладнюється за  тобто
 тобто  . Ця теорема незадовільна і з
практичної точки зору, так як у ній не повністю використовується метод
многочленів, що лежить у її основі.
. Ця теорема незадовільна і з
практичної точки зору, так як у ній не повністю використовується метод
многочленів, що лежить у її основі.
Перш ніж розглянути алгоритм Тоома-Кука, розберемо один приклад. На цьому прикладі нема можливості побачити фективність метода, оскільки ми маємо справу з невеликими числами. Але можна побачити деякі корисні спрощення, прийнятні і у загальному випадку.
Припустимо, що
треба перемножити  та
  та  . У двійковій системі
обчислення
. У двійковій системі
обчислення  та
 та  . Нехай
. Нехай  . Многочлени
. Многочлени  
  ,
,      .
.
Звідси знаходимо   :
:
 (4.1)
(4.1)
Тепер,
використовуючи п’ять останніх величин, знайдемо п’ять коефіцієнтів многочлена  .
.
Для знаходження коефіцієнтів многочлена  при заданих значеннях
 при заданих значеннях  можна скористатися одним
цікавим невеликим алгоритмом. Спочатку запишемо
 можна скористатися одним
цікавим невеликим алгоритмом. Спочатку запишемо  , де
, де 
 і де
 і де  невіомі, як і
 невіомі, як і  . Тепер
. Тепер 
 , і за індукцією знаходимо, що для всіх
, і за індукцією знаходимо, що для всіх 

Позначаючи ліву частину выразу
через  мы бачимо, що
 мы бачимо, що 

и  .
. 
Таким чином,
коефіцієнти  можна
обчислити за допомогою дуже простого методу, який можна продемонструвати для многочлена
 можна
обчислити за допомогою дуже простого методу, який можна продемонструвати для многочлена
 , що
визначений співвідношенням (4.1):
, що
визначений співвідношенням (4.1):

Крайня колонка
складається з заданих значень  ; щоб отримати
; щоб отримати  -ю колонку, треба обчислити
різниці між сусідніми величинами попередньої колонки і розділити їх на
-ю колонку, треба обчислити
різниці між сусідніми величинами попередньої колонки і розділити їх на  . Коефіцієнти
. Коефіцієнти  розташовані у колонках
зверху;
 розташовані у колонках
зверху;  , тому ми маємо
, тому ми маємо
 В загальному вгляді можна записати
В загальному вгляді можна записати
 ця формула показує, яким чином
з коефіцієнтів
ця формула показує, яким чином
з коефіцієнтів  можна отримати коефіцієнти
 можна отримати коефіцієнти  :
:

Послідовно виходять коефіцієнти многочленів  і т.і.
 і т.і.
Згідно останньої
таблиці ми маємо 
Тож, відповідь  де
 де  отримується у результаті
операцій дадавання і зсуву. Крім того, якщо коефіцієнти многочлена
 отримується у результаті
операцій дадавання і зсуву. Крім того, якщо коефіцієнти многочлена  - невід’ємні, то такими будуть і числа
 - невід’ємні, то такими будуть і числа  , а тоді всі проміжні
результати, що отримуються в процессі проведення обчислення, будуть невід’ємними.
, а тоді всі проміжні
результати, що отримуються в процессі проведення обчислення, будуть невід’ємними.
Теорема.
Існує константа  , така, що час
виконання алгоритма С  менший
, така, що час
виконання алгоритма С  менший   циклів.
 циклів.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.