Довга арифметика: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Sicheslav (обговорення | внесок)
→‎FFT Multiplication: виправлено неточності перекладу
мНемає опису редагування
Рядок 47:
Алгоритм використовує операції поділу, поелементного множення, інтерполяції та сполуки, такі ж як і в алгоритмах Карацуби. Параметр k контролює поділ вхідних даних на 2 <sup> k </sup> частин, причому розміром M = N / 2 <sup> k </sup> кожна. Це накладає обмеження на N. Воно має ділитися без остачі.
Всі обчислення, поточкового перемноження виконуються по модулю 2 <sup> N '</sup>, де N' = 2 * M + k + 3&nbsp;— число, округлене до добутку числа 2 <sup> k </sup> на процесорний розмір елементів в бітах. Результат інтерполяції можна представити в наступному вигляді, де вибір N 'дозволяє проводити розрахунки без усікання.
<math> w [n] = \ sum_ {i + j = b * 2 ^ k + n} ^ {b = 0,1} (-1) ^ b * x [i] * y [i] </math >. <br/>
Як і в попередніх алгоритмах, для того, що б вирішити дану систему, можна використовувати наступні точки: g ^ i, де і змінюється від 0 до 2 <sup> k </sup> −1, а g = 2 <sup> (2N '/ 2 <sup> k </sup>) </sup>. g є 2 <sup> k </sup>-им коренем одиниці по модулю 2 <sup> N '</sup> +1. Ці точки гарантують, що система буде дозволена. Таким чином в Фур'є перетворенні використовуються тільки зрусув, додавання і заперечення.