首页
社区
课程
招聘
[推荐]推荐PARI和SAGE和MXGMA
发表于: 2011-2-3 15:25 7480

[推荐]推荐PARI和SAGE和MXGMA

2011-2-3 15:25
7480
推荐PARI和SAGE和MXGMA
开源的:还有个包可下

http://pari.math.u-bordeaux.fr/doc.html

elladd          ellak           ellan           ellap
ellbil          ellchangecurve  ellchangepoint  ellconvertname
elleisnum       elleta          ellgenerators   ellglobalred
ellheight       ellheightmatrix ellidentify     ellinit
ellisoncurve    ellj            elllocalred     elllseries
ellminimalmodel ellorder        ellordinate     ellpointtoz
ellpow          ellrootno       ellsearch       ellsigma
ellsub          elltaniyama     elltors         ellwp
ellzeta         ellztopoint

在线的:

sagemath.org

http://magma.maths.usyd.edu.au/calc/

1

ECC入门必备,

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
群论文档初步贴这:

循环群结构分解,同阶或不同阶循环群和阿贝尔群之间同构关系:

C18000:=CyclicGroup(18000);
C18000;

C15 := CyclicGroup(15);
> C15;
A15 := AbelianGroup([15]);
> A15;

iso11 := hom< C15 -> A15 | C15.1 -> 11*A15.1 >;
A15 eq iso11(C15);

A13 := AbelianGroup([13]);
> A13;
C13:=CyclicGroup(13);
C13;
iso11 := hom< C13 -> A13 | C13.1 -> 11*A13.1 >;
A13 eq iso11(C13);

iso11 := hom< C15 -> A13 | C15.1 -> 11*A13.1 >;
A13 eq iso11(C15);

Permutation group C18000 acting on a set of cardinality 18000
Order = 18000 = 2^4 * 3^2 * 5^3

Permutation group C15 acting on a set of cardinality 15
Order = 15 = 3 * 5
    (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
Abelian Group isomorphic to Z/15
Defined on 1 generator
Relations:
    15*A15.1 = 0
true
Abelian Group isomorphic to Z/13
Defined on 1 generator
Relations:
    13*A13.1 = 0
Permutation group C13 acting on a set of cardinality 13
Order = 13
    (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
true
true

可以从下面看自同构,陪集分解,分类关系,循环群生成元可映射到比群阶还大,从头再循环

C24:=CyclicGroup(24);
C24;

h := hom< C24 -> C24 | g :-> g^3 >;
forall{ <c, d> : c, d in C24 | h(c * d) eq h(c) * h(d) };

im := h(C24);

im;

h := hom< C24 -> C24 | g :-> g^4 >;
forall{ <c, d> : c, d in C24 | h(c * d) eq h(c) * h(d) };

im := h(C24);

im;

h := hom< C24 -> C24 | g :-> g^6 >;
forall{ <c, d> : c, d in C24 | h(c * d) eq h(c) * h(d) };

im := h(C24);

im;

h := hom< C24 -> C24 | g :-> g^12 >;
forall{ <c, d> : c, d in C24 | h(c * d) eq h(c) * h(d) };

im := h(C24);

im;

h := hom< C24 -> C24 | g :-> g^5 >;
forall{ <c, d> : c, d in C24 | h(c * d) eq h(c) * h(d) };

im := h(C24);

im;

h := hom< C24 -> C24 | g :-> g^7 >;
forall{ <c, d> : c, d in C24 | h(c * d) eq h(c) * h(d) };

im := h(C24);

im;
h := hom< C24 -> C24 | g :-> g^24 >;
forall{ <c, d> : c, d in C24 | h(c * d) eq h(c) * h(d) };

im := h(C24);

im;

h := hom< C24 -> C24 | g :-> g^29 >;
forall{ <c, d> : c, d in C24 | h(c * d) eq h(c) * h(d) };

im := h(C24);

im;

Permutation group C24 acting on a set of cardinality 24
Order = 24 = 2^3 * 3
    (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
        22, 23, 24)
true
Permutation group im acting on a set of cardinality 24
    (1, 4, 7, 10, 13, 16, 19, 22)(2, 5, 8, 11, 14, 17, 20, 23)(3, 6, 9, 12, 15,
        18, 21, 24)
true
Permutation group im acting on a set of cardinality 24
    (1, 5, 9, 13, 17, 21)(2, 6, 10, 14, 18, 22)(3, 7, 11, 15, 19, 23)(4, 8, 12,
        16, 20, 24)
true
Permutation group im acting on a set of cardinality 24
    (1, 7, 13, 19)(2, 8, 14, 20)(3, 9, 15, 21)(4, 10, 16, 22)(5, 11, 17, 23)(6,
        12, 18, 24)
true
Permutation group im acting on a set of cardinality 24
    (1, 13)(2, 14)(3, 15)(4, 16)(5, 17)(6, 18)(7, 19)(8, 20)(9, 21)(10, 22)(11,
        23)(12, 24)
true
Permutation group im acting on a set of cardinality 24
    (1, 6, 11, 16, 21, 2, 7, 12, 17, 22, 3, 8, 13, 18, 23, 4, 9, 14, 19, 24, 5,
        10, 15, 20)
true
Permutation group im acting on a set of cardinality 24
    (1, 8, 15, 22, 5, 12, 19, 2, 9, 16, 23, 6, 13, 20, 3, 10, 17, 24, 7, 14, 21,
        4, 11, 18)
true
Permutation group im acting on a set of cardinality 24
true
Permutation group im acting on a set of cardinality 24
    (1, 6, 11, 16, 21, 2, 7, 12, 17, 22, 3, 8, 13, 18, 23, 4, 9, 14, 19, 24, 5,
        10, 15, 20)

对称群和结构,S5就要120个元素,手工计算就非常容易迷糊,下面是S7(元素5040个)的子群 的加减乘除,还能乘方,不知开方用哪个符号。。。象CycleStructure(x^y)也能算,这太离奇了。。

G19 := Sym(19);
G19;
C18000:=CyclicGroup(18000);
C18000;
S7 := Sym(7);
S7;
x := S7 ! (1,2,4)(5,6)(3,7);
x;
y := S7 ! (1,2,3,4,5)(6,7);
y;
x*y;
x^-1;
x^2;
x^5*y^6;
x / y^17;
x^y;
(x, y);
x^3*y eq y*y^x;

x^y^y

CycleStructure(x^2*y);
Degree(y^2);
Order(x*y);
CycleStructure(x^2*y);
CycleStructure(x*y);
CycleStructure(x^y);

Symmetric group G19 acting on a set of cardinality 19
Order = 2^16 * 3^8 * 5^3 * 7^2 * 11 * 13 * 17 * 19
Permutation group C18000 acting on a set of cardinality 18000
Order = 18000 = 2^4 * 3^2 * 5^3
Symmetric group G7 acting on a set of cardinality 7
Order = 5040 = 2^4 * 3^2 * 5 * 7
(1, 2, 4)(3, 7)(5, 6)
(1, 2, 3, 4, 5)(6, 7)
(1, 3, 6)(2, 5, 7, 4)
(1, 4, 2)(3, 7)(5, 6)
(1, 4, 2)
(1, 5, 6)(3, 7, 4)
(1, 5, 7)(3, 6)
(1, 7)(2, 3, 5)(4, 6)
(1, 6, 2, 7, 5, 4, 3)
false
>> CycleStructure(x^2*y);
   ^
User error: bad syntax
5
12
[ <2, 3>, <1, 1> ]
[ <4, 1>, <3, 1> ]
[ <3, 1>, <2, 2> ]

最小的6阶二面体群CALEY表:在线能生成阶50的

> G := DihedralGroup(GrpPerm, 6);
> f := NumberingMap(G);
> [ [ f(x*y) : y in G ] : x in G ];
[
    [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],
    [ 2, 3, 4, 5, 6, 1, 12, 7, 8, 9, 10, 11 ],
    [ 3, 4, 5, 6, 1, 2, 11, 12, 7, 8, 9, 10 ],
    [ 4, 5, 6, 1, 2, 3, 10, 11, 12, 7, 8, 9 ],
    [ 5, 6, 1, 2, 3, 4, 9, 10, 11, 12, 7, 8 ],
    [ 6, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 7 ],
    [ 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6 ],
    [ 8, 9, 10, 11, 12, 7, 6, 1, 2, 3, 4, 5 ],
    [ 9, 10, 11, 12, 7, 8, 5, 6, 1, 2, 3, 4 ],
    [ 10, 11, 12, 7, 8, 9, 4, 5, 6, 1, 2, 3 ],
    [ 11, 12, 7, 8, 9, 10, 3, 4, 5, 6, 1, 2 ],
    [ 12, 7, 8, 9, 10, 11, 2, 3, 4, 5, 6, 1 ]
]

圈积:能生成很大的阶的新群

> G := WreathProduct( Sym(5), CyclicGroup(GrpPerm, 6));
> G;
Order(G);

Random(G);

Random(G);

Symmetric group acting on a set of cardinality 5
Order = 120 = 2^3 * 3 * 5
Permutation group acting on a set of cardinality 6
Order = 6 = 2 * 3
    (1, 2, 3, 4, 5, 6)
Permutation group G acting on a set of cardinality 30
Order = 2^19 * 3^7 * 5^6
    (1, 6, 11, 16, 21, 26)(2, 7, 12, 17, 22, 27)(3, 8, 13, 18, 23, 28)(4, 9, 14,
        19, 24, 29)(5, 10, 15, 20, 25, 30)
    (1, 2, 3, 4, 5)
    (1, 2)
17915904000000
(1, 11, 21, 5, 12, 23, 4, 14, 24)(2, 15, 22, 3, 13, 25)(6, 19, 28, 9, 18, 27)(7,
    20, 29, 10, 16, 30)(8, 17, 26)
(1, 15, 24)(2, 11, 25, 3, 12, 22, 4, 14, 23, 5, 13, 21)(6, 19, 26, 10, 18, 30,
    9, 17, 28, 8, 20, 27)(7, 16, 29)

随机显示两个环结构
R := [ CycleStructure(Random(G)) : i in [1..2]];
> R;

[ <9, 2>, <6, 1>, <3, 2> ],
    [ <8, 1>, <6, 2>, <4, 1>, <2, 3> ]
]
2011-2-10 19:59
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
有六个生成元在的生成元之间有很怪限制阿群结构的Z群同构:几种限制方式
G := AbelianGroup< h, i, j, k ,m,n| 7*h*i*n*3*m, k*6*i*m, 2*j, k*h ,m*j*i>;
G;
Abelian Group isomorphic to Z/12 + Z
Defined on 2 generators
Relations:
    12*G.1 = 0

G2<h,i,g,k,m,s> := PolycyclicGroup<h,i,g,k,m,s| h^11=i^100=g^44=m^111=k^3=s>;
G2;

GrpGPC : G2 of infinite order on 6 PC-generators
PC-Relations:
    h^11 = s,
    i^100 = s,
    g^44 = s,
    k^3 = s,
    m^111 = s

Q<s,t,u,k,v,m>, h := Group< s, t, u, k,v,m|
>     t^2, u^7, s^2 = t^s = t, u^s = u^16, u^t = u ,m^111=k^3=v^1000>;
> S := sub< Q | t*s^2, u^4, m^111,k^3,s,v>;
S;

Finitely presented group S on 6 generators
Generators as words in group Q
    S.1 = t * s^2
    S.2 = u^4
    S.3 = m^111
    S.4 = k^3
    S.5 = s
    S.6 = v

给定限制的子群结构:
G<[x]>, f  := AbelianGroup< h, i, j, k ,m,n| 117*h*i*n*3*m, k*6*i*m, 19*j, k*h ,6*m*j*i>;
G;
> T, n := quo< G | x[1] + 2*x[1] + 24*x[2], 16*x[2] >;
> T;

n(x);
n(sub< G | x[1] + x[2] + 110*x[1] >);

Abelian Group isomorphic to Z/57 + Z
Defined on 2 generators
Relations:
    57*x[1] = 0
Abelian Group isomorphic to Z/24
Defined on 1 generator
Relations:
    24*T.1 = 0
[
    8*T.1,
    9*T.1
]
Abelian Group isomorphic to Z/8
Defined on 1 generator in supergroup T:
    $.1 = 3*T.1
Relations:
    8*$.1 = 0

偶阶循环群和素阶循环群的子群结构对比:
G1 := DihedralGroup(8);
S1 := Subgroups(G1);
S2:=DihedralGroup(7);
S3 := Subgroups(S2);

S1;
S2;
S3;

Conjugacy classes of subgroups
------------------------------
[ 1]    Order 1            Length 1
        Permutation group acting on a set of cardinality 8
        Order = 1
[ 2]    Order 2            Length 1
        Permutation group acting on a set of cardinality 8
        Order = 2
            (1, 5)(2, 6)(3, 7)(4, 8)
[ 3]    Order 2            Length 4
        Permutation group acting on a set of cardinality 8
        Order = 2
            (1, 2)(3, 8)(4, 7)(5, 6)
[ 4]    Order 2            Length 4
        Permutation group acting on a set of cardinality 8
        Order = 2
            (2, 8)(3, 7)(4, 6)
[ 5]    Order 4            Length 1
        Permutation group acting on a set of cardinality 8
        Order = 4 = 2^2
            (1, 7, 5, 3)(2, 8, 6, 4)
            (1, 5)(2, 6)(3, 7)(4, 8)
[ 6]    Order 4            Length 2
        Permutation group acting on a set of cardinality 8
        Order = 4 = 2^2
            (2, 8)(3, 7)(4, 6)
            (1, 5)(2, 6)(3, 7)(4, 8)
[ 7]    Order 4            Length 2
        Permutation group acting on a set of cardinality 8
        Order = 4 = 2^2
            (1, 2)(3, 8)(4, 7)(5, 6)
            (1, 5)(2, 6)(3, 7)(4, 8)
[ 8]    Order 8            Length 1
        Permutation group acting on a set of cardinality 8
        Order = 8 = 2^3
            (2, 8)(3, 7)(4, 6)
            (1, 7, 5, 3)(2, 8, 6, 4)
            (1, 5)(2, 6)(3, 7)(4, 8)
[ 9]    Order 8            Length 1
        Permutation group acting on a set of cardinality 8
        Order = 8 = 2^3
            (1, 2)(3, 8)(4, 7)(5, 6)
            (1, 7, 5, 3)(2, 8, 6, 4)
            (1, 5)(2, 6)(3, 7)(4, 8)
[10]    Order 8            Length 1
        Permutation group acting on a set of cardinality 8
        Order = 8 = 2^3
            (1, 2, 3, 4, 5, 6, 7, 8)
            (1, 7, 5, 3)(2, 8, 6, 4)
            (1, 5)(2, 6)(3, 7)(4, 8)
[11]    Order 16           Length 1
        Permutation group acting on a set of cardinality 8
        Order = 16 = 2^4
            (2, 8)(3, 7)(4, 6)
            (1, 2, 3, 4, 5, 6, 7, 8)
            (1, 7, 5, 3)(2, 8, 6, 4)
            (1, 5)(2, 6)(3, 7)(4, 8)
Permutation group S2 acting on a set of cardinality 7
Order = 14 = 2 * 7
    (1, 2, 3, 4, 5, 6, 7)
    (1, 7)(2, 6)(3, 5)
Conjugacy classes of subgroups
------------------------------
[1]     Order 1            Length 1
        Permutation group acting on a set of cardinality 7
        Order = 1
[2]     Order 2            Length 7
        Permutation group acting on a set of cardinality 7
        Order = 2
            (1, 7)(2, 6)(3, 5)
[3]     Order 7            Length 1
        Permutation group acting on a set of cardinality 7
        Order = 7
            (1, 6, 4, 2, 7, 5, 3)
[4]     Order 14           Length 1
        Permutation group acting on a set of cardinality 7
        Order = 14 = 2 * 7
            (1, 7)(2, 6)(3, 5)
            (1, 6, 4, 2, 7, 5, 3)

一般线性群,子群和矩阵群,子群结构:

K<w> := FiniteField(5);
> GL1 := GeneralLinearGroup(7, K);
GL1;
H := MatrixGroup< 3, K | [1,w,0, 3,1,0, 1,w^2,1], [w,0,0, 0,1,0, 1,0,w] >;

H;

Order(GL1);

Order(H);

S4 := Subgroups(H);
S4;

GL(7, GF(5))
MatrixGroup(3, GF(5))
Generators:
    [1 1 0]
    [3 1 0]
    [1 1 1]
    [1 0 0]
    [0 1 0]
    [1 0 1]
13506266841692625000000000000000000
600
Conjugacy classes of subgroups
------------------------------
[ 1]    Order 1            Length 1
        MatrixGroup(3, GF(5)) of order 1
[ 2]    Order 2            Length 25
        MatrixGroup(3, GF(5)) of order 2
        Generators:
            [4 0 0]
            [0 4 0]
            [0 0 1]
[ 3]    Order 3            Length 25
................
.............

酉距阵群子群结构:

K1<w1> := FiniteField(9);
G3 := SpecialUnitaryGroup(4, K1);
G3;

Order(G3);

Order(G3);

S5 := Subgroups(G3);
S5;

MatrixGroup(4, GF(3^2))
Generators:
    [  w1    0    0    0]
    [   0 w1^7    0    0]
    [   0    0 w1^3    0]
    [   0    0    0 w1^5]
    [   1    0 w1^2    0]
    [   1    0    0    0]
    [   0 w1^6    0    1]
    [   0 w1^2    0    0]
13063680
13063680
Conjugacy classes of subgroups
------------------------------
[   1]  Order 1            Length 1
        MatrixGroup(4, GF(3^2)) of order 1
[   2]  Order 2            Length 1
。。。。。。。。。。
。。。。。。。。。。。。。。

是那26个散单群吗?
G := AbelianGroup< h, i, j, k ,m,n| 7*h*i*n*3*m, k*6*i*m, 2*j, k*h ,m*j*i>;
G;
IsAbelian(G);
IsSimple(G);

Abelian Group isomorphic to Z/12 + Z
Defined on 2 generators
Relations:
    12*G.1 = 0
true
false

生成西罗子群判断是否是单群或幂零群,可解群,导出群
G := AbelianGroup< h, i, j, k ,m,n| 7*h*i*n*3*m, k*6*i*m, 2*j, k*h ,m*j*i>;
G;
IsAbelian(G);
IsSimple(G);
S6 := SylowSubgroup(G, 11);
S6;
IsSimple(S6);
IsNilpotent(S6);
IsSoluble(S6);

DerivedGroup(G);

Abelian Group isomorphic to Z/12 + Z
Defined on 2 generators
Relations:
    12*G.1 = 0
true
false
Abelian Group of order 1
false
true
true

Abelian Group of order 1

导出群列
D := DerivedSeries(G);
D1 := DerivedSeries(S6);

D;
D1;

Abelian Group of order 1
[
    Abelian Group isomorphic to Z/12 + Z
    Defined on 2 generators
    Relations:
        12*G.1 = 0,
    Abelian Group of order 1
]
[
    Abelian Group of order 1

正规子群列,判断是否是幂零的,阿群变量
]
S7 := SubnormalSeries(G, S6);

S7;
S8 := SubnormalSeries(S6, G);
S8;

AbelianInvariants(G) ;
Invariants(G) ;
AbelianInvariants(S6) ;
[]

[
    Abelian Group isomorphic to Z/12 + Z
    Defined on 2 generators
    Relations:
        12*G.1 = 0,
    Abelian Group of order 1
]
>> S8 := SubnormalSeries(S6, G);
                        ^
Runtime error in 'SubnormalSeries': Argument is not a subgroup
>> S8;
   ^
User error: Identifier 'S8' has not been declared or assigned

[ 12, 0 ]

26个散单群里的铃木群阶:
http://brauer.maths.qmul.ac.uk/Atlas/v3/spor/
Mathieu groups

M11 M12 M22 M23 M24

Leech lattice groups

HS J2 Co1 Co2 Co3 McL Suz

Monster sections

He HN Th Fi22 Fi23 Fi24' B M

Pariahs

J1 O'N J3 Ru J4 Ly

Miscellaneous

T

F<w> := FiniteField(8);
> V := VectorSpace(F, 4);
> S9 := SuzukiGroup(V);
> S9;
Order(S9);

MatrixGroup(4, GF(2^3))
Generators:
    [  0   0   0   1]
    [  0   0   1   0]
    [  0   1   0   0]
    [  1   0   0   0]
    [w^2   0   0   0]
    [  0 w^6   0   0]
    [  0   0   w   0]
    [  0   0   0 w^5]
    [  1   0   0   0]
    [w^2   1   0   0]
    [  0   w   1   0]
    [w^5 w^3 w^2   1]
29120

CS := CharacteristicSubgroups(S9);

求特征子群代码:

F<w> := FiniteField(8);
> V := VectorSpace(F, 4);
> G := SuzukiGroup(V);
> G;
Order(G);

> CharacteristicSubgroups := function(G)
>    local A, outers, NS, CS;
>    A := AutomorphismGroup(G);
>    outers := [ a : a in Generators(A) | not IsInner(a) ];
>    NS := NormalSubgroups(G);
>    CS := [n : n in NS | forall{a: a in outers| a(n`subgroup) eq n`subgroup }];
>    return CS;
> end function;

> CS := CharacteristicSubgroups(DirectProduct(Alt(4),Alt(4)));
> [c`order: c in CS];

[ 1, 16, 144 ]
2011-2-14 16:25
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
环论符号:

Symbol         Description               Category
--------------------------------------------------
Z              ring of integers          RngInt
Z/mZ           ring of residue classes   RngRes
R[x]           univariate poly. ring     RngUPol
F[x]/f(x)      univ. poly. factor ring   RngUPolRes
R[x_1,...,x_m] multivariate poly. ring   RngMPol
R[[x]]         power series ring         RngSer
O              order in a number field   RngOrd
\Z_p           p-adic ring               RngPad
R_m            local ring                RngLoc
V              valuation ring            RngVal
--------------------------------------------------
Q              rational field            FldRat
F_q            finite field              FldFin
F(x_1,...,x_m) rational function field   FldFun
F((x))         field of Laurent series   FldPow
Q(sqrt(D))     quadratic number field    FldQuad
Q(zeta_n)      cyclotomic number field   FldCyc
Q(alpha)       number field              FldNum
Q_p            p-adic field              FldPad
Q_p(alpha)     local field               FldLoc
R              real field                FldRe
C              complex field             FldCom

整环里一个元素的环平凡环,单位环,零环,16进制可用elt

Z := IntegerRing();
n := 12345678901111;

n in Z;

Q:=IntegerRing();

n1 := 12345678901111.111;
n1 in Z;

n1 in Q;

R:= RingOfIntegers();
n1 in R;

n1 in R;

One(Z);
Identity(Z) ;
Zero(Z) ;
Representative(Z);

One(Q);
Identity(Q) ;
Zero(Q) ;
Representative(Q);

m := elt< Z | 12453 >;

m;

n:=elt< Z|0x12453 >;
n;

true
false
false
false
false
1
1
0
0
1
1
0
0
12453
74835

求环特征,判段整环到域之间的各种环:整环-欧式环,主理想环交换除环(体),非交换除环,赋值环,域

Z := IntegerRing();
n := 12345678901111;

n in Z;

Q:=IntegerRing();

n1 := 12345678901111.111;
n1 in Z;

n1 in Q;

R:= RingOfIntegers();
n1 in R;

n1 in R;

One(Z);
Identity(Z) ;
Zero(Z) ;
Representative(Z);

One(Q);
Identity(Q) ;
Zero(Q) ;
Representative(Q);

m := elt< Z | 12453 >;

m1 := elt< Z |74835 >;

m;
m1;

n:=elt< Z|0x12453 >;
n;

m eq n;
m1 eq n;
n:Hex;
k:=Eltseq(n);
k;

c:=Characteristic(Z);
c;

IsCommutative(Z) : RngInt -> BoolElt
IsUnitary(Z) : RngInt -> BoolElt
IsFinite(Z) : RngInt -> BoolElt
IsOrdered(Z) : RngInt -> BoolElt
IsField(Z) : RngInt -> BoolElt
IsEuclideanDomain(Z) : RngInt -> BoolElt
IsPID(Z) : RngInt -> BoolElt
IsUFD(Z) : RngInt -> BoolElt
IsDivisionRing(Z) : RngInt -> BoolElt
IsEuclideanRing(Z) : RngInt -> BoolElt
IsPrincipalIdealRing(Z) : RngInt -> BoolElt
IsDomain(Z) : RngInt -> BoolElt

元素操作,环半直,积和环直积,和,在整数整环和整数域(非零)四则运算一样,高斯整环和复域四则运算一样,多项式环和在有理域四则运算一样,在模素数整数域和模素多项式域就不同了

+ n : RngIntElt -> RngIntElt
- n : RngIntElt -> RngIntElt
m + n : RngIntElt, RngIntElt -> RngIntElt
m - n : RngIntElt, RngIntElt -> RngIntElt
m * n : RngIntElt, RngIntElt -> RngIntElt
n ^ k : RngIntElt, RngIntElt -> RngIntElt
m / n : RngIntElt, RngIntElt -> RngIntElt
m +:= n : RngIntElt, RngIntElt -> RngIntElt
m -:= n : RngIntElt, RngIntElt -> RngIntElt
m *:= n : RngIntElt, RngIntElt -> RngIntElt
m /:= n : RngIntElt, RngIntElt -> RngIntElt
m ^:= k : RngIntElt, RngIntElt -> RngIntElt
n div:= m : RngIntElt, RngIntElt -> RngIntElt
n mod:= m : RngIntElt, RngIntElt -> RngIntElt
n div m : RngIntElt, RngIntElt -> RngIntElt

环元素特征判断:
IsZero(n);
IsOne(n) ;
IsMinusOne(n);
IsNilpotent(n);
IsIdempotent(n) ;
IsUnit(n) ;
IsZeroDivisor(n);
IsRegular(n) ;
IsIrreducible(n);
IsPrime(n) ;
IsEven(n) ;

0
true
87288
false
false
false
false
false
false
false
true
false
false
false

求共扼,在整数整环和四则运算一样,高斯整环和多项式环就看出不同了

Conjugate(-n) ;

Conjugate(n);

Conjugate(n)

0
-74835
74835

:3:常用数论函数在MAGMA中归类到整数整环里了:像求整函数 Truncate(n1) =12345678901111

AbsoluteValue(n) : RngIntElt -> RngIntElt
Abs(n) : RngIntElt -> RngIntElt
Absolute value of the integer n.
Ilog2(n) : RngIntElt -> RngIntElt
The integral part of the logarithm to the base two of the positive integer n.
Ilog(b, n) : RngIntElt, RngIntElt -> RngIntElt
The integral part of the logarithm to the base b of the positive integer n i.e., the largest integer k such that bk ≤n. The integer b must be greater than or equal to two.
Quotrem(m, n) : RngIntElt, RngIntElt -> RngIntElt, RngIntElt
Returns both the quotient q and remainder r obtained upon dividing the integer m by the integer n, that is, m = q.n + r, where 0 ≤r < n if n>0 and n<r≤0 if n<0.
Valuation(x, p) : RngIntElt, RngIntElt -> RngIntElt, RngIntElt
The valuation of the integer x at the prime p. This is the largest integer v for which pv divides x. If x = 0 then v = ∞. The optional second return value is the integer u such that x = pv u.
Iroot(a, n) : RngIntElt, RngIntElt -> RngIntElt
Given a positive integer a, return the integer b= ⌊root n of a⌋, i.e. the integral part of the n-th root of a. To obtain the actual root (as a real number), a must e coerced into a real field and the function Root applied.
Sign(n) : RngIntElt -> RngIntElt
Returns -1, 0 or 1 depending upon whether the integer n is negative, zero or positive, respectively.
Ceiling(n) : RngIntElt -> RngIntElt
The ceiling of the integer n, that is, n itself.
Floor(n) : RngIntElt -> RngIntElt
The floor of the integer n, that is, n itself.
Round(n) : RngIntElt -> RngIntElt
This function rounds the integer n to itself.
Truncate(n) : RngIntElt -> RngIntElt
This function returns the integer truncation of the integer n, that is, n itself.
SquarefreeFactorization(n) : RngIntElt -> RngIntElt, RngIntElt
Given a non-negative integer n, return a squarefree integer x as well as a positive integer y, such that n=xy2.
Isqrt(n) : RngIntElt -> RngIntElt
Lcm(s, t) : RngIntEltFact, RngIntEltFact -> RngIntEltFact
Gcd(s, t) : RngIntEltFact, RngIntEltFact -> RngIntEltFact
SquarefreeFactorization(f) : RngIntEltFact -> RngIntEltFact, RngIntEltFact
MoebiusMu(f) : RngIntEltFact -> RngIntElt
Divisors(f) : RngIntEltFact -> SeqEnum
PrimeDivisors(f) : RngIntEltFact -> SeqEnum
NumberOfDivisors(f) : RngIntEltFact -> RngIntElt
SumOfDivisors(f) : RngIntEltFact -> RngIntElt
IsOne(s) : RngIntEltFact -> BoolElt
IsOdd(s) : RngIntEltFact -> BoolElt
IsEven(s) : RngIntEltFact -> BoolElt
IsUnit(s) : RngIntEltFact -> BoolElt
IsPrime(s) : RngIntEltFact -> BoolElt
IsPrimePower(s) : RngIntEltFact -> BoolElt
IsSquare(s) : RngIntEltFact -> BoolElt
IsSquarefree(s) : RngIntEltFact -> BoolElt

Modexp(n, k, m) : RngIntElt, RngIntElt, RngIntElt -> RngIntElt
The modular power nk mod m, where n is an integer, k is an integer and m is an integer greater than one. If k is negative, n must have an inverse i modulo m, and the result is then i - k mod m. The result is always an integer r with 0≤r< m.
n mod m : RngIntElt, RngIntElt -> RngIntElt
Remainder upon dividing the integer n by the integer m. The result always has the same sign as m. An error results if m is zero.
Modinv(n, m) : RngIntElt, RngIntElt -> RngIntElt
InverseMod(n, m) : RngIntElt, RngIntElt -> RngIntElt
Given an integer n and a positive integer m, such that n and m are coprime, return an inverse u of n modulo m, that is, return an integer 1≤u<m such that u.n = 1 mod m.
Modsqrt(n, m) : RngIntElt, RngIntElt -> BoolElt, RngIntElt
Given an integer n and an integer m ≥2, this function returns an integer b such that 0 ≤b < m and b2 = n mod m if such b exists; an error results if no such root exists.
Modorder(n, m) : RngIntElt, RngIntElt -> RngIntElt
For integers n and m, m > 1, the function returns the least integer k ≥1 such that nk = 1 mod m, or zero if gcd(n, m) != 1.
IsPrimitive(n, m) : RngIntElt, RngIntElt -> BoolElt
Returns true if n is a primitive root for m, false otherwise (0 < n < m).
PrimitiveRoot(m) : RngIntElt -> RngIntElt
Given an integer m > 1, this function returns an integer value defined as follows: If Z/mZ has a primitive root and the function is successful in finding it, the root a is returned. If Z/mZ has a primitive root but the algorithm does not succeed in finding it, or Z/mZ does not possess a primitive root, then zero is returned.
The Solution of Modular Equations
The functions described here can be used if an occasional modular operation is required; the results are integers again. For more extensive modular arithmetic it is preferable to convert to residue class ring arithmetic. See section Residue Class Rings for details.

Solution(a, b, m) : RngIntElt, RngIntElt, RngIntElt -> RngIntElt, RngIntElt
If a solution exists to the linear congruence ax = b mod m, then returns x0, k such that x = x0 + i * k represents the complete set of solutions, where i can be any integer. Otherwise, returns -1.
ChineseRemainderTheorem(X, N) : [RngIntElt], [RngIntElt] -> RngIntElt
CRT(X, N) : [RngIntElt], [RngIntElt] -> RngIntElt
Apply the Chinese Remainder Theorem to the integer sequences X and N. The sequences must have the same length, k say. The function returns the unique integer x in the range 0 ≤x < LCM(N[1].... .N[k]) such that x = X[i] mod N[i]. The elements of N must all be positive integers greater than one. If there is no solution, then -1 is returned.
Solution(A, B, N) : [RngIntElt], [RngIntElt],[RngIntElt] -> RngIntElt
Return a solution x to the system of simultaneous linear congruences defined by the integer sequences A, B and N. Each of these sequences must have the same number of terms, k say. The elements of N must all be positive integers greater than one. The i-th congruence is A[i] .x = B[i] mod N[i]. The solution x will satisfy 0 ≤x < LCM(N[1].... .N[k]). If no solution exists, -1 is returned.
NormEquation(d, m) : RngIntElt, RngIntElt -> BoolElt, RngIntElt, RngIntElt
NormEquation(d, m: parameters)) : RngIntElt, RngIntElt -> BoolElt, RngIntElt, RngIntElt
    Factorization: [<RngIntElt, RngIntElt>] Default: [ ]Given a positive integer d and a non-negative integer m, return true and two non-negative integers x and y, such that x2 + y2d = m, if such a solution exists. If such a solution does not exists only the value false is returned. If the factorization of m is known, it may be supplied as the value of the parameter Factorization to speed up the computation.

Truncate(n1)

12345678901111
2011-2-14 17:41
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
整数分解:PollardRho和Cremona

Z := IntegerRing();
n := 1234567890111112222211111111888888888888888888888888888888888888888888888888888888888888882222244444444444441122222222222222222222111111;

Factorization(n);
PollardRho(n) ;
Divisors(n);
PartialFactorization([n]);
CoprimeBasis(([ 1, 8961811, 170036731, 1523837046279841, 81017054489197218714231866471,
726059530108887015842608997490338981, 13775875100591969884460009750757346301,
123456789011111222222222444444444444411111111 ]
));
2011-2-14 18:12
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
整数分解:PollardRho和Cremona 算法,快100位了

Z := IntegerRing();
n := 1234567890111112222222224555555555559999999999999999999999999999999999999999999999999999999999999999999999999999999994444444444441122222222222222222222111111777;

Factorization(n);
PollardRho(n) ;
Divisors(n);
PartialFactorization([n]);

[ <37, 1>, <3336669973273276276276282582582582594594594594594594594594594594594\
5945945945945945945945945945945945945945945945945795795795795706006006006006006\
006003003021, 1> ]
[ <37, 1>, <3336669973273276276276282582582582594594594594594594594594594594594\
5945945945945945945945945945945945945945945945945795795795795706006006006006006\
006003003021, 1> ]
[]
[ 1, 37, 3336669973273276276276282582582582594594594594594594594594594594594594\
5945945945945945945945945945945945945945945945795795795795706006006006006006006\
003003021, 12345678901111122222222245555555555599999999999999999999999999999999\
9999999999999999999999999999999999999999999999999444444444444112222222222222222\
2222111111777 ]
[
    [
        [],
        [ <12345678901111122222222245555555555599999999999999999999999999999999\
        99999999999999999999999999999999999999999999999994444444444441122222222\
        222222222222111111777, 1> ]
    ]
]
[ <8961811, 4>, <170036731, 4>, <81017054489197218714231866471, 4> ]
2011-2-14 18:17
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
可用time 看速度:

Z := IntegerRing();
n := 123456789011111222222222455555555555999999999999999999999999999999999999999999999999999999999999999999999999999999999;

time Factorization(n);
time PollardRho(n) ;
time Divisors(n);
time PartialFactorization([n]);
time CoprimeBasis(([ 1, 8961811, 170036731, 1523837046279841, 81017054489197218714231866471,
726059530108887015842608997490338981, 13775875100591969884460009750757346301,
123456789011111222222222444444444444411111111 ]
));

[ <4493, 1>, <1866358739047092109, 1>, <3233066218483497821, 1>,
<4553746329843002811944884231128063084716920766552412595314945012903616003987,
1> ]
Time: 5.690
[ <4493, 1> ]
[ 27477584912332789277147219130993891831738259514800801246383262853327398174938\
793679056309815268194969953260627643 ]
Time: 0.010
[ 1, 4493, 1866358739047092109, 3233066218483497821, 8385549814538584845737,
14526166519646355709753, 6034061390784611392275850413087794489,
27111037828795258985495395906003460639077,
4553746329843002811944884231128063084716920766552412595314945012903616003987,
2045998225998461163406836485045838743963312500411998979075004794297594670591359\
1, 8498924258106110314598224912416571356509386353570039615682567850288675773618\
059783746900238583, 14722563426558624062843851217253269088818827496734439080768\
194963873985715008238232114441812327, 38185666691670753643489824531487655104796\
672886590187993261777351347020250865942608374822771953419,
6614847747552789791435742351911893801606299194282783478989149997268581781753201\
4376890187062785211, 2747758491233278927714721913099389183173825951480080124638\
3262853327398174938793679056309815268194969953260627643,
1234567890111112222222224555555555559999999999999999999999999999999999999999999\
99999999999999999999999999999999999999 ]
Time: 0.010
[
    [
        [],
        [ <12345678901111122222222245555555555599999999999999999999999999999999\
        9999999999999999999999999999999999999999999999999, 1> ]
    ]
]
Time: 0.000
[ <8961811, 4>, <170036731, 4>, <81017054489197218714231866471, 4> ]
Time: 0.000
2011-2-14 18:27
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
NFS筛法分解,80位的要64 M of RAM , 0.5 G of disk space

有个http://www.distributed.net/Download_clients,下了一路YES安好就可挣钱。。。。

要四部才能完成:

1.Sieving   
2.Auxiliary data gathering
3.Linear algebra
4.Factorization

二次筛选法的工作原理

http://bbs.emath.ac.cn/thread-1439-1-1.html

用二次筛选法对一个数字 n 进行因数分解,就是要找到两个数字 x 和 y ,它们模 n 之后不相等,并且 x 和 -y 模 n 之后也不相等,但是 x 2 =y 2 (mod n) 。如果找到了这两个数字,那么就可以说 ( x+ y) ( x- y) = 0 (mod n) 。因此 x+ y 和 x- y 就一定与 n 具有相同的非平凡因数。

用二次筛选法进行因数分解有赖于是否能够找到一组数字,这组数的因数可以表示为一些预先选择的素数的乘积。然后用幂向量的形式将这些因数记录下来。一旦具备了足够多的向量,就可以构造一个包含线性依赖关系的集合。用这种线性依赖关系就可以找到两个平方后模 n 相等的数字。

为实现这一目标,二次筛选方法使用了一个素数集合,称作因数基( factor base)。然后,搜索出那些可以完全分解成这个因数基中的素数的数字。如果因数基中有 k 个素数,那么每一个可分解为因数基中素数的数字就存储为一个 k 维的向量,向量 y 中的第 i 个项表示因数基中第 i 个素数在 y 因数分解结果当中的幂。

最后进行筛选操作,找出 f( r) = r 2 - n 的那些值,而这些值因数分解的结果完全包含在这个因数基中。然后像 Dixon 因数分解法中那样应用高斯消除法,找出是某数的完全平方的一组 f( r) 。

难,贴着慢慢琢磨。。。

http://magma.maths.usyd.edu.au/magma/handbook/text/166
2011-2-14 19:45
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
推荐曲线余因子验证:挑了几条条,除了KM233都对,HASH和点都还没试

P:=2^192-2^64-1;-------------素域192
P;
p192 := 6277101735386680763835789423207666416083908700390324961279;
p192;

IsPrime(p192);
Ilog2(p192);
Ilog(10, p192);
Ilog(2, p192);         二进制位数
Ilog(16, p192);
> E192 := EllipticCurve([GF(p192) | -3, 2455155546008943817740293915197451784769108058161191238065]);a=-3
E192;
O192:=Order(E192); 曲线阶
FactoredOrder(E192);曲线阶分解

O192;
IsPrime(O192);
Trace(E192);   
Twists(EK192);       扭曲线,曲线阶和=2(p+1)
TraceOfFrobenius(E192);Frobenius迹,可看出同构的椭圆曲线

Points(E192);求点,太大了
K163 := FiniteField(2,163); // finite field of size 2^163
Ilog2(2^163);
Ilog(10, 2^163);
Ilog(2, 2^163);
Ilog(16, 2^163);
EK163 := EllipticCurve([K163!1,1,0,0,1]);
EK163;
Order(EK163);
Twists(EK163);
FactoredOrder(EK163);
Factorization(11692013098647223345629483507196896696658237148126);

K233 := FiniteField(2,233);
Ilog2(2^233);
Ilog(10, 2^233);
Ilog(2, 2^233);
Ilog(16, 2^233);

EK233 := EllipticCurve([K233!1,1,0,0,1]);
EK233;

OEK233:=Order(EK233);
FactoredOrder(EK233);
OEK233;
IsPrime(OEK233);
Twists(EK233);
Factorization(13803492693581127574869511724554050767520671933232537715337748796231814);

K283 := FiniteField(2,283); // finite field of size 2^83
Ilog2(2^283);
Ilog(10, 2^283);
Ilog(2, 2^283);
Ilog(16, 2^283);
EK283 := EllipticCurve([K283!1,0,0,0,1]);
EK283;
Order(EK283);
FactoredOrder(EK283);
Twists(EK283);
Factorization(1554135113780583256735569525458815125313924693517224529718349999011926331881769\
0415492
);

K409 := FiniteField(2,409); // finite field of size 409
Ilog2(2^409);
Ilog(10, 2^409);
Ilog(2, 2^409);
Ilog(16, 2^409);
EK409 := EllipticCurve([K409!1,0,0,0,1]);
EK409;
Order(EK409);
FactoredOrder(EK409);
Twists(EK409);
Factorization(1322111937580497197903830616065542079656809365928562438569297580091522845156996\
764202693033831109832056385466362470925434684);

K571 := FiniteField(2,571); // finite field of size 571
Ilog2(2^571);
Ilog(10, 2^571);
Ilog(2, 2^571);
Ilog(16, 2^571);
EK571 := EllipticCurve([K409!1,0,0,0,1]);
EK571;
Order(EK571);
FactoredOrder(EK571);
Twists(EK571);
Factorization(7729075046034516689390703781863974688597854659412869997314470502903038284579120\
8490725359140908268473388268512033014058450946998962664692477187296864683700142\
22934741106692);

K109 := FiniteField(2,109); // finite field of size 109
Ilog2(2^109);
Ilog(10, 2^109);
Ilog(2, 2^109);
Ilog(16, 2^109);
EK109 := EllipticCurve([K109!1,1,0,0,1]);
EK109;
Order(EK109);
FactoredOrder(EK109);
Factorization(649037107316853402974897312922934);
Points(EK109);
Twists(EK109);
Km163 := FiniteField(2,163); // 2m finite field of size 109
Ilog2(2^163);
Ilog(10, 2^163);
Ilog(2, 2^163);
Ilog(16, 2^163);
EKm163 := EllipticCurve([K163!1,0,0,0,2982236234343851336267446656627785008148015875581]);
EKm163;
Order(EKm163);
FactoredOrder(EKm163);
Factorization(11692013098647223345629473816263631617836683539492
);
Twists(EKm163);

K4 := FiniteField(2,4); // finite field of size 16           试了2^4域上的求点,还不太对
Ilog2(2^4);
Ilog(10, 2^4);
Ilog(2, 2^4);
Ilog(16, 2^4);
EK4 := EllipticCurve([K4!0001,1000,0000,0000,1001]);专找了MENEZES书上的例子,应该20个点,可只算出了16个。。。
EK4;
Order(EK4);
FactoredOrder(EK4);
Factorization(16);
Points(EK4);
Twists(EK4);

=====

6277101735386680763835789423207666416083908700390324961279
6277101735386680763835789423207666416083908700390324961279
true
191
57
191
47
Elliptic Curve defined by y^2 = x^3 + 62771017353866807638357894232076664160839\
08700390324961276*x + 245515554600894381774029391519745178476910805816119123806\
5 over GF(6277101735386680763835789423207666416083908700390324961279)
[ <6277101735386680763835789423176059013767194773182842284081, 1> ]
6277101735386680763835789423176059013767194773182842284081
true
31607402316713927207482677199

31607402316713927207482677199
[
    Elliptic Curve defined by y^2 = x^3 + 6277101735386680763835789423207666416\
    083908700390324961276*x + 2455155546008943817740293915197451784769108058161\
    191238065 over GF(627710173538668076383578942320766641608390870039032496127\
    9),
    Elliptic Curve defined by y^2 = x^3 + 3256071953165425550869791931684810521\
    755660057874970232744*x + 3441361442102155539006528255597946985237925423249\
    825914045 over GF(627710173538668076383578942320766641608390870039032496127\
    9)
]
>> Points(E192);        太大了。。。。。
         ^
Runtime error in 'Points': Cardinality of set is too large
163
49
163
40
Elliptic Curve defined by y^2 + x*y = x^3 + x^2 + 1 over GF(2^163)
11692013098647223345629483507196896696658237148126
[ <2, 1>, <5846006549323611672814741753598448348329118574063, 1> ]---------殆素阶a=1,h=2
[ <2, 1>, <5846006549323611672814741753598448348329118574063, 1> ]
233
70
233
58
Elliptic Curve defined by y^2 + x*y = x^3 + x^2 + 1 over GF(2^233)
[ <2, 1>, <92269, 1>, <114861079, 1>, <130034039, 1>, <5062109767067236109, 1>,就这不是殆素阶。。。。。。。???

<989331137390630128765577490907, 1> ]
13803492693581127574869511724554050767520671933232537715337748796231814
false
[ <2, 1>, <92269, 1>, <114861079, 1>, <130034039, 1>, <5062109767067236109, 1>,
<989331137390630128765577490907, 1> ]
283
85
283
70
Elliptic Curve defined by y^2 + x*y = x^3 + 1 over GF(2^283)
1554135113780583256735569525458815125313924693517224529718349999011926331881769\
0415492
[ <2, 2>, <38853377844514581418389238136470378132848117337930613242958749975298\
15829704422603873, 1> ]--------殆素阶a=0,h=4
[ <2, 2>, <38853377844514581418389238136470378132848117337930613242958749975298\
15829704422603873, 1> ]
409
123
409
102
Elliptic Curve defined by y^2 + x*y = x^3 + 1 over GF(2^409)
1322111937580497197903830616065542079656809365928562438569297580091522845156996\
764202693033831109832056385466362470925434684
[ <2, 2>, <33052798439512429947595765401638551991420234148214060964232439502288\
0711289249191050673258457777458014096366590617731358671, 1> ]

殆素阶a=0,h=4

[
    Elliptic Curve defined by y^2 + x*y = x^3 + 1 over GF(2^409),--------------扭曲线很复杂啊
    Elliptic Curve defined by y^2 + x*y = x^3 + (K409.1^408 + K409.1^407 +
        K409.1^401 + K409.1^400 + K409.1^399 + K409.1^397 + K409.1^395 +
        K409.1^394 + K409.1^393 + K409.1^392 + K409.1^390 + K409.1^389 +
        K409.1^388 + K409.1^385 + K409.1^383 + K409.1^380 + K409.1^379 +
        K409.1^378 + K409.1^374 + K409.1^373 + K409.1^372 + K409.1^371 +
        K409.1^370 + K409.1^369 + K409.1^366 + K409.1^360 + K409.1^357 +
        K409.1^356 + K409.1^355 + K409.1^354 + K409.1^349 + K409.1^348 +
        K409.1^345 + K409.1^344 + K409.1^343 + K409.1^341 + K409.1^339 +
        K409.1^337 + K409.1^336 + K409.1^335 + K409.1^334 + K409.1^333 +
        K409.1^332 + K409.1^331 + K409.1^330 + K409.1^323 + K409.1^322 +
        K409.1^321 + K409.1^320 + K409.1^318 + K409.1^317 + K409.1^316 +
        K409.1^315 + K409.1^314 + K409.1^312 + K409.1^311 + K409.1^310 +
        K409.1^306 + K409.1^304 + K409.1^301 + K409.1^300 + K409.1^299 +
        K409.1^298 + K409.1^297 + K409.1^295 + K409.1^294 + K409.1^292 +
        K409.1^291 + K409.1^290 + K409.1^289 + K409.1^288 + K409.1^286 +
        K409.1^285 + K409.1^283 + K409.1^278 + K409.1^277 + K409.1^276 +
        K409.1^275 + K409.1^274 + K409.1^271 + K409.1^269 + K409.1^266 +
        K409.1^264 + K409.1^258 + K409.1^257 + K409.1^256 + K409.1^255 +
        K409.1^254 + K409.1^253 + K409.1^249 + K409.1^245 + K409.1^244 +
        K409.1^243 + K409.1^241 + K409.1^240 + K409.1^239 + K409.1^237 +
        K409.1^236 + K409.1^234 + K409.1^233 + K409.1^232 + K409.1^230 +
        K409.1^228 + K409.1^226 + K409.1^225 + K409.1^223 + K409.1^222 +
        K409.1^220 + K409.1^218 + K409.1^212 + K409.1^207 + K409.1^206 +
        K409.1^202 + K409.1^200 + K409.1^199 + K409.1^198 + K409.1^197 +
        K409.1^196 + K409.1^195 + K409.1^194 + K409.1^193 + K409.1^190 +
        K409.1^189 + K409.1^188 + K409.1^184 + K409.1^182 + K409.1^181 +
        K409.1^180 + K409.1^178 + K409.1^175 + K409.1^173 + K409.1^172 +
        K409.1^171 + K409.1^170 + K409.1^167 + K409.1^165 + K409.1^164 +
        K409.1^163 + K409.1^162 + K409.1^161 + K409.1^160 + K409.1^157 +
        K409.1^156 + K409.1^155 + K409.1^152 + K409.1^151 + K409.1^149 +
        K409.1^148 + K409.1^145 + K409.1^144 + K409.1^140 + K409.1^137 +
        K409.1^135 + K409.1^134 + K409.1^133 + K409.1^132 + K409.1^130 +
        K409.1^129 + K409.1^126 + K409.1^125 + K409.1^122 + K409.1^119 +
        K409.1^117 + K409.1^115 + K409.1^114 + K409.1^111 + K409.1^110 +
        K409.1^109 + K409.1^108 + K409.1^106 + K409.1^101 + K409.1^99 +
        K409.1^98 + K409.1^97 + K409.1^96 + K409.1^94 + K409.1^88 + K409.1^85 +
        K409.1^80 + K409.1^77 + K409.1^75 + K409.1^74 + K409.1^72 + K409.1^71 +
        K409.1^70 + K409.1^69 + K409.1^68 + K409.1^67 + K409.1^64 + K409.1^63 +
        K409.1^62 + K409.1^59 + K409.1^54 + K409.1^53 + K409.1^48 + K409.1^45 +
        K409.1^44 + K409.1^42 + K409.1^41 + K409.1^40 + K409.1^39 + K409.1^38 +
        K409.1^37 + K409.1^36 + K409.1^34 + K409.1^33 + K409.1^31 + K409.1^30 +
        K409.1^27 + K409.1^26 + K409.1^22 + K409.1^21 + K409.1^20 + K409.1^19 +
        K409.1^18 + K409.1^17 + K409.1^16 + K409.1^15 + K409.1^14 + K409.1^13 +
        K409.1^9 + K409.1^6 + K409.1^5 + K409.1^4 + K409.1^3 + K409.1 + 1)*x^2 +
    1 over GF(2^409)
]
[ <2, 2>, <33052798439512429947595765401638551991420234148214060964232439502288\
0711289249191050673258457777458014096366590617731358671, 1> ]

殆素阶a=0,h=4

571
171
571
142
Elliptic Curve defined by y^2 + x*y = x^3 + 1 over GF(2^409)
1322111937580497197903830616065542079656809365928562438569297580091522845156996\
764202693033831109832056385466362470925434684
[ <2, 2>, <33052798439512429947595765401638551991420234148214060964232439502288\
0711289249191050673258457777458014096366590617731358671, 1> ]
[ <2, 2>, <19322687615086291723476759454659936721494636648532174993286176257257\
5957114478021226813397852270671183470671280082535146127367497406661731192968242\
1617092503555733685276673, 1> ]
109
32
109
27
Elliptic Curve defined by y^2 + x*y = x^3 + x^2 + 1 over GF(2^109)
649037107316853402974897312922934
[ <2, 1>, <324518553658426701487448656461467, 1> ]
[ <2, 1>, <324518553658426701487448656461467, 1> ]

殆素阶a=1,h=2

>> Points(EK109);---------------------too large,109的就那女解放军教授算出的,比老外慢五年。可国内首次

         ^
Runtime error in 'Points': Cardinality of set is too large
163
49
163
40
Elliptic Curve defined by y^2 + x*y = x^3 + 1 over GF(2^163)
11692013098647223345629473816263631617836683539492
[ <2, 2>, <653, 1>, <6521, 1>, <34101072914026637, 1>,
<20129541232727197849723433, 1> ]
[ <2, 2>, <653, 1>, <6521, 1>, <34101072914026637, 1>,
<20129541232727197849723433, 1> ]
4
1
4
1
Elliptic Curve defined by y^2 + x*y = x^3 + 1 over GF(2^4)--------------二进制域上求点,一般书上都没程序化,MAGMA就是强

T := FiniteField(2,4);
E:= EllipticCurve([T!1,T.1^3,0,0,T.1^3+1]);
E;
Twists(E);
E1:= EllipticCurve([T!1,T.1,0,0,T.1^3+1]);
E1;
Points(E1);
O1:=Order(E1);
O1;
Twists(E1);
E2:= EllipticCurve([T!1,T.1^12,0,0,T.1^3+1]);
E2;
Trace(T.1^3);
Trace(T.1^4);
Trace(T.1^12);
IsIsomorphic(E1, E);
IsIsomorphic(E1, E2);
IsIsomorphic(E, E2);
Points(E);
Points(E2);
O2:=Order(E2);
O2;
O:=Order(E);
O;
O1+O;
2*(16+1);
=======================

Elliptic Curve defined by y^2 + x*y = x^3 + T.1^3*x^2 + T.1^14 over GF(2^4)
[
    Elliptic Curve defined by y^2 + x*y = x^3 + T.1^3*x^2 + T.1^14 over GF(2^4),
    Elliptic Curve defined by y^2 + x*y = x^3 + T.1^10*x^2 + T.1^14 over GF(2^4)
]
Elliptic Curve defined by y^2 + x*y = x^3 + T.1*x^2 + T.1^14 over GF(2^4)
{@ (0 : 1 : 0), (T.1^2 : T.1^7 : 1), (T.1^2 : T.1^12 : 1), (T.1^5 : T.1^7 : 1),
(T.1^5 : T.1^13 : 1), (T.1^9 : T.1^10 : 1), (T.1^9 : T.1^13 : 1), (T.1^11 :
T.1^4 : 1), (T.1^11 : T.1^13 : 1), (T.1^13 : 1 : 1), (T.1^13 : T.1^6 : 1), (0 :
T.1^7 : 1) @}
12
[
    Elliptic Curve defined by y^2 + x*y = x^3 + T.1*x^2 + T.1^14 over GF(2^4),
    Elliptic Curve defined by y^2 + x*y = x^3 + T.1^14*x^2 + T.1^14 over GF(2^4)
]
Elliptic Curve defined by y^2 + x*y = x^3 + T.1^12*x^2 + T.1^14 over GF(2^4)
1
0
1
false
false
true
{@ (0 : 1 : 0), (1 : 0 : 1), (1 : 1 : 1), (T.1 : T.1^12 : 1), (T.1 : T.1^13 :
1), (T.1^3 : 1 : 1), (T.1^3 : T.1^14 : 1), (T.1^4 : T.1^6 : 1), (T.1^4 : T.1^12
: 1), (T.1^6 : 0 : 1), (T.1^6 : T.1^6 : 1), (T.1^7 : T.1 : 1), (T.1^7 : T.1^14 :
1), (T.1^8 : 0 : 1), (T.1^8 : T.1^8 : 1), (T.1^10 : T.1^6 : 1), (T.1^10 : T.1^7
: 1), (T.1^12 : T.1^2 : 1), (T.1^12 : T.1^7 : 1), (T.1^14 : T.1^5 : 1), (T.1^14
: T.1^12 : 1), (0 : T.1^7 : 1) @}
{@ (0 : 1 : 0), (1 : T.1^2 : 1), (1 : T.1^8 : 1), (T.1 : T.1^8 : 1), (T.1 :
T.1^10 : 1), (T.1^3 : T.1^10 : 1), (T.1^3 : T.1^12 : 1), (T.1^4 : 0 : 1), (T.1^4
: T.1^4 : 1), (T.1^6 : T.1^8 : 1), (T.1^6 : T.1^14 : 1), (T.1^7 : T.1^3 : 1),
(T.1^7 : T.1^4 : 1), (T.1^8 : T.1 : 1), (T.1^8 : T.1^10 : 1), (T.1^10 : T.1^2 :
1), (T.1^10 : T.1^4 : 1), (T.1^12 : T.1 : 1), (T.1^12 : T.1^13 : 1), (T.1^14 :
T.1^2 : 1), (T.1^14 : T.1^13 : 1), (0 : T.1^7 : 1) @}
22
22
34
34
22MOD4==2
12MOD4==0
2011-2-17 18:01
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
P进数域EC曲线:

K := pAdicField(17,19);
E := EllipticCurve([K!1,0,0,0,1]);
E;
W:=WeierstrassModel(E);
Degree(E);
K1 := pAdicField(137,121);
E1:= EllipticCurve([K1!1,4,5,0,1]);
E1;
W:=WeierstrassModel(E1);
Degree(E1);
Discriminant(E);
Discriminant(E1);
PointsAtInfinity(E);
W;
Aut(E) ;
Aut(E1) ;
Iso(E,E1);
QuadraticTwist(E, 10);
QuadraticTwist(E, 7);

Elliptic Curve defined by y^2 + x*y + O(17^19)*y = x^3 + O(17^19)*x^2 +
O(17^19)*x + (1 + O(17^19)) over pAdicField(17, 19)
3
Elliptic Curve defined by y^2 + x*y + (5 + O(137^121))*y = x^3 + (4 +
O(137^121))*x^2 + O(137^121)*x + (1 + O(137^121)) over pAdicField(137, 121)
3
-433 + O(17^19)
-35335 + O(137^121)
{@ (O(17^19) : 1 + O(17^19) : O(17^19)) @}
Elliptic Curve defined by y^2 + O(137^121)*x*y + O(137^121)*y = x^3 +
O(137^121)*x^2 - (4563 + O(137^121))*x + (438318 + O(137^121)) over
pAdicField(137, 121)
Set of all automorphisms of E
Set of all automorphisms of E1
Set of all isomorphisms from E to E1
Elliptic Curve defined by y^2 + O(17^19)*x*y + O(17^19)*y = x^3 + O(17^19)*x^2 -
(2700 + O(17^19))*x + (46710000 + O(17^19)) over pAdicField(17, 19)
Elliptic Curve defined by y^2 + O(17^19)*x*y + O(17^19)*y = x^3 + O(17^19)*x^2 -
(1323 + O(17^19))*x + (16021530 + O(17^19)) over pAdicField(17, 19)
P进数域EC曲线:

K := pAdicField(17,19);
E := EllipticCurve([K!1,0,0,0,1]);
E;
W:=WeierstrassModel(E);
Degree(E);
K1 := pAdicField(137,121);
E1:= EllipticCurve([K1!1,4,5,0,1]);
E1;
W:=WeierstrassModel(E1);
Degree(E1);
Discriminant(E);
Discriminant(E1);
PointsAtInfinity(E);
W;
Aut(E) ;
Aut(E1) ;
Iso(E,E1);
QuadraticTwist(E, 10);
QuadraticTwist(E, 7);

Elliptic Curve defined by y^2 + x*y + O(17^19)*y = x^3 + O(17^19)*x^2 +
O(17^19)*x + (1 + O(17^19)) over pAdicField(17, 19)
3
Elliptic Curve defined by y^2 + x*y + (5 + O(137^121))*y = x^3 + (4 +
O(137^121))*x^2 + O(137^121)*x + (1 + O(137^121)) over pAdicField(137, 121)
3
-433 + O(17^19)
-35335 + O(137^121)
{@ (O(17^19) : 1 + O(17^19) : O(17^19)) @}
Elliptic Curve defined by y^2 + O(137^121)*x*y + O(137^121)*y = x^3 +
O(137^121)*x^2 - (4563 + O(137^121))*x + (438318 + O(137^121)) over
pAdicField(137, 121)
Set of all automorphisms of E
Set of all automorphisms of E1
Set of all isomorphisms from E to E1
Elliptic Curve defined by y^2 + O(17^19)*x*y + O(17^19)*y = x^3 + O(17^19)*x^2 -
(2700 + O(17^19))*x + (46710000 + O(17^19)) over pAdicField(17, 19)
Elliptic Curve defined by y^2 + O(17^19)*x*y + O(17^19)*y = x^3 + O(17^19)*x^2 -
(1323 + O(17^19))*x + (16021530 + O(17^19)) over pAdicField(17, 19)

pari+MAGMA一起用:

Qp = pAdicField(5,11)
E = EllipticCurve(Qp,[7, 2])
E.pari_curve()

[O(5^11), O(5^11), O(5^11), 2 + 5 + O(5^11), 2 + O(5^11), O(5^11), 4 +
2*5 + O(5^11), 3 + 5 + O(5^11), 1 + 3*5^2 + 4*5^3 + 4*5^4 + 4*5^5 +
4*5^6 + 4*5^7 + 4*5^8 + 4*5^9 + 4*5^10 + O(5^11), 4 + 2*5 + 5^2 + 2*5^3
+ 4*5^4 + 4*5^5 + 4*5^6 + 4*5^7 + 4*5^8 + 4*5^9 + 4*5^10 + O(5^11), 2 +
4*5 + 5^3 + 2*5^4 + 4*5^5 + 4*5^6 + 4*5^7 + 4*5^8 + 4*5^9 + 4*5^10 +
O(5^11), 4*5 + 2*5^2 + 2*5^4 + 2*5^5 + 3*5^6 + 4*5^7 + 4*5^8 + 4*5^9 +
4*5^10 + O(5^11), 5^-1 + 4 + 4*5 + 5^3 + 3*5^4 + 2*5^6 + 5^8 + O(5^9),
[3 + 2*5^2 + 4*5^3 + 5^4 + 4*5^5 + 3*5^6 + 4*5^7 + 2*5^8 + 2*5^9 +
4*5^10 + O(5^11)], 3 + 5^2 + 5^3 + 4*5^4 + 4*5^5 + 3*5^6 + 5^7 + 3*5^8 +
3*5^10 + O(5^11), 0, 5 + 3*5^3 + 3*5^5 + 5^7 + 5^8 + O(5^9), 1 + 5 +
4*5^2 + 4*5^3 + 3*5^4 + 5^5 + 4*5^6 + 3*5^7 + 2*5^9 + O(5^11), 0]

plot(E), pAdicField图还没实现

NotImplementedError: Plotting of curves over 5-adic Field with capped relative precision 11 not implemented yet

找到了超越咱国大学ECC叫兽们的地方:
http://sagemath.org/doc/reference/plane_curves.html

SAGE好像还不能直接绘ECC 2进制域图,超ECC的也不能直接绘,得把点求出才行
E = EllipticCurve(GF(2^100,'a'),[1,2,3,4,5])
E
Elliptic Curve defined by y^2 + x*y + y = x^3 + 1 over Finite Field in a
of size 2^100Elliptic Curve defined by y^2 + x*y + y = x^3 + 1 over Finite Field in a of size 2^100
plot(E,rgbcolor=hue(0.7))

NotImplementedError

R.<t> = PolynomialRing(GF(7))
H = HyperellipticCurve(t^5 + t + 2)
HF:=H.frobenius_polynomial()
HF;
plot(H,rgbcolor=hue(0.7))
plot(HF,rgbcolor=hue(0.7))
H.points()

NotImplementedError: Plotting of curves over Finite Field of size 37 not
implemented yetTraceback (most recent call last):
  
    raise NotImplementedError, "Plotting of curves over %s not implemented yet"%K
NotImplementedError: Plotting of curves over Finite Field of size 37 not implemented yet
2011-2-18 15:44
0
雪    币: 433
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
学群贴

自顶
2011-4-1 17:09
0
游客
登录 | 注册 方可回帖
返回
//