Pellsche Gleichung
Der Rechner für die Pellsche Gleichung ermittelt die Fundamentalslösung von x² − Dy² = 1 für eine positive ganze Zahl D, die keine Quadratzahl ist.
Im Browser ausführen – kostenlos
Geben Sie D ein, um das kleinste positive ganzzahlige Paar x und y zu erhalten, das die Gleichung erfüllt. Die Berechnung verwendet exakte Ganzzahlarithmetik. Deshalb bleiben auch Ergebnisse korrekt, die den gewöhnlichen Zahlenbereich von JavaScript überschreiten. Das Werkzeug eignet sich für Aufgaben aus der Zahlentheorie, das Studium von Kettenbrüchen, Algorithmustests und Software, die eine zuverlässige kanonische Pell-Lösung benötigt.
Was die Fundamentalslösung bedeutet
Für eine feste positive ganze Zahl D, die keine Quadratzahl ist, sucht die Pellsche Gleichung ganzzahlige Werte mit x² − Dy² = 1. Es gibt unendlich viele positive Lösungen, doch sie entstehen aus einem einzigen kleinsten nicht trivialen Paar. Dieser Rechner gibt genau dieses Paar zurück, die sogenannte Fundamentalslösung: x und y sind positiv, die Identität gilt exakt und kein kleineres positives x löst dieselbe Gleichung. Für D = 2 ergibt sich beispielsweise x = 3 und y = 2, weil 3² − 2 × 2² gleich 1 ist. Die Eingabe muss eine ganze Zahl zwischen 2 und 10,000,000 sein. Eine Quadratzahl D wird abgelehnt, da sich x² − Dy² als (x − √D y)(x + √D y) faktorisieren lässt und keine positive Lösung mit y größer als null existiert. Die Ergebnisse werden als Dezimalzeichenfolgen statt als Gleitkommazahlen ausgegeben. So bleibt jede Ziffer erhalten, wenn die Fundamentalslösung unerwartet groß ist, was bereits bei einigen mäßigen D-Werten vorkommt. Sie können die Antwort daher ohne vorheriges Runden in ein Computeralgebrasystem oder eine Bibliothek für beliebige Genauigkeit übernehmen.
Wie Kettenbrüche die Antwort bestimmen
Der Algorithmus entwickelt √D in einen periodischen einfachen Kettenbruch. Dessen Näherungsbrüche liefern zunehmend genaue rationale Approximationen p/q für √D. Schließlich erfüllen Zähler und Nenner eines Näherungsbruchs die Beziehung p² − Dq² = 1. Der Rechner aktualisiert den Kettenbruchzustand und beide Rekursionen der Näherungsbrüche mit deterministischen Ganzzahloperationen. Nach jedem Schritt prüft er die Pell-Identität mittels BigInt-Arithmetik und gibt sofort die erste positive Lösung zurück. Dieser erste passende Näherungsbruch ist die Fundamentalslösung. Das Werkzeug muss daher weder beliebige Paare ganzer Zahlen durchsuchen noch einen Bereich für x und y erraten. Die Iterationszahl gibt an, wie viele Näherungsbrüche einschließlich des anfänglichen ganzzahligen Anteils von √D geprüft wurden. Damit können Sie Periodenlängen vergleichen oder die Leistung untersuchen; das mathematische Ergebnis ändert sich dadurch nicht. Bei der abschließenden Identitätsprüfung kommt keine numerische Näherung zum Einsatz. Die gewöhnliche Quadratwurzel wird nur zur exakten Bestimmung des ganzzahligen Bodens für das begrenzte D verwendet. Alle potenziell großen Lösungswerte und sämtliche Gleichheitsprüfungen bleiben exakt.
Rückgabewerte verwenden und überprüfen
Senden Sie ein Objekt mit dem Feld d, beispielsweise {"d": 13}. Für Formeln in der üblichen Schreibweise wird auch der großgeschriebene Alias D akzeptiert. Eine erfolgreiche Antwort enthält d, x, y und iterations. Behandeln Sie x und y in Ihrem Anwendungscode als dezimale Ganzzahlzeichenfolgen: Sprachen mit Ganzzahlen beliebiger Genauigkeit können sie direkt einlesen. Systeme, die auf Zahlen fester Breite beschränkt sind, sollten die Zeichenfolgen beibehalten oder eine Bibliothek für große Ganzzahlen einsetzen. Zur unabhängigen Prüfung quadrieren Sie x, ziehen D mal das Quadrat von y ab und bestätigen, dass das Ergebnis exakt eins ist. Verwenden Sie dafür Ganzzahl- und keine Gleitkommaarithmetik. Ungültige Typen, Brüche, Werte außerhalb des veröffentlichten Bereichs und Quadratzahlen erzeugen einen Fehler wegen ungültiger Eingabe statt eines irreführenden Resultats. Der Rechner nutzt weder Netzwerk noch Zufall, gespeicherten Zustand oder aktuelles Datum. Dasselbe D liefert daher immer dieselbe Antwort. Der Browser eignet sich für Einzelberechnungen; die API kostet $0.002 pro Anfrage, wenn Sie sie in ein Skript, einen Lehrdienst oder eine Testsuite integrieren möchten.
Anwendungsfälle
Aufgaben zur Zahlentheorie prüfen
Berechnen Sie die kleinste kanonische Lösung und vergleichen Sie eine manuelle Kettenbruchentwicklung mit exakten x- und y-Werten.
Deterministische Testfälle erstellen
Erzeugen Sie exakte Pell-Lösungen zum Prüfen von Arithmetik beliebiger Genauigkeit, Rekursionen oder Computeralgebraverfahren.
Kettenbruchperioden untersuchen
Vergleichen Sie Iterationszahlen und Lösungsgrößen für verschiedene nicht quadratische Werte von D.
Häufige Fragen
Was gibt der Rechner zurück?
Er gibt d, die positive Fundamentalslösung x und y als exakte Dezimalzeichenfolgen sowie die Anzahl geprüfter Näherungsbrüche zurück.
Warum sind x und y Zeichenfolgen?
Pell-Lösungen können den sicheren Ganzzahlbereich üblicher JSON-Laufzeiten überschreiten. Dezimalzeichenfolgen bewahren jede Ziffer ohne Rundung.
Warum wird eine Quadratzahl D abgelehnt?
Für quadratisches D existiert keine nicht triviale Pell-Lösung mit positivem y und somit keine positive Fundamentalslösung.
Welcher Eingabebereich wird unterstützt?
D muss eine nicht quadratische ganze Zahl zwischen 2 und 10,000,000 sein.
Was kostet ein API-Aufruf?
Jede API-Anfrage kostet $0.002. Im Browser können Sie die Funktion auch kostenlos ausführen.
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/pell-equation-solver \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"d":61}'const res = await fetch("https://api.kit.forhosting.com/numth/pell-equation-solver", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"d": 61
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/pell-equation-solver",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"d": 61
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/pell-equation-solver", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"d":61}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"d":61}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/pell-equation-solver", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"d": 61
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.pell_equation_solver",
"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_d | 10000000 |
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. |