Anzahl ganzzahliger Kompositionen
Die Zahl 5 lässt sich auf 16 geordnete Arten als Summe schreiben, denn die Anzahl der Kompositionen von n ist immer 2^(n-1). Geben Sie ein n bis 10000 ein und erhalten Sie die exakte Anzahl, auch mit Tausenden Stellen. 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
- 5
- Anzahl
- 16
Eine geordnete Komposition einer positiven ganzen Zahl n ist ein Tupel positiver ganzer Zahlen, die sich zu n addieren, wobei die Reihenfolge der Teile zur Identität gehört: 1+3 und 3+1 sind zwei verschiedene Kompositionen von vier. Die klassische Kombinatorik beweist, dass die Anzahl solcher geordneten Summen stets zwei hoch n minus eins ist. Diese Fähigkeit nimmt eine einzige positive ganze Zahl n entgegen und liefert genau diese Anzahl zusammen mit der geschlossenen Formel 2^(n-1), sodass Sie nicht jedes Tupel aufzählen, einen binären Trennbaum durchlaufen oder bei Hausaufgaben, Wettbewerbsfällen oder erzeugenden Funktionen einen Einserfehler riskieren müssen.
Warum die Anzahl geordneter Kompositionen zwei hoch n minus eins ist
Schreiben Sie n Einsen in eine Reihe. Zwischen diesen Einsen liegen genau n minus eins Lücken. In jeder Lücke können Sie entweder einen Strich setzen, der die Folge in einen neuen Teil spaltet, oder die Lücke leer lassen, sodass benachbarte Einsen als größerer Teil zusammenbleiben.
Jedes Muster aus Strichen und leeren Lücken erzeugt eine geordnete Komposition von n, und jede Komposition entsteht aus genau einem solchen Muster. Weil jede der n minus eins Lücken zwei unabhängige Wahlmöglichkeiten hat, ist die Gesamtzahl der Muster zwei hoch n minus eins. Diese Identität ist der gesamte Algorithmus, den diese Fähigkeit auswertet: Sie durchläuft keine Erstteil-Zweige, legt kein Array von Tupeln an und zieht keine Stichprobe.
Eine Einzeilenprüfung für n gleich vier ergibt acht und passt zu den acht Kompositionen (4), (1,3), (3,1), (2,2), (1,1,2), (1,2,1), (2,1,1) und (1,1,1,1). Für n gleich eins gibt es ein einziges Muster ohne Striche und die Anzahl ist eins, nämlich die Komposition (1) selbst. Die geschlossene Form ist für jede positive ganze Zahl exakt, sodass eine Hausarbeit, die neun Kompositionen von vier behauptet, schlicht falsch liegt, und ein Generator, der die Größe der Kompositionsfamilie braucht, Puffer aus dieser Anzahl dimensionieren kann, ohne sie je aufzulisten.
Die Reihenfolge ist wesentlich: Wenn Sie 1+3 mit 3+1 gleichsetzen, haben Sie die Kompositionen verlassen und die Welt der Partitionen betreten, deren Anzahl p(n) keine solche Zweierpotenzformel hat und eine andere Suchabsicht darstellt.
Was Sie senden, was Sie zurückerhalten und wann die Anfrage scheitert
Die Produktregel ist streng: n unter eins ist ungültig, einschließlich null und jeder negativen Zahl, weil die übliche Definition einer Komposition eine positive ganze Zahl zum Zerlegen verlangt. Bei Erfolg wiederholt die Antwort das normalisierte n, liefert count als Dezimalzeichenkette des exakten Werts 2^(n-1) und enthält formula als die Identitätszeichenkette 2^(n-1), damit Clients den Satz anzeigen können, ohne ihn fest einzuprogrammieren.
Die Anzahl ist absichtlich eine Zeichenkette: zwei hoch dreiundfünfzig verlässt bereits den sicheren Integer-Bereich von JavaScript, und diese Seite ist gerade dann nützlich, wenn n so groß ist, dass das Auflisten jeder Komposition aussichtslos wird. Fehlgeschlagene Prüfung wird nicht berechnet.
Wo eine Kompositionsanzahl hingehört und wie sie bepreist wird
Verwenden Sie diese Anzahl, wenn die Frage lautet, wie viele geordnete Summen existieren, nicht welche Tupel es sind. Wettbewerbsprogrammierer prüfen Kandidatenlösungen für Kompositionszählprobleme gegen ein deterministisches Orakel, statt in jedem Sprach-Harness eine BigInt-Potenz neu zu implementieren. Lehrkräfte geben den Lücken-und-Striche-Beweis auf und brauchen eine maschinelle Prüfung, dass 2^(n-1) wirklich die Größe der Familie ist, bevor Lernende sie aufzulisten versuchen.
Interview-Sandkästen und Demonstrationen erzeugender Funktionen brauchen jedes Mal dieselbe Zahl. Daten- und Compilerarbeit dimensioniert manchmal einen Suchraum geordneter Stufenaufteilungen eines Budgets n und muss die Kardinalität kennen, bevor Speicher angelegt wird. Wenn Sie tatsächlich jedes Tupel brauchen, halten Sie hier inne und nutzen Sie ein Auflistungswerkzeug bei kleinem n; wenn Sie Kompositionen in genau k Teile brauchen, ist das der Binomialkoeffizient C(n-1, k-1) und eine andere Seite; wenn die Reihenfolge keine Rolle spielt, wollen Sie die Partitionsfunktion p(n).
Halten Sie n in den dokumentierten Grenzen, behandeln Sie die Zeichenkette count als die exakte ganze Zahl, und Sie erhalten eine reproduzierbare Kompositionsanzahl ohne ein Computeralgebrasystem zu installieren.
Anwendungsfälle
Schulische Prüfung der Identität 2^(n-1)
Geben Sie Lernenden ein positives n und prüfen Sie, dass ihre von Hand gezählten Kompositionen zur geschlossenen Form passen, bevor jedes Tupel aufgelistet wird.
Prüfer für Wettbewerbe und Vorstellungsgespräche
Prüfen Sie Kandidatenlösungen für Kompositionszählprobleme gegen eine exakte BigInt-Anzahl, statt in jedem Harness eine Zweierpotenz neu zu schreiben.
Suchraum geordneter Stufenaufteilungen bemessen
Ermitteln Sie, wie viele geordnete Stufenaufteilungen eines Budgets n existieren, bevor Puffer angelegt oder ein Aufzähler gestartet wird.
Häufige Fragen
Was liefert die Anzahl ganzzahliger Kompositionen?
Für eine positive ganze Zahl n liefert sie die exakte Anzahl geordneter Kompositionen von n als Dezimalzeichenkette sowie die Formel 2^(n-1). Sie listet die Tupel nicht auf.
Warum lautet die Formel zwei hoch n minus eins und nicht 2^n?
Es stehen n Einsen in einer Reihe und nur n−1 Lücken dazwischen. Jede Lücke ist eine binäre Wahl (Strich oder kein Strich), daher ist die Anzahl 2^(n−1), nicht 2^n.
Zählt diese Seite jede Komposition einzeln auf?
Nein. Diese Seite beantwortet, wie viele Kompositionen existieren. Jedes geordnete Tupel aufzulisten ist eine andere Aufgabe und nur bei kleinem n praktikabel.
Wie viele Kompositionen hat die Zahl 5?
Sie hat 16. Zwischen fünf Einsen liegen 4 Lücken, und jede Lücke bekommt einen Schnitt oder nicht: 2 Möglichkeiten je Lücke, also 2^4 = 16 geordnete Summen.
Wie groß darf n sein?
n muss eine ganze Zahl von 1 bis 10000 sein. Null und negative Zahlen werden abgelehnt, weil eine Komposition eine positive ganze Zahl voraussetzt, die zerlegt wird.
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/compositions-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/numth/compositions-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/compositions-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/compositions-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/compositions-count", 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": 5
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.compositions_count",
"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
min_n | 1 |
max_n | 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
Dieselbe reine Funktion läuft im kostenlosen Browser-Werkzeug und auf dem API-Pfad. Werte von n unter eins werden mit invalid_input abgelehnt und niemals berechnet.
Was Sie senden, was Sie zurückerhalten und wann die Anfrage scheitert
Senden Sie per POST einen JSON-Körper mit der erforderlichen positiven ganzen Zahl n, der Zahl, deren geordnete Kompositionen Sie zählen möchten. Die Aliasse integer, value und N werden für dasselbe Feld akzeptiert. n muss eine ganze Zahl von eins bis zehntausend sein; numerische Ziffernfolgen werden akzeptiert, während Brüche, Boolesche Werte, leere Zeichenketten und fehlende Felder mit invalid_input scheitern und n nennen. Werte oberhalb des veröffentlichten Maximums scheitern ebenfalls, damit eine mehrtausendstellige Zweierpotenz weder den Worker noch den Browser blockiert. Typische Prüfungen, die Sie in Tests festnageln können: n gleich eins ergibt count 1; n gleich fünf ergibt count 16; n gleich zehn ergibt count 512; n gleich null ist invalid_input.
Wo eine Kompositionsanzahl hingehört und wie sie bepreist wird
Die API-Nutzung belastet das vorausbezahlte KIT-Guthaben zum veröffentlichten Grundpreis $0.002 je erfolgreichem Element; invalid_input wird nicht berechnet.
Technische Fragen
Welche Werte von n werden akzeptiert?
Ganze Zahlen von 1 bis 10000. Null, Negative, Brüche, fehlendes n und Werte über dem Maximum scheitern mit invalid_input und werden nicht berechnet.
Wie wird die Kompositionsanzahl bepreist?
Das Browser-Werkzeug ist kostenlos und läuft örtlich. API-Anfragen belasten das vorausbezahlte KIT-Guthaben mit $0.002 je erfolgreichem Element; ungültige Eingabe wird nicht berechnet.