Partitionen mit verschiedenen Teilen
Die Zahl 5 zerfällt auf 3 Arten in verschiedene Teile: 5, 4+1 und 3+2. Geben Sie eine ganze Zahl von 0 bis 5000 ein und erhalten Sie die exakte Anzahl ihrer Partitionen mit verschiedenen Teilen. 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
- 10
- Wert
- 10
- Anzahl
- 10
- Q
- 10
Die Partitionsfunktion mit verschiedenen Teilen q(n) beantwortet eine klassische Frage der Zahlentheorie: Auf wie viele Arten können Sie eine nichtnegative ganze Zahl n als Summe positiver ganzer Zahlen schreiben, wenn jeder Summand höchstens einmal vorkommt und die Reihenfolge keine Rolle spielt? Zum Beispiel ist 5 gleich 5, 4+1 und 3+2, also ist q(5) gleich drei; 6 hat vier Partitionen mit verschiedenen Teilen und 10 hat zehn. Diese Zählung unterscheidet sich von der uneingeschränkten Partitionsfunktion p(n), die wiederholte Teile wie 2+2 oder 1+1+1 zulässt. Partitionen mit verschiedenen Teilen treten in erzeugenden Identitäten, in Eulers Satz, der sie mit Partitionen in ungerade Teile gleichsetzt, in Olympiaden und in Übungen zur dynamischen Programmierung auf. Diese Fähigkeit akzeptiert eine nichtnegative ganze Zahl n und liefert das exakte q(n) als Dezimalzeichenkette, berechnet mit 0-1-Dynamikprogrammierung in BigInt, sodass Werte jenseits sicherer Ganzzahlen ziffernweise korrekt bleiben. Ein negatives n wird mit einem klaren Validierungsfehler abgelehnt statt mit einem stillen Nullwert oder einer falschen Antwort.
Wie Partitionen mit verschiedenen Teilen definiert und gezählt werden
Eine Partition einer nichtnegativen ganzen Zahl n in verschiedene Teile ist eine Schreibweise von n als Summe positiver ganzer Zahlen, in der kein Teil wiederholt wird und die Reihenfolge der Summanden unerheblich ist. Konventionsgemäß ist q(0) gleich eins und zählt die leere Partition der Null. Klassische Lehrbuchwerte sind q(1)=1 (nämlich 1), q(2)=1 (nämlich 2), q(3)=2 (3 und 2+1), q(4)=2 (4 und 3+1), q(5)=3 (5, 4+1, 3+2), q(6)=4 und q(10)=10.
Die gewöhnliche erzeugende Funktion der Folge ist das unendliche Produkt über k größer oder gleich eins von eins plus x hoch k; das kodiert, dass jede positive ganze Zahl null- oder genau einmal als Teil vorkommen darf.
Ein praktischer Algorithmus in Software ist das klassische 0-1-Rucksack-Dynamikprogramm: initialisieren Sie ein Array mit einer Weise, die Summe null zu bilden, und gehen Sie für jede Teilgröße von eins bis n das Array der Restsummen von n abwärts bis zu dieser Größe und addieren die Weisen ohne den Teil zu den Weisen mit dem Teil. Die absteigende Richtung stellt sicher, dass jeder Teil höchstens einmal genutzt wird, sodass uneingeschränkte Mehrfachnutzung nie vorkommt.
Verwandte, aber andere Objekte sind uneingeschränkte Partitionen p(n), bei denen Teile wiederholt werden dürfen; Kompositionen, bei denen die Reihenfolge zählt; Mengenpartitionen, gezählt durch Stirling-Zahlen zweiter Art; und Partitionen nur in ungerade Teile, die Euler als gleichmächtig zu Partitionen mit verschiedenen Teilen für jedes n bewies. Diese Implementierung nutzt keine Gleitkomma-Näherung, kein Monte-Carlo-Sampling und keine externen Tabellen: sie füllt ein eindimensionales BigInt-Array, damit jede Ziffer korrekt ist. Der Pfad ist vollständig deterministisch — ohne Zufallsseeds, Uhren, Netz und ohne Modelldrift —, sodass dasselbe n immer dieselbe Zeichenkette liefert.
Wo Partitionen mit verschiedenen Teilen in der Praxis vorkommen
Zahlentheorie-Kurse und Programmierwettbewerbe fragen ständig, wie viele Partitionen von n paarweise verschiedene Summanden nutzen, wie diese Zählung mit uneingeschränktem p(n) verglichen wird oder ob eine Tabelle kleiner Werte mit Eulers Identität zu Partitionen in ungerade Teile übereinstimmt. Algorithmendesigner nutzen Zählungen mit verschiedenen Teilen bei der Analyse von Zustandsräumen im Stil von 0-1-Subset-Sum, beim Zählen von Kombinationen einzigartiger Ressourcengrößen, die ein Budget ergeben, oder beim Dimensionieren von DP-Tabellen, deren Dimensionen Teilgrößen mit höchstens einmaliger Nutzung verfolgen.
Kombinatorik- und erzeugende-Funktionen-Unterricht verknüpft q(n) mit dem Produkt aus eins plus x hoch k und mit eingeschränkten Identitäten vom Rogers–Ramanujan-Typ; Lehrende listen oft die verschiedenen Partitionen eines kleinen n und fragen dann nur nach der Zählung. Interviewvorbereitung und Olympiadentraining brauchen häufig ein einziges zuverlässiges q(n), ohne Tabellen von Hand zu pflegen oder versehentlich Kompositionen oder uneingeschränkte Partitionen zu zählen.
Wenn Sie später uneingeschränktes p(n), Kompositionen mit Ordnungsrelevanz, Mengenpartitionen über Stirling zweiter Art oder eine explizite Liste jeder Partition mit verschiedenen Teilen statt der Zählung brauchen, behandeln Sie diese als getrennte Suchintentionen und überladen Sie diese Landingpage nicht. Halten Sie n innerhalb der dokumentierten Grenze, damit die Latenz der Free-Tier vorhersehbar bleibt, und bevorzugen Sie String-Verbraucher für den Rückgabewert, weil q(n) bei großen Argumenten den sicheren Ganzzahlbereich verlässt.
Anwendungsfälle
Hausaufgaben und Wettbewerbe in der Zahlentheorie
Berechnen Sie exaktes q(n) für Olympiadeaufgaben, Übungen der diskreten Mathematik und automatische Antwortschlüssel, die Partitionen mit verschiedenen Teilen verlangen.
Unterrichtsprüfungen der Euler-Identität
Prüfen Sie klassische Werte wie q(5)=3 und q(10)=10 beim Lehren erzeugender Funktionen oder beim Vergleich von Zählungen mit verschiedenen und ungeraden Teilen.
Häufige Fragen
Was ist die Partitionsfunktion mit verschiedenen Teilen q(n)?
q(n) zählt die Arten, n als Summe positiver ganzer Zahlen zu schreiben, wenn kein Teil wiederholt wird und die Reihenfolge keine Rolle spielt. Zum Beispiel q(5)=3 und q(10)=10.
Worin unterscheidet sich das von uneingeschränkten Partitionen p(n)?
Uneingeschränktes p(n) erlaubt wiederholte Teile (so zählt 2+2 für 4). Partitionen mit verschiedenen Teilen verbieten Wiederholungen, daher hat 4 nur zwei: 4 und 3+1.
Warum ist der Wert eine Zeichenkette statt einer Zahl?
Partitionszahlen mit verschiedenen Teilen wachsen für großes n über die sicheren Ganzzahlen von JavaScript hinaus. Dezimalzeichenketten halten jede Ziffer exakt.
Wie viele Partitionen mit verschiedenen Teilen hat 5?
Es sind 3: die 5 allein, 4+1 und 3+2. Summen wie 2+2+1 oder 1+1+3 zählen nicht, weil kein Teil doppelt vorkommen darf, und 4+1 und 1+4 sind dieselbe Partition.
Welche Zahlen kann ich eingeben?
Jede ganze Zahl von 0 bis 5000. Für 0 ist das Ergebnis 1, die leere Partition. Negative Zahlen, Dezimalzahlen und leere Eingaben werden mit einer klaren Meldung abgelehnt.
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/distinct-partitions \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/numth/distinct-partitions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/distinct-partitions",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/distinct-partitions", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/distinct-partitions", 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": 10
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.distinct_partitions",
"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
Das kostenlose Browser-Werkzeug und die kostenpflichtige API teilen eine reine Funktion, sodass Unterrichtsdemos und automatisierte Pipelines für dasselbe n nie auseinanderlaufen.
Wie Partitionen mit verschiedenen Teilen definiert und gezählt werden
Deklarierte Grenzen halten n zwischen null und fünftausend einschließlich, was die Worst-Case-Latenz für ein kostenloses Browser-Werkzeug und einen leichten Worker geeignet hält und zugleich Wettbewerb, Unterricht und Pipelines für exakte Zählungen mit verschiedenen Teilen abdeckt.
Was Sie senden und was Sie zurückerhalten
Die ganze Zahl n muss zwischen null und fünftausend einschließlich liegen. Fehlermeldungen nennen das betroffene Feld und die verletzte Regel, damit Formularclients und Skripte die Eingabe ohne Raten korrigieren können. Bei Erfolg enthält die Antwort stets das normalisierte n, value sowie count und q als dieselbe exakte Dezimalzeichenkette für q(n) und eine kurze Formel wie q(5) zur Anzeige. Geben Sie eine erforderliche ganze Zahl n im Feld n an (Aliase number, value oder N). Fehlende Felder, Nicht-Ganzzahlen, Dezimalzahlen und jedes negative n werden mit invalid_input abgelehnt und nicht berechnet. Beispielprüfungen: n gleich fünf liefert Zählung drei; n gleich zehn liefert Zählung zehn; n gleich null liefert Zählung eins; n gleich sechs liefert Zählung vier; n gleich drei liefert Zählung zwei; n gleich minus drei liefert invalid_input, weil die Funktion mit verschiedenen Teilen für negative Argumente in dieser Produktregel nicht definiert ist; n gleich einer Dezimalzahl oder einer nicht numerischen Zeichenkette liefert ebenfalls invalid_input. Der Vertrag ist stabiles JSON, geeignet für Unit-Tests, Unterrichtsdemos und Batch-Pipelines. Der Preis erfolgreicher API-Aufrufe ist die veröffentlichte Basis von $0.002 pro Element; bei Validierungsfehlern wird der Prepaid-Saldo nicht belastet.
Wo Partitionen mit verschiedenen Teilen in der Praxis vorkommen
Weil diese Fähigkeit eine reine Parse-Engine ist, ist der API-Preis die veröffentlichte Basis von $0.002 pro erfolgreichem Element und fehlgeschlagene Validierung belastet den Prepaid-Saldo nicht.
Integrationsbeispiele
0-1-Rucksack- und Subset-Sum-Analyse
Validieren Sie Fixtures für Zählungen mit verschiedenen Teilen in ganzzahligen DP-Pipelines, die jede Teilgröße höchstens einmal nutzen, ohne Gleitkommatabellen.
Technische Fragen
Was geschieht, wenn n negativ ist?
Die Anfrage scheitert mit invalid_input. Dieser Rechner verlangt n ≥ 0; negatives n wird abgelehnt und nicht berechnet.
Was kostet das?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Anfragen nutzen Prepaid-KIT-Guthaben zu $0.002 pro erfolgreichem Element; ungültige Eingabe wird nicht berechnet.