我想在c#中乘以gf(2)中的2個多項式。請幫忙。GF(2)中的乘法多項式
0
A
回答
4
您可能想要使用按位運算符,並使用ulong
或uint
類型來表示多項式。也就是說,如果P (GF(2))是可接受的。如果沒有,你將不得不使用其他一些技巧。
ulong a, b;
// Compute r = x * y
ulong r = 0;
for (uint i = 0; i < 64; ++i) {
if ((a & (1 << i)) != 0) {
r ^= b << i;
}
}
表示的總結:
z & (1 << i)
選擇從xŽ我係數(x)的r ^= b << i
計算R'(X)= R(X)+ B( x)* x i
聲明:我不是C#程序員。
2
好的。
- 定義表示伽羅瓦域的類。
- 定義了一個表示一個字段上的多項式的類。
- 定義多項式的乘法運算符
- 然後就完成了。
也許您可以更清楚地瞭解您遇到問題的步驟。
0
哇,這是一個很大的問題,這主要取決於您必須使用的字段的類型。
一個很好的介紹是Sage的manual page有限域計算。
執行摘要:對於小型領域(| F | )通過Givaro C++庫使用Zech日誌表。對於更大的領域使用PARI
。特徵2的字段(這是你需要的)使用NTL
。
關於字段實現的文章是available at ACM,它描述了Maxima計算機代數系統是如何完成的。
但如果你只需要一個小玩具圖書館在爲家庭作業領域的因素多項式這裏就是我會做:
- 創建它代表一個多項式的一類,它應該增加繁殖和分裂多項式。多項式很容易表示爲一個數組。使多項式類成爲通用類,如
Polynomial<coefficient_type>
。 - 創建一個代表組Z p的類,對於素數
p
。這個類將是多項式的係數。使用Z 爲您的領域。 - 創建一個影響多項式的類。
- 若要表示GF(p k)找到k次不可約多項式,並且所有多項式的次數最多爲k的項目Z p是您的元素。
- 添加他們很容易(添加係數,他們已經Z軸 p)
- 兩個多項式乘法後,請確保你把結果在模選擇
4
的不可約多項式。
因此,您將實現一個通用的簡單程序,它可以在所有有限域上添加和乘上元素!
相關問題
- 1. Python --- GF(2)域中的乘法
- 2. GF(2)有限域中的Python乘法逆
- 3. 在GF(256)中乘以14
- 4. Java的Junit的:乘2次多項式
- 5. 多項式乘法CilkPlus
- 6. M2(R)中的多項式乘法?
- 7. 乘以多項式
- 8. 鏈接列表多項式乘法
- 9. C++過載*多項式乘法
- 10. 多項式乘法複雜度降低
- 11. 乘法流(表示多項式係數)
- 12. 迭代多項式乘法 - Python中的切比雪夫多項式
- 13. 如何使用CUDA爲塊lanczos算法乘上稀疏矩陣(over gf(2)field)?
- 14. 如何乘以scilab中的多項式
- 15. 乘以兩個多項式
- 16. Scilab中兩個不同變量的多項式的乘法
- 17. jQuery中2列的乘法
- 18. 在Prolog中乘以兩個多項式
- 19. 是否存在乘法多項式的更有效方法?
- 20. 多項式評價的準確性,乘法與除法
- 21. Ocaml兩個多項式的乘積
- 22. 兩個多項式的乘積python
- 23. 在Python中添加和乘法多項式
- 24. 乘numpy.convolve乘上多項式返回錯誤的結果
- 25. 多項式約束的最小二乘法曲線與MATLAB
- 26. 顯示兩個多項式之間的乘法是o(nlogm)?
- 27. 使用節點類乘以多項式
- 28. Isabelle:多項式次數乘以常數
- 29. 如何乘多項式係數
- 30. 2個變量的乘法
您需要提供更多關於您遇到的問題的信息。這是數學嗎?它是否轉換爲代碼?你的代碼是否會拋出一個錯誤? – Oded 2010-01-28 11:22:03