Chinesischer-Restsatz-Löser
Lösen Sie simultane Kongruenzen in einem Schritt: x ≡ 2 mod 3, x ≡ 3 mod 5 und x ≡ 2 mod 7 ergeben x ≡ 23 mod 105. Moduln mit gemeinsamen Teilern sind erlaubt, widersprüchliche Systeme werden gemeldet. 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
- Reste
- 2, 3, 2
- Moduln
- 3, 5, 7
- X
- 23
- Modul
- 105
- Produkt
- 105
- Anzahl
- 3
Der Pfad ist reine Ganzzahl-Arithmetik: kein Netzwerk, keine Zufälligkeit und keine Uhr.
Was der chinesische Restsatz aussagt
Ein System von Kongruenzen sucht eine einzige Zahl x, die bei der Division durch mehrere Teiler, die Moduln, jeweils einen bestimmten Rest lässt. Sind die Moduln paarweise teilerfremd, teilen also keine zwei einen gemeinsamen Faktor, gibt es genau eine Antwort zwischen null und dem Produkt der Moduln minus eins; alle weiteren folgen im Abstand dieses Produkts. Das klassische Beispiel x ≡ 2 mod 3, x ≡ 3 mod 5, x ≡ 2 mod 7 hat die einzige Klasse 23 modulo 105.
So arbeitet der Löser, und typische Fehler
Der Löser verbindet die Kongruenzen nacheinander und fügt jede neue in die bisher gefundene Antwort ein. Teilen zwei Moduln einen Faktor, prüft er zuerst, ob ihre Reste modulo dem größten gemeinsamen Teiler übereinstimmen; sonst meldet er, dass es keine Lösung gibt. Stimmen sie überein, wiederholt sich die Antwort im Abstand des kleinsten gemeinsamen Vielfachen statt des Produkts. Typische Fehler sind die Erwartung einer eindeutigen Antwort modulo dem Produkt trotz gemeinsamer Teiler, Reste und Moduln in unterschiedlicher Reihenfolge oder Anzahl und das Vergessen, dass ein negativer Rest einfach modulo seinem eigenen Teiler verkleinert wird.
Wo CRT-Systeme bei Studium, Krypto-Intuition und Code Anwendung finden
Lehrkräfte können Lösungsschlüssel für Arbeitsblätter mit simultanen Kongruenzen erzeugen, ohne undurchsichtigen Rechnern zu vertrauen, die Zwischen-ggTs verbergen. Wettbewerbspraxis braucht oft einen schnellen Offline-Löser, damit handschriftliche Arbeit in Sekunden geprüft werden kann. Kombinieren Sie diese Seite mit einem Koprimzahl-Prüfer, wenn Sie nur den ggT zweier Ganzzahlen benötigen, und mit Primfaktorzerlegung, wenn Sie die Primpotenzen hinter einem einzelnen Modul statt eines simultanen Systems benötigen.
Anwendungsfälle
Simultane Kongruenzen für Hausaufgaben und Wettbewerbe
Lösen Sie Lehrbuchsysteme wie x ≡ 2 mod 3, x ≡ 3 mod 5, x ≡ 2 mod 7 und verifizieren Sie die eindeutige Klasse modulo dem Produkt der Moduln.
Modulare Rekonstruktion in Lehr-Demos
Heben Sie Restlisten zurück zu einer einzigen Ganzzahlklasse, wenn Sie Ringisomorphismen, Kalenderrätsel oder Lehr-RSA-artige CRT-Schritte erklären.
Häufige Fragen
Was kostet der Chinesischer-Restsatz-Löser?
Er ist auf dieser Seite kostenlos in Ihrem Browser.
Müssen die Moduln paarweise teilerfremd sein?
Nein. Paarweise teilerfremde Moduln liefern immer eine eindeutige Lösung modulo ihrem Produkt. Nicht teilerfremde Moduln werden akzeptiert, wenn Reste modulo jedem ggT übereinstimmen; andernfalls wird das System als inkonsistent zurückgewiesen.
Ist der Algorithmus zufällig?
Nein. Er nutzt deterministisches sukzessives CRT mit exaktem ganzzahligem ggT und modularen Inversen. Dieselben Reste und Moduln ergeben immer dasselbe x und denselben Modul.
Wie löse ich x ≡ 2 mod 3, x ≡ 3 mod 5 und x ≡ 2 mod 7?
Geben Sie die Reste 2, 3 und 2 und die Moduln 3, 5 und 7 in derselben Reihenfolge ein. Die Antwort ist 23, und jede Zahl, die sich von 23 um ein Vielfaches von 105 unterscheidet, passt ebenfalls.
Was passiert, wenn sich die Kongruenzen widersprechen?
Der Löser meldet, dass das System widersprüchlich ist, statt eine Antwort zu erfinden. Eine Lösung gibt es nur, wenn jedes Paar von Resten modulo dem größten gemeinsamen Teiler der beiden Moduln übereinstimmt.
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/chinese-remainder \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"remainders":[2,3,2],"moduli":[3,5,7]}'const res = await fetch("https://api.kit.forhosting.com/numth/chinese-remainder", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"remainders": [
2,
3,
2
],
"moduli": [
3,
5,
7
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/chinese-remainder",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"remainders": [
2,
3,
2
],
"moduli": [
3,
5,
7
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/chinese-remainder", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"remainders":[2,3,2],"moduli":[3,5,7]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"remainders":[2,3,2],"moduli":[3,5,7]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/chinese-remainder", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"remainders": [
2,
3,
2
],
"moduli": [
3,
5,
7
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.chinese_remainder",
"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.
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
Der Chinesischer-Restsatz-Löser nimmt ein System simultaner Kongruenzen — x kongruent zu jedem Rest a_i modulo jedem Modul n_i — und liefert die eindeutige Lösungsklasse, wenn eine existiert. Sie geben parallele Arrays von Resten und Moduln an; die Engine fasst sie mit sukzessivem CRT zusammen, prüft die Konsistenz, wenn Moduln gemeinsame Faktoren haben, und meldet sowohl den Repräsentanten x zwischen null und Modul minus eins als auch den Modul der Lösungsklasse (das Produkt der n_i, wenn sie paarweise teilerfremd sind, andernfalls deren kleinstes gemeinsames Vielfaches).
Was der Chinesische Restsatz liefert und wann Systeme scheitern
Klassisch gibt es, wenn die Moduln paarweise teilerfremd sind, genau eine Restklasse modulo dem Produkt der n_i, die jede Kongruenz gleichzeitig erfüllt. Das berühmte Unterrichtstripel — x ≡ 2 mod 3, x ≡ 3 mod 5, x ≡ 2 mod 7 — ergibt x ≡ 23 mod 105. Dieses Werkzeug akzeptiert auch die allgemeine Form: Moduln müssen nicht paarweise teilerfremd sein. In diesem Fall existiert eine Lösung genau dann, wenn jedes Restpaar modulo dem ggT der entsprechenden Moduln übereinstimmt, und die Lösung ist eindeutig modulo dem kleinsten gemeinsamen Vielfachen aller n_i. Stimmen Reste nicht überein, schlägt die Anfrage mit invalid_input und einer Meldung fehl, die die Inkonsistenz benennt, statt ein falsches x zu erfinden. Die JSON-Antwort bei Erfolg enthält x, modulus (den CRT-Modul der Lösungsklasse), product (das rohe Produkt der Eingabemoduln), die auf null bis n_i minus eins reduzierten Reste, eine Kopie der Moduln und count. Fehlende Arrays, ungleiche Längen, nicht positive Moduln, Nicht-Ganzzahlen und Werte außerhalb des sicheren Ganzzahlbereichs schlagen ebenfalls mit invalid_input fehl, sodass fehlerhafte Tabellenzellen niemals zu stillen falschen Antworten werden.
Wie Reste und Moduln gelesen werden und wie sukzessives CRT exakt bleibt
Jeder Modul muss eine positive sichere Ganzzahl sein. Reste dürfen negativ sein und werden vor dem Zusammenführen in das kanonische Intervall reduziert. Intern beginnt die Engine bei der ersten Kongruenz und führt wiederholt die nächste zusammen: Gegeben x ≡ x0 mod m und x ≡ a mod n, berechnet sie g gleich ggT von m und n, weist das System zurück, wenn a minus x0 nicht durch g teilbar ist, und bildet dann die aktualisierte Lösung mit einem modularen Inversen von m über g modulo n über g und multipliziert den Modul mit n über g, um das neue kgV zu erhalten. Alle Multiplikationen sind abgesichert, damit das Produkt und der Zwischen-CRT-Modul innerhalb sicherer JavaScript-Ganzzahlen bleiben; überdimensionierte Produkte schlagen klar fehl, statt zu überlaufen. Die bevorzugten Felder sind remainders und moduli als gleich lange JSON-Arrays von Ganzzahlen. Die Aliase a, ai und residues werden remainders zugeordnet; n, ni und mods werden moduli zugeordnet, sodass Formulare, Query-Strings und ältere Notebooks einen einzigen Vertrag wiederverwenden können. Jeder Eintrag darf eine JSON-Ganzzahl oder eine Dezimal-Zeichenkette mit optionalem führendem Vorzeichen sein; Brüche, wissenschaftliche Notation und eingebettete Leerzeichen werden zurückgewiesen.
Wo CRT-Systeme bei Studium, Krypto-Intuition und Code Anwendung finden
Entwickler nutzen denselben Vertrag, um modulare Rekonstruktionen in Lehr-RSA-Demos zu validieren, um deterministische Testvektoren für Bibliotheken zur modularen Arithmetik zu erstellen, und um zu prüfen, dass eine Pipeline von Resten nach einer Schemaänderung noch zu einer einzigen Klasse zusammengeführt werden kann. Auf dieser Seite läuft die Berechnung vollständig in Ihrem Browser; über die API kostet jede erfolgreiche Lösung $0.002, eine fehlgeschlagene Validierung wird nicht berechnet, und nach der Antwort wird nichts gespeichert.
Integrationsbeispiele
Deterministische Test-Fixtures für modulare Bibliotheken
Erzeugen Sie reproduzierbare CRT-Lösungen für Unit-Tests und CI-Assertions ohne von Hand berechnete Tabellen einzubetten, die von der Implementierung abweichen.
Technische Fragen
Was passiert, wenn das System inkonsistent ist?
Die Anfrage schlägt mit invalid_input und einer Meldung fehl, dass kein x das gesamte System erfüllt, weil Reste modulo dem ggT der Moduln nicht übereinstimmen.
Sind negative Reste erlaubt?
Ja. Reste dürfen negativ sein; sie werden vor der CRT-Zusammenführung auf den Bereich null bis n_i minus eins reduziert. Moduln müssen positive Ganzzahlen sein.