我想在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