Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1109377
  • 博文数量: 25
  • 博客积分: 10535
  • 博客等级: 上将
  • 技术积分: 2746
  • 用 户 组: 普通用户
  • 注册时间: 2004-11-21 23:21
文章分类

全部博文(25)

文章存档

2011年(1)

2010年(3)

2009年(2)

2008年(19)

分类:

2008-10-15 16:03:27

一、有限域元素

Z(p,d) 或 Z( p^d)

得到的是 GF(p, d) 的本原元。其它元素可以表示为 Z(p^d) 的方幂。


二、有限域元素的运算

  • Zero(z)
    加法单位

  • One(z)
    乘法单位

  • Characteristic
  • Order
  • Inverse
  • DegreeFFE(z)
    包含 b 的最小扩张次数(相对于素域)。此函数之参数可为单个元素,一个向量或一个矩阵。

  • LogFFE(z,r)
    离散对数,r^i = z

  • IntFFE(z)
    z 必须在素域中,计算 z 对应的整数表示。
    此函数参数不可为向量。见 IntVecFFE

  • IntFFESymm(z)
    设 z 在素域 Zp 中,z 可以自然地看作一个整数。此函数计算 z 模 p 的最小绝对剩余。
    IntFFESymm(vec)

  • IntVecFFE
    IntFFE 的向量版


三、创建有限域

  • DefaultField
    包含指定元素(组)的最小有限域

  • GaloisField, GF
    • GF(p, d), GF(p^d)
    • GF(subfield, d)
    • GF(subfield, poly)
    • GF(p, poly)

  • GaloisGroup, Size
  • BasisVectors
  • PrimitiveRoot
  • DefiningPolynomial
  • RootOfDefiningPolynomial


四、Frobenius 自同构

  • FrobeniusAutomorphism
    生成 Frobenius 自同构


五、Conway Polynomial
  • ConwayPolynomial(p, n)
  • IsCheapConwayPolynomial(p, n)
  • RandomPrimitivePolynomial(F, n)


六、输出


例子 1:

生成有限域 F2[x]/(x^3+x+1),已知 f=x^3+x+1 在 F2 上本原。设 a 为 f 的一个根,计算 a^2+a+1 对 a 的离散对数。

F2:=GF(2);
x:=Indeterminate(F2, "x");
f:=x^3+x+1;
F:=GF(F2, f);
a:=PrimitiveRoot(F);
Print(LogFFE(a^2+a+1, a), "\n");


例子 2:

f=x^4+x+1 在 GF(2) 上本原,f(a)=0。计算 F2[x]/(f) 中元素的基表示。

F2:=GF(2);
x:=Indeterminate(F2, "x");
f:=x^4+x+1;
F16:=GF(2, f);
a:=PrimitiveRoot(F16);
B:=Basis(F16);
for i in [0..Size(F16)-1] do
    Print (i, " ", Reversed(IntVecFFE(Coefficients(B, a^i))), "\n");
od;


例子:求素数的原根

IntFFE(Z(p)) # 这个算是有限域计算的附属功能。
IntFFE(PrimitiveRoot(GF(7)));






阅读(2133) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

win_hate2008-11-12 22:14:36

下了盗版 maple? 那 Mathematica 是正版的吗? ^_^

chinaunix网友2008-11-10 11:17:42

我下载了一个GAP包,但是从来没用过,也下了一个盗版的老版本Maple,但是也没用过,原来用过一点点Mathematica,但是感觉一碰到代数问题用的就不是很顺手