我需要使用整數環中的FFT將長整數與任意數字的BASE相乘。對於某些k
,操作數總是長度爲n = 2^k
,並且卷積矢量具有2n
組件,因此我需要一個2n'th
統一的原始根。在整數環中使用FFT進行相乘
我並不特別關心效率問題,所以我不想使用Strassen &Schönhage的算法 - 只是計算基本卷積,然後是一些運算,這沒什麼別的。
雖然看上去簡單,許多數學家,我代數的瞭解實在是太差了,所以我有很多的問題:
什麼是整數環執行FFT有着本質的區別或細微差別模
2^n + 1
(也許是複合),並以整數FIELDS爲模p
?
我問這個,是因爲2
是(2n)th
這個環的統一原始根,因爲2^n == -1 (mod 2^n+1)
。相比之下,整數字段將要求我搜索這樣一個原始根。
但也許有其他細微差別,這將阻止我使用這種形式的環用於FFT。如果我選擇了整數環,那麼在此字段中存在
2^n
單位根的充分條件是什麼?
所有其他2^k
較小秩序的統一個根可以用平方這根獲得,對吧?..由環模的乘法強加什麼必要限制嗎?也許在它們的長度上,也許在數字基礎上,甚至可能在用於乘法的數字類型上。
我懷疑如果通過模運算減少卷積的係數,可能會有一些信息丟失。這是真的,爲什麼?..什麼是一般條件,可以讓我避免這種情況?- 是否有隻是原始類型的動態列表的任何可能性(即
long
)將足以滿足FFT矢量,它們的產物和卷積矢量?或者我應該將這些係數轉換爲BigInteger
以防萬一(當我真的應該做什麼時「情況」)?
如果這些問題的一般答案花費太長時間,我會特別滿意的答案在下列條件下。我在外地Z_70383776563201發現,爲了統一的原根的表達2^30
:
http://people.cis.ksu.edu/~rhowell/calculator/roots.html
所以,如果我使用統一的2^30
次方根繁殖長度2^29
的號碼,什麼是精密/算法/效率細微差別我應該考慮什麼?..
非常感謝你提前! 我要獎賞最好的答案 - 請考慮幫助一些例子。
嘗試這裏更多的理論數值分析的問題:http://scicomp.stackexchange.com/ – tskuzzy 2012-04-20 09:58:59
這是一個非常先進的問題 - 我可能是幾個人誰擁有實際動手經驗,在這方面的一個能夠回答它。但是它太大而無法在SO上得到回答。這將需要頁面和頁面的文字+圖... – Mysticial 2012-04-20 10:14:24
我明白了......但是沒有證據的基本事實會佔用這麼多頁面嗎?也許,爲了證明,我可以在你的幫助下找到方向。另外,在特別關注我的問題結束時,我還特別加以限制。我還欠他一些啤酒,他甚至可以以非常深的方式回答這個問題。 – wh1t3cat1k 2012-04-20 10:34:08