我想在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. 在GF(256)中乘以14
- 2. 乘以多項式
- 3. C++過載*多項式乘法
- 4. 鏈接列表多項式乘法
- 5. 乘法流(表示多項式係數)
- 6. 多項式乘法複雜度降低
- 7. 迭代多項式乘法 - Python中的切比雪夫多項式
- 8. 如何使用CUDA爲塊lanczos算法乘上稀疏矩陣(over gf(2)field)?
- 9. Scilab中兩個不同變量的多項式的乘法
- 10. 在Prolog中乘以兩個多項式
- 11. 多項式評價的準確性,乘法與除法
- 12. 兩個多項式的乘積python
- 13. 在Python中添加和乘法多項式
- 14. 顯示兩個多項式之間的乘法是o(nlogm)?
- 15. 多項式約束的最小二乘法曲線與MATLAB
- 16. 如何乘多項式係數
- 17. 除法和乘2的冪
- 18. 實現多項式乘法哈斯克爾
- 19. 如何使用FFT實際實現多項式乘法?
- 20. 乘以2種方法
- 21. 2-SAT相關算法的多項式算法
- 22. 如何乘以2多項式使用鏈表與輸出功率變量?
- 23. 使用高斯消除法在GF(2)中查找矩陣的排名
- 24. NTL - 如何獲得GF(2^n)中元素的整數表示
- 25. 乘2陣列的多維度
- 26. 在Python中使用多項式乘以字典
- 27. Python中的多維矩陣乘法
- 28. C中的矩陣乘法多進程
- 29. C中的多線程矩陣乘法
- 30. Java中的多線程矩陣乘法
您需要提供更多關於您遇到的問題的信息。這是數學嗎?它是否轉換爲代碼?你的代碼是否會拋出一個錯誤? – Oded 2010-01-28 11:22:03