DMUG-Archiv 2009

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: rekursive Definition

Hoi Andreas,

deshalb sollte man das Abbruchkriterium für P[] ersteinmalkorrekt verbal formulieren.

Mit anderen Worten, die Operation \[CirclePlus] -> S[] soll die Addition ganzrationaler Punkte auf der elliptischen Kurve darstellen, die Operation \[CircleTimes] -> P[] ist die Vervielfachung eines Punktes dortselbst.

Die Vervielfachung ist eine Abkürzung für die Selbstaddition, und man sieht, dass die Addition wie gewünscht zu funktionieren scheint:

In[21]:= NestList[S[#, {1, 2}]&, {1, 2}, 26]
Out[21]= {{1, 2}, {2, 19}, {10, 6}, {21, 7}, {14, 12},
        {9, 6}, {19, 12}, {7, 10}, {4, 17}, {20, 18},
        {18, 20}, {13, 11}, {11, 2}, {11, 21}, {13, 12},
        {18, 3}, {20, 5}, {4, 6}, {7, 13}, {19, 11},
        {9, 17}, {14, 11}, {21, 16}, {10, 17}, {2, 4},
        {1, 21}, {\[Infinity], \[Infinity]}}

Demzufolge muss man die Vervielfachung als das definieren, was sie ist:

In[33]:= Clear[P]
(* m, skriptO injected from global definitions *)
P[n_Integer /; n == 1, {x_, y_}] := {x, y}
P[n_Integer /; n > 1, {x_, y_}] := P[n, {x, y}] =
        S[P[n - 1, {x, y}], {x, y}];

mit

In[37]:= NestList[S[#, {1, 2}]&, {1, 2}, 26] == Table[P[k, {1, 2}], {k, 1, 27}]
Out[37]= True

Cool, oder?

Gruss
Udo.


Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html