Rechner für die multiplikative Ordnung modulo n
Der Rechner für die multiplikative Ordnung ermittelt den kleinsten positiven Exponenten k, für den a hoch k kongruent zu 1 modulo n ist.
Im Browser ausführen – kostenlos
Geben Sie eine ganzzahlige Basis a und einen Modul n ein. Das Ergebnis enthält den reduzierten Rest, die eulersche Phi-Funktion, die Ordnung und eine direkte modulare Probe. Die Berechnung ist nur definiert, wenn a und n teilerfremd sind. Ungültige Paare führen deshalb zu einer klaren Fehlermeldung statt zu einer irreführenden Zahl. Das Werkzeug eignet sich für Aufgaben zur modularen Arithmetik, die Untersuchung zyklischer Untergruppen, periodische Muster und die elementare Zahlentheorie.
Bedeutung der multiplikativen Ordnung
Für ganze Zahlen a und n ist die multiplikative Ordnung von a modulo n die kleinste positive ganze Zahl k, sodass a<sup>k</sup> bei der Division durch n den Rest 1 besitzt. Der Zusatz „kleinste positive“ ist wesentlich: Auch spätere Exponenten können den Rest 1 ergeben, doch die Ordnung bezeichnet die erste Rückkehr zum neutralen Element der modularen Multiplikation. Die Potenzen von 2 modulo 9 liefern beispielsweise nacheinander die Reste 2, 4, 8, 7, 5 und schließlich 1; die Ordnung beträgt daher 6. Der Begriff beschreibt die Größe der von a erzeugten zyklischen Untergruppe innerhalb der invertierbaren Restklassen modulo n. Vor der Berechnung führt das Werkzeug a auf seinen üblichen nicht negativen Rest zurück. Negative Basen und Basen größer als n werden dadurch einheitlich behandelt. Zusätzlich wird ein Prüfwert aus der angegebenen Ordnung berechnet. Der Prüfwert 1 bestätigt die definierende Kongruenz; zugleich stellt die schrittweise Verkleinerung sicher, dass kein verbliebener echter Teiler des Kandidatenexponenten dieselbe Bedingung erfüllt.
Warum Teilerfremdheit erforderlich ist
Eine multiplikative Ordnung modulo n existiert nur, wenn gcd(a, n) gleich 1 ist. Das ist nicht bloß eine Eingabekonvention. Ein Element benötigt ein multiplikatives Inverses modulo n, damit seine Potenzen zur endlichen Einheitengruppe gehören und zu 1 zurückkehren können. Besitzen a und n einen gemeinsamen Faktor, bleibt bei jeder positiven Potenz von a ein entsprechendes Teilbarkeitshindernis bestehen; die Potenz kann daher nicht kongruent zu 1 modulo n sein. Der Rechner prüft diese Voraussetzung sofort und nennt den tatsächlichen größten gemeinsamen Teiler, falls sie verletzt ist. Außerdem muss der Modul mindestens 2 betragen, da die übliche Ordnungsfrage in einem nicht trivialen Restsystem gestellt wird. Die Basis darf innerhalb der veröffentlichten Grenze null, negativ oder positiv sein. Null ist jedoch für keinen zulässigen Modul gültig, weil sie nie teilerfremd zu n ist. Verwenden Sie für die Eingabe exakte ganze Zahlen und keine Dezimalzahlen oder wissenschaftlichen Näherungen. Nur so bleibt die diskrete Arithmetik erhalten, auf der größter gemeinsamer Teiler, Faktorisierung und modulare Potenzen beruhen.
So wird der kleinste Exponent gefunden
Der Rechner prüft nicht jeden Exponenten der Reihe nach. Zuerst wird n so weit faktorisiert, wie es zur Berechnung der eulerschen Phi-Funktion phi(n) erforderlich ist. Nach dem Satz von Euler ist a hoch phi(n) immer kongruent zu 1, sofern gcd(a, n) gleich 1 ist. Die gesuchte Ordnung muss somit phi(n) teilen. Anschließend faktorisiert der Algorithmus phi(n) und prüft wiederholt, ob die Division des aktuellen Kandidaten durch einen seiner Primfaktoren weiterhin eine modulare Potenz mit dem Wert 1 ergibt. Ist dies der Fall, ersetzt der kleinere Kandidat den bisherigen. Sobald kein Primfaktor mehr entfernt werden kann, ist der verbleibende Kandidat die multiplikative Ordnung. Die modulare Exponentiation arbeitet mit wiederholtem Quadrieren und reduziert Zwischenwerte stets modulo n; sämtliche Ganzzahloperationen bleiben exakt. Dieses Vorgehen ist erheblich schneller als das Durchlaufen aller positiven Exponenten, besonders bei einer großen Ordnung. Eingaben sind auf eine Billion begrenzt, damit die Probedivision eine klare deterministische Obergrenze besitzt und sowohl im Browser als auch bei automatisierten API-Aufrufen zuverlässig einsetzbar bleibt.
Anwendungsfälle
Eine Aufgabe aus der Zahlentheorie prüfen
Bestätigen Sie den kleinsten Exponenten, die eulersche Phi-Funktion, den reduzierten Rest und die abschließende Kongruenz, ohne eine lange Potenzfolge von Hand aufzulisten.
Zyklische Untergruppen untersuchen
Bestimmen Sie die Größe der von einer invertierbaren Restklasse erzeugten Untergruppe und vergleichen Sie deren Ordnung bei der Untersuchung primitiver Wurzeln mit phi(n).
Periodische modulare Muster analysieren
Ermitteln Sie die genaue Periode wiederholter Multiplikation modulo n für Berechnungen zu Rekursionen, Teilbarkeit und elementarer Kryptografie.
Häufige Fragen
Was beschreibt die berechnete multiplikative Ordnung?
Sie ist die kleinste positive ganze Zahl k, für die a^k kongruent zu 1 modulo n ist.
Warum müssen a und n teilerfremd sein?
Nur Restklassen mit gcd(a, n) gleich 1 sind modulo n invertierbar und können eine multiplikative Ordnung besitzen.
Darf die Basis a negativ sein?
Ja. Vor der Berechnung führt der Rechner a auf den nicht negativen Rest modulo n zurück.
Entspricht die Ordnung immer der eulerschen Phi-Funktion phi(n)?
Nein. Bei gültiger Eingabe teilt die Ordnung stets phi(n); sie ist nur dann gleich phi(n), wenn a die gesamte Einheitengruppe modulo n erzeugt.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Dieselbe deterministische Berechnung steht im Browser kostenlos zur Verfügung.
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/multiplicative-order \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":2,"n":9}'const res = await fetch("https://api.kit.forhosting.com/numth/multiplicative-order", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 2,
"n": 9
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/multiplicative-order",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 2,
"n": 9
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/multiplicative-order", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":2,"n":9}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":2,"n":9}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/multiplicative-order", 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": 2,
"n": 9
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.multiplicative_order",
"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_abs | 1000000000000 |
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. |