Waring-Problem-Darstellung
Mit Quadraten wird 30 zu 25 + 4 + 1, also 5² + 2² + 1², indem stets das größte noch passende Quadrat genommen wird. Wählen Sie eine Zahl und eine Potenz ab zwei und sehen Sie jedes Glied samt stimmender Summe. 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
- N
- 30
- K
- 2
- Basen
- 5, 2, 1
- Anzahl der Glieder
- 3
- Sum
- 30
- Darstellung
- 5^2 + 2^2 + 1^2
Die klassische Frage von Waring fragt, wie sich jede natürliche Zahl als Summe k-ter Potenzen nichtnegativer ganzer Zahlen schreiben lässt. Diese Fähigkeit setzt die übliche gierige Konstruktion um: Gegeben eine nichtnegative ganze Zahl n und einen Exponenten k von mindestens zwei, subtrahiert sie wiederholt die größte perfekte k-te Potenz, die den Rest nicht übersteigt, bis nichts übrig bleibt. Sie erhalten die geordnete Liste der Basen, den Wert jedes Terms, eine Anzeigezeichenkette und eine Summe, die bei jedem erfolgreichen Aufruf gleich n ist. Grenzen halten n und k in sicherer Ganzzahlarithmetik für Edge-Worker ohne Mehrpräzisionsbibliotheken.
Was die gierige Darstellung im Sinne von Waring bedeutet
Eine k-te Potenz ist eine ganze Zahl der Form m hoch k, wobei m nichtnegativ ganz und k ein fester Exponent ist. Das Waringsche Problem in der Zahlentheorie untersucht das kleinste g(k), sodass jede natürliche Zahl Summe von höchstens g(k) solchen Potenzen ist; berühmte Sätze liefern g(2) gleich vier (Vier-Quadrate-Satz von Lagrange) und explizite Schranken für größere k. Dieser Endpunkt sucht keine kürzeste Darstellung und beweist g(k) nicht.
Stattdessen wendet er die transparente gierige Heuristik aus Lehrbüchern und Programmierwettbewerben an: Solange der Rest r positiv ist, wählen Sie das größte m mit m hoch k höchstens r, protokollieren Sie diese Basis und ersetzen Sie r durch r minus m hoch k. Weil eins hoch k für k größer oder gleich eins stets eins ist, besitzt jede nichtnegative ganze Zahl eine endliche gierige Entwicklung und die Schleife endet mit Summe gleich n.
Die gierige Entwicklung ist nicht immer minimal—dreiundzwanzig als Kuben ist das klassische Beispiel, bei dem die Gier zwei Kuben der Zwei und sieben Einsen nutzt, während andere Identitäten weniger Kuben brauchen—aber sie ist als Verfahren eindeutig, vollständig deterministisch und termweise leicht prüfbar. Null wird als leere Summe mit der Anzeigezeichenkette null dargestellt. Vollkommene Potenzen fallen auf einen einzigen Term zusammen: hundert mit k gleich zwei liefert nur zehn zum Quadrat.
Eingabevertrag, Antwortfelder und Validierung
Ein kurzes formula-Feld wiederholt die gierige Regel, damit die Oberfläche keine Prosa erfindet. Ganzzahlige k-te Wurzeln werden durch verifizierte binäre Suche über ganzzahlige Multiplikationen berechnet, sodass Gleitkomma-Math.pow nur ein Saatwert ist, nie die alleinige Autorität. Eine harte Grenze von zehntausend Termen schützt die Antwortgröße, falls extreme Reste Einsen stapeln; mit dem veröffentlichten n-Limit ist diese Sicherung ein Sicherheitsgurt, kein üblicher Pfad.
Beispiel: n gleich dreißig und k gleich zwei liefert Basen fünf, zwei, eins und die Zeichenkette fünf zum Quadrat plus zwei zum Quadrat plus eins zum Quadrat.
Anwendungsfälle
Waring-Demonstrationen im Unterricht
Zeigen Sie Lernenden, wie die Gier für beliebiges n eine Summe von Quadraten oder Kuben aufbaut, mit jeder Basis und jedem Wert für die Tafel.
Orakel für Wettbewerbe und LMS
Bewerten Sie Programmieraufgaben, die jede gültige k-te-Potenz-Entwicklung akzeptieren, indem Sie sie mit dieser deterministischen gierigen Referenz vergleichen.
Häufige Fragen
Wie funktioniert der Rechner zur Waring-Problem-Darstellung?
Senden Sie die nichtnegative ganze Zahl n und den Exponenten k >= 2.
Ist die gierige Entwicklung immer die kürzeste?
Nein. Gier ist als Verfahren eindeutig und als Summe stets korrekt, aber kürzere Entwicklungen können existieren (zum Beispiel bei manchen Kuben). Dieser Endpunkt liefert nur die gierige Liste.
Wie wird 30 als Summe von Quadraten geschrieben?
Das größte Quadrat bis 30 ist 25, es bleiben 5. Dann passt 4, es bleibt 1, und zuletzt 1. Also gilt 30 = 5² + 2² + 1², drei Glieder, die wieder 30 ergeben.
Was passiert, wenn die Zahl schon eine genaue Potenz ist?
Sie erhalten ein einziges Glied. Mit Quadraten ist 100 einfach 10², weil das größte passende Quadrat die ganze Zahl ist und nichts übrig bleibt.
Welches Ergebnis gibt es für null?
Null erscheint als leere Summe und wird einfach als null angezeigt. Es muss keine Potenz abgezogen werden, die Liste der Glieder bleibt leer und die Summe stimmt trotzdem.
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/waring-representation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":30,"k":2}'const res = await fetch("https://api.kit.forhosting.com/numth/waring-representation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 30,
"k": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/waring-representation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 30,
"k": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/waring-representation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":30,"k":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":30,"k":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/waring-representation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"n": 30,
"k": 2
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.waring_representation",
"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_n | 1000000000 |
max_k | 40 |
max_terms | 10000 |
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
Potenzen unter zwei werden mit invalid_input abgelehnt, statt erste Potenzen stillschweigend als triviale Summe von Einsen zu behandeln.
Eingabevertrag, Antwortfelder und Validierung
Senden Sie per POST einen JSON-Körper mit zwei erforderlichen ganzen Zahlen: n, das nichtnegative Ziel von null bis eine Milliarde, und k, den Exponenten mit Minimum zwei und Maximum vierzig. Aliase number für n und power für k werden aus Komfortgründen akzeptiert. Fehlende Felder, Nicht-Ganzzahlen, Brüche, negatives n, k unter zwei oder Werte über den veröffentlichten Obergrenzen scheitern mit invalid_input und benennen das Problem; diese Fehler werden nicht abgerechnet. Bei Erfolg spiegelt die Nutzlast n und k, listet Basen in der von der Gier erzeugten Reihenfolge (nicht steigend), expandiert terms als Objekte mit base, power und value, meldet term_count und sum (stets gleich n) und baut eine lesbare Darstellung, die jede Basis caret Potenz mit Pluszeichen verbindet.
Wo eine API für gierige Potenzsummen ihren Nutzen hat
Zahlentheorie-Kurse und Olympiadevorbereitung brauchen ein live arbeitendes Orakel, das eine abstrakte Waring-Diskussion in konkrete Basen verwandelt, die Lernende von Hand prüfen können. Halten Sie n und k in den dokumentierten Grenzen, pinnen Sie representation und bases in Tests, und Sie erhalten reproduzierbare Entwicklungen im Stil von Waring für Hausaufgaben, LMS-Plugins und Edge-Worker, ohne eigene symbolische Mathematikinfrastruktur aufzubauen. Programmierplattformen nutzen dieselbe gierige Schleife als Referenzlösung, wenn Aufgaben irgendeine gültige Entwicklung statt der minimalen verlangen, und eine kleine Parse-API erspart Mehrpräzision oder CAS in den Bewertern. Forschungsnotizbücher, die gierige Länge mit bekannten g(k)-Schranken vergleichen, können viele Paare (n, k) über die API bündeln und term_count protokollieren, ohne die ganzzahlige Wurzel in jeder Sprache neu zu implementieren. Weil die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz, und ungültige Eingabe wird nicht abgerechnet.
Integrationsbeispiele
Baselines für minimale Länge
Protokollieren Sie im Stapel den gierigen term_count gegen bekannte g(k)-Schranken, um den Abstand der Gier zur optimalen Waring-Länge zu erkunden.
Technische Fragen
Warum muss k mindestens zwei sein?
Waring-Fragen zu k-ten Potenzen beginnen bei Quadraten (k=2). Erste Potenzen würden n nur in Einsen zerlegen; k unter zwei wird mit invalid_input abgelehnt und nicht abgerechnet.
Was enthält die Antwort?
Wiederholte n und k, bases in gieriger Reihenfolge, terms mit base/power/value, term_count, sum gleich n, eine representation-Zeichenkette und ein kurzes formula-Etikett.
Was kostet das Waring-Darstellungswerkzeug?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht abgerechnet.