Jacobi-Symbol-Rechner
Das Jacobi-Symbol (5/13) ist −1, also ist 5 kein Quadrat modulo 13. Geben Sie eine ganze Zahl und einen ungeraden positiven Nenner ein und erhalten Sie −1, 0 oder +1 über das quadratische Reziprozitätsgesetz, ohne den Nenner vorher zu zerlegen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Erster Text
- 5
- N
- 13
- Jacobi-Wert
- -1
- Symbolwert
- -1
Das Jacobi-Symbol (a/n) erweitert das Legendre-Symbol von Primmoduln auf jede ungerade positive ganze Zahl n. Es liefert 0, wenn a und n einen gemeinsamen Teiler größer als eins teilen, und sonst +1 oder −1 gemäß dem Produkt der Legendre-Symbole über die Primfaktoren von n — ohne dass Sie n zuvor faktorisieren müssen. Dieser Rechner implementiert den klassischen Algorithmus der quadratischen Reziprozität: Zweierpotenzen aus dem Zähler entfernen, das Ergänzungsgesetz für (2/n) anwenden, bei beiden Seiten 3 mod 4 mit dem Reziprozitätszeichen tauschen und reduzieren.
Was das Jacobi-Symbol (a/n) bedeutet
Für eine ungerade positive ganze Zahl n und beliebiges ganzzahliges a ist das Jacobi-Symbol (a/n) multiplikativ aus dem Legendre-Symbol definiert. Ist n eine ungerade Primzahl p, stimmt Jacobi mit Legendre überein: (a/p) ist 0, wenn p a teilt, +1, wenn a ein von null verschiedenes quadratisches Residuum modulo p ist, und −1, wenn a ein quadratisches Nichtresiduum modulo p ist. Faktorisiert sich n als Produkt ungerader Primzahlen, ist (a/n) das Produkt der Legendre-Symbole von a an diesen Primzahlen (mit Vielfachheit).
Folglich gilt (a/n) = 0 genau dann, wenn gcd(a, n) größer als eins ist; ist das Symbol −1, so ist a kein Quadrat mod n; ist es jedoch +1, kann a bei zusammengesetztem n trotzdem kein Quadrat sein — Jacobi ist eine notwendige Bedingung der quadratischen Residuizität, nicht immer eine hinreichende.
Der Wert ist in beiden Argumenten vollständig multiplikativ (mit den üblichen Einschränkungen zum Definitionsbereich von n), und die Gesetze der quadratischen Reziprozität liefern eine effiziente Auswertung: a modulo n auf ein nichtnegatives Residuum reduzieren, Zweierfaktoren mit (2/n) = (−1)^((n²−1)/8) abtrennen, und wenn beide aktuellen ungeraden Teile 3 mod 4 sind, bei jedem Tausch das laufende Vorzeichen umkehren. Dieses Verfahren faktorisiert n nie und endet in logarithmisch vielen arithmetischen Schritten; deshalb teilen Handrechnungen und Maschinenimplementierungen denselben Lehrbuchalgorithmus.
Negative Zähler werden vor der Schleife ins Standard-Residuensystem reduziert, sodass (−1/n) automatisch dem Ergänzungsgesetz (−1)^((n−1)/2) folgt. Diese Fähigkeit lehnt gerades n und n unter 1 ab, weil das klassische Jacobi-Symbol für solche Nenner nicht definiert ist; das Kronecker-Symbol erweitert den Begriff, ist aber ein anderes Werkzeug mit anderer Suchintention.
Grenzen, Leistung und Einsatzorte
Der Reziprozitätsalgorithmus führt pro Bit der Eingaben eine konstante Menge modularer Arithmetik aus, sodass die Kosten mit der Bitlänge von n skalieren und nicht mit einer Probedivisionsfaktorisierung von n. Lehrkräfte nutzen es, um Handrechnungen von (a/n) zu prüfen, bevor Studierende Beweise abgeben. Entwickler binden es in Property-Tests für Gerüste im Solovay–Strassen-Stil, in Puzzle- und CTF-Löser, die einen schnellen quadratischen Charakter brauchen, und in Pipelines ein, die Reziprozität nicht in jeder Sprache neu implementieren sollen.
Anwendungsfälle
Hausaufgaben und Wettbewerbsantworten (a/n) prüfen
Studierende und Coaches können Jacobi-Symbol-Rechnungen per quadratischer Reziprozität prüfen, ohne jedes Vorzeichen manuell zu verfolgen oder einem Rechner zu vertrauen, der Ganzzahlpräzision verliert.
Primzahl- und Residuizitätstests vorbereiten
Skripte, die einen deterministischen Jacobi-Schritt für Solovay–Strassen-Demos, Euler-Kriterium-Prüfungen oder Restklassen-Assertionen brauchen, können dies aufrufen statt eigene BigInt-Schleifen mitzuliefern.
Häufige Fragen
Was ist das Jacobi-Symbol?
Es ist eine ganzzahlwertige Funktion (a/n) für ungerade positive n, die das Legendre-Symbol verallgemeinert. Dieser Rechner liefert −1, 0 oder +1 als jacobi (und denselben Wert als symbol).
Warum muss n ungerade und mindestens 1 sein?
Das klassische Jacobi-Symbol ist nur für ungerade positive Nenner definiert.
Bedeutet (a/n)=1, dass a ein Quadrat mod n ist?
Nicht immer. Ist das Symbol −1, ist a kein quadratisches Residuum mod n. Ist es +1, kann a bei zusammengesetztem n trotzdem kein Quadrat sein. Ist n prim, gleicht Jacobi Legendre und +1 bedeutet wirklich ein von null verschiedenes Quadrat.
Wie arbeitet der Jacobi-Symbol-Rechner?
Er nutzt quadratische Reziprozität über BigInt: a mod n reduzieren, Zweierfaktoren mit dem (2/n)-Gesetz entfernen, mit Vorzeichenwechsel tauschen wenn beide Teile 3 mod 4 sind, und enden wenn die Restkette 0 erreicht.
Wann ist das Jacobi-Symbol null?
Es ist null, wenn a und n einen gemeinsamen Teiler größer als 1 haben. So ergibt (0/9) den Wert 0. In allen anderen Fällen ist das Ergebnis +1 oder −1.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/numth/jacobi-symbol \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":"5","n":"13"}'const res = await fetch("https://api.kit.forhosting.com/numth/jacobi-symbol", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": "5",
"n": "13"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/jacobi-symbol",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": "5",
"n": "13"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/jacobi-symbol", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":"5","n":"13"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":"5","n":"13"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/jacobi-symbol", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"a": "5",
"n": "13"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.jacobi_symbol",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_digits | 2048 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Nutzen Sie ihn für zahlentheoretische Hausaufgaben, Wettbewerbskontrollen, Gerüste von Primzahltests und deterministische API-Schritte, die exaktes (a/n) ohne Gleitkomma oder Ad-hoc-Skripte brauchen.
Wie Sie die API aufrufen und das Ergebnis lesen
Bei Erfolg gibt die Antwort a und n als normalisierte Dezimalzeichenketten, jacobi als die Ganzzahl −1, 0 oder 1 und symbol als denselben Wert als Zeichenkette für Clients, die Textfelder bevorzugen. Senden Sie einen JSON-Körper mit zwei Pflichtfeldern: a (der Zähler) und n (der ungerade positive Nenner). Jedes darf eine dezimale Ganzzahlzeichenkette oder eine JSON-Zahl sein; bevorzugen Sie Zeichenketten, wenn Werte den sicheren Integerbereich von JavaScript überschreiten. Die Aliase numerator oder top für a sowie denominator, modulus oder m für n werden akzeptiert, damit Formulare und handgeschriebene Clients denselben Vertrag teilen. Klassische Prüfungen: a=5 und n=13 liefert jacobi −1; a=2 und n=15 liefert +1; a=1001 und n=9907 liefert −1; a=0 und n=9 liefert 0; a=1 und jedes ungerade n liefert +1. Fehlgeschlagene Validierung — fehlende Felder, Nichtganzzahlen, Brüche, gerades n, n kleiner als 1 oder ein Wert länger als die veröffentlichte Zifferngrenze — liefert invalid_input und wird nie berechnet. Die Preisgestaltung ist pauschal $0.002 pro erfolgreicher Anfrage (Einheitsposition mit marginalem Nullpreis).
Grenzen, Leistung und Einsatzorte
Diese Fähigkeit begrenzt a und n jeweils auf 2048 Dezimalziffern — groß genug für Wettbewerbsaufgaben, Krypto-Demos im Unterricht und multipräzise Hausaufgaben —, aber klein genug, dass reines Worker-BigInt interaktiv bleibt. Wenn Sie das Kronecker-Symbol für gerade oder null Nenner, eine vollständige Gitterbibliothek von Restklassen oder zeitkonstante Krypto-Primitiven brauchen, nutzen Sie einen dedizierten Multipräzisionsstapel; dieses leichte Parse-Werkzeug ist der gemeinsame Rechner und API-Schritt für die exakte Jacobi-Auswertung. Kombinieren Sie es mit modularer Exponentiation oder Invers-Werkzeugen, wenn ein Workflow das breitere Modulkasten braucht; dieser Endpoint beantwortet nur die Jacobi-Frage, damit die Suchintention klar und die Antwort minimal bleibt.
Integrationsbeispiele
CTF, Rätsel und zahlentheoretische Pipelines
Challenge-Autoren und -Löser, die exaktes (a/n) für ungerades n brauchen, erhalten eine stabile API und ein kostenloses Browser-Werkzeug mit demselben Kern, inkl. klarem invalid_input bei geradem n.
Technische Fragen
Ist der Jacobi-Symbol-Rechner kostenlos?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Aufrufe nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreicher Anfrage; fehlgeschlagene Aufgaben werden nie berechnet.