跳至內容

英文维基 | 中文维基 | 日文维基 | 草榴社区

File:Integer multiplication by FFT.svg

頁面內容不支援其他語言。
這個檔案來自維基共享資源
維基百科,自由的百科全書

原始檔案 (SVG 檔案,表面大小:666 × 580 像素,檔案大小:79 KB)


摘要

描述
English: A demonstration of an integer multiplication based on fast Fourier transforms (FFTs) using a number theoretic transform in the finite field of order 337, choosing 85 as an 8th root of unity (since the input vectors are of length 8). Base 10 is used (normally a power of 2 would used, but 10 is convenient for demonstration), and this technique is overkill for integers of this size (long multiplication would be superior). Because the inputs have 4 digits and the maximum product of two digits in base 10 is 92, the base was chosen as the first prime p greater than 4×92 = 324 where 8 is invertible in the integers modulo p (in this example any suitable base > 61, such as 73, would suffice, but we don't know that a priori). The computation at the top shows how the same acyclic convolution can be computed naively by "long multiplication without carrying," showing the relationship to multiplication. The computation in the lower right shows recombination/carrying of the result vector by (decimal) shifts and adds to obtain the final integer result. Note that all recursive multiplications are of smaller, 3-digit integers. Values are all accurate and were computed using the following Mathematica code:
NTT[x_, b_, r_] := 
 Table[Mod[Sum[x[[n + 1]]*PowerMod[r, k*n, b], {n, 0, Length[x] - 1}],
    b], {k, 0, Length[x] - 1}]

INTT[x_, b_, r_] := Block[{ninverse},
  ninverse = PowerMod[Length[x], -1, b]; 
  Table[Mod[
    ninverse*
     Sum[x[[n + 1]]*PowerMod[r, (Length[x] - n)*k, b], {n, 0, 
       Length[x] - 1}], b], {k, 0, Length[x] - 1}]]

x = {4, 3, 2, 1, 0, 0, 0, 0}; y = {8, 7, 6, 5, 0, 0, 0, 0}; b = 337; r = 85;
NTT[x, b, r]
NTT[y, b, r]
Mod[NTT[x, b, r]*NTT[y, b, r], b]
INTT[Mod[NTT[x, b, r]*NTT[y, b, r], b], b, r]
1234*5678
日期
來源 自己的作品
作者 Dcoetzee

授權條款

我,本作品的著作權持有者,決定用以下授權條款發佈本作品:
Creative Commons CC-Zero 此檔案於創用 CC CC0 1.0 通用公有領域貢獻宣告下分發。
在此宣告之下分發本作品者,已依據各國著作權法,在全世界放棄其對本作品所擁有的著作權及所有相關相似的法律權利,從而將本作品貢獻至公有領域。您可以複製、修改、分發和演示該作品,用於任何商業用途,所有這些都不需要請求授權。

說明

添加單行說明來描述出檔案所代表的內容

在此檔案描寫的項目

描繪內容

image/svg+xml

檔案歷史

點選日期/時間以檢視該時間的檔案版本。

日期/時間縮⁠圖尺寸使用者備⁠註
目前2011年12月17日 (六) 10:37於 2011年12月17日 (六) 10:37 版本的縮圖666 × 580(79 KB)Dcoetzee

下列2個頁面有用到此檔案:

全域檔案使用狀況

以下其他 wiki 使用了這個檔案: