Jacobi-Symbol

Aus testwiki
Zur Navigation springen Zur Suche springen

Das Jacobi-Symbol, benannt nach Carl Gustav Jacob Jacobi, ist eine Verallgemeinerung des Legendre-Symbols. Das Jacobi-Symbol kann wiederum zum Kronecker-Symbol verallgemeinert werden. Die Notation ist die gleiche wie die des Legendre-Symbols:

(an) oder auch (a/n)

Um zwischen dem Legendre-Symbol und dem Jacobi-Symbol zu unterscheiden, schreibt man auch L(a,p) und J(a,n).

Dabei muss n im Gegensatz zum Legendre-Symbol keine Primzahl sein, allerdings muss es eine ungerade natürliche Zahl sein. Für a sind beim Jacobi-Symbol wie beim Legendre-Symbol alle ganzen Zahlen zugelassen.

n ist eine Primzahl

Falls n eine Primzahl ist, ist das Jacobi-Symbol nach Definition gleich dem Legendre-Symbol:

(an)={1wenn a ein quadratischer Rest modulo n ist1wenn a ein quadratischer Nichtrest modulo n ist0wenn n ein Teiler von a ist (also a kongruent 0 modulo n)

n ist keine Primzahl

Ist die Primfaktorzerlegung von n=p1ν1p2ν2pkνk, so definiert man

(an)=(ap1)ν1(apk)νk.

Für n=1 wird üblicherweise (a1)=1 gesetzt (leeres Produkt).

Beispiel:

(1191)=(117)(1113)=(47)(1113)=1(1)=1

Achtung: Falls n keine Primzahl ist, gibt das Jacobi-Symbol nicht an, ob a ein quadratischer Rest modulo n ist (wie beim Legendre-Symbol). Eine notwendige Bedingung dafür, dass a ein quadratischer Rest modulo n ist, ist allerdings, dass das Jacobi-Symbol ungleich 1 ist. Beispielsweise erhält man für vier verschiedene Reste a modulo 15 für

(a15)

den Wert 1, jedoch sind nur zwei davon Quadrate modulo 15 (man erhält für 1, 2, 4, 8 den Wert 1, Quadrate sind nur 1 und 4). Den Wert 0 erhält man siebenmal (0, 3, 5, 6, 9, 10, 12), davon sind aber auch nur vier Quadrate (0, 6, 9, 10). Übrig bleiben die vier Werte, für die man -1 erhält (7, 11, 13, 14), hier erhält man, wie bereits angesprochen, niemals ein Quadrat.

Allgemeine Definition

Allgemein ist das Jacobi-Symbol J(a,n) über einen Charakter χn der Gruppe /n definiert:

(an):={χn(a+n)falls ggT(a,n)=10sonst

Dabei ist χn(a+n) die folgende Funktion:

χn(a+n):=xHεx(a)

H ist dabei ein beliebiges Halbsystem modulo n, da der Wert von χn nicht von der Wahl des Halbsystems abhängt. εx(a) bezeichnet den Korrekturfaktor von a und x bezüglich H:

εx(a):={1falls x und ax im gleichen Halbsystem liegen1sonst

Eine alternative Definitionsmöglichkeit liefert das Lemma von Zolotareff, nach dem das Jacobi-Symbol gleich dem Vorzeichen einer speziellen Permutation ist.

Geschlossene Darstellung

Die folgende Formel ist eine geschlossene Darstellung des Werts des Jacobi-Symbols:

(an)=k=112(n1)h=112(a1)sgn((knha)(kn+ha12))

Zur effektiven Berechnung ist diese Formel jedoch wenig geeignet, da sie für größere a,n schnell sehr viele Faktoren aufweist.

Effiziente Berechnung des Jacobi-Symbols

In den meisten Fällen, in denen man die Berechnung des Jacobi-Symbols benötigt, so beim Solovay-Strassen-Test, hat man keine Primfaktorzerlegung der Zahl n in J(a,n), sodass sich das Jacobi-Symbol nicht auf das Legendre-Symbol zurückführen lässt. Zudem ist die oben angegebene geschlossene Darstellung für größere a,n nicht effizient genug.

Es gibt jedoch ein paar Rechenregeln, mit denen sich J(a,n) effizient bestimmen lässt. Diese Regeln ergeben sich unter anderem aus dem quadratischen Reziprozitätsgesetz, das auch für das Jacobi-Symbol seine Gültigkeit besitzt.

Das wichtigste Prinzip ist das folgende: Für alle ungeraden ganzen Zahlen m,n größer 1 gilt:

(mn)=(1)(m1)2(n1)2(nm)

Diese Regel ist das quadratische Reziprozitätsgesetz für das Jacobi-Symbol. Mit ihrer Hilfe, sowie wenigen weiteren Rechenregeln, lässt sich J(a,b) für alle a,b mit verhältnismäßig geringem Aufwand bestimmen, der vergleichbar mit dem des euklidischen Algorithmus zur Bestimmung des größten gemeinsamen Teilers ist. Die Rechenregeln, die zusätzlich benötigt werden, sind die folgenden:

  • (2n)=(1)n218={1,n±1(mod8)1,n±3(mod8)
  • (1n)=(1)n12
  • (1n)=1
  • (an)=(amodnn)

Die oben stehende Regel folgt aus der Definition des Jacobi-Symbol über den Charakter. Der Zähler des Jacobi-Symbols ist nur ein Repräsentant der Gruppe a+n; daher spielt es keine Rolle, welchen Repräsentanten man wählt.

  • (abn)=(an)(bn) (Multiplikativität im Zähler)
  • (amn)=(am)(an) (Multiplikativität im Nenner)

Als Beispiel soll J(127,703) bestimmt werden:

(127703)=(1)12627022(703127)=(703127)

Da man den Repräsentanten im Zähler frei wählen darf, ist dies gleich

(68127)=(2127)2(17127)

Da 2 zu 127 teilerfremd ist, ist J(2, 127) sicher nicht 0 und damit J(2, 127)2 = 1. Also fällt dieser Faktor weg und man erhält:

(17127)=(1)1262162(12717)=(12717)=(817)=(217)3

Für die 2 im Zähler gibt es eine geschlossene Formel, daher erhält man schließlich:

(127703)=((1)17218)3=1

Algorithmus – Berechnung des Jacobi-Symbols (a/b)

1 Eingabe xa,yb
2 J1
3 if y=1 then x1
4 while x1 and J0 do
5 Berechne q,r0, wobei x=qy+r und 0r<y
6 if r=0 then J0
7 else
8 Berechne k,x0, wobei r=2kx und x ungerade
9 if k1 mod 2 and y±3 mod 8 then JJ
10 if x=1 then x1
11 else
12 if x12y121 mod 2 then JJ
13 xy
14 yx
15 Ausgabe J

Literatur

  • Armin Leutbecher, Zahlentheorie. Springer-Verlag, 1996. ISBN 3-540-58791-8.