Permutation identischer Elemente
Die Buchstaben von BANANA lassen sich zu 60 verschiedenen Wörtern umstellen: 6 Buchstaben, davon dreimal A und zweimal N. Geben Sie die Gesamtzahl und die Häufigkeit jedes gleichen Elements an und erhalten Sie die exakte Zahl unterschiedlicher Anordnungen. 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
- 6
- Wiederholungen
- 3, 2, 1
- Anzahl
- 60
Die Permutation mit Wiederholung zählt, wenn Sie von einer Gesamtzahl und den Häufigkeiten identischer Elemente ausgehen, wie viele verschiedene geordnete Anordnungen eine gemischte Sammlung annehmen kann. Halten Sie n Objekte und sind einige davon ununterscheidbare Kopien, so ist die Zahl der verschiedenen Folgen die Fakultät von n geteilt durch das Produkt der Fakultät jeder angegebenen Häufigkeit. Dieser Rechner nimmt jenes Paar entgegen — die Gesamtzahl n und die Liste der Häufigkeiten —, wertet die Identität mit exakter BigInt-Arithmetik aus und liefert die Permutationsanzahl als Dezimalzeichenkette. Es gibt keine Stichprobe, keinen Netzaufruf und keine uhrabhängige Rundung: jedes gültige Paar ergibt jedes Mal dieselbe ganze Zahl.
Was eine Permutation identischer, wiederholter Elemente zählt
Eine Permutation mit Wiederholung identischer Elemente ist die Zahl der verschiedenen geordneten Anordnungen einer endlichen Sammlung, in der sich manche Mitglieder nicht unterscheiden lassen. Schreiben Sie n für die Gesamtzahl der Positionen (oder Objekte) und n1, n2 bis nk dafür, wie oft jeder ununterscheidbare Typ vorkommt. Weil das Vertauschen zweier Kopien desselben Typs keine neue Anordnung erzeugt, überzählen die n-Fakultät Ordnungen einer vollständig beschrifteten Sammlung um n1-Fakultät für den ersten Typ, n2-Fakultät für den zweiten und so weiter.
Die exakte Identität ist daher die Fakultät von n geteilt durch das Produkt jener Fakultäten. Klassische Unterrichtskontrollen umfassen die Buchstaben von BANANA: sechs Buchstaben, drei A, zwei N und ein B, was sechs Fakultät über drei Fakultät mal zwei Fakultät mal eins Fakultät ergibt, gleich sechzig verschiedenen Wörtern, und MISSISSIPPI: elf Buchstaben mit den Häufigkeiten eins, vier, vier und zwei, was elf Fakultät über jene Fakultäten ergibt, gleich vierunddreißigtausendsechshundertfünfzig.
Das ist nicht das n-hoch-r-Produkt, das manche Lehrbücher ebenfalls Permutationen mit Wiederholung nennen: jene andere Zählung füllt r unabhängige Plätze aus einem Alphabet von n Symbolen und gleicht n hoch r. Hier ist die Länge bereits n, und die Eingabe ist die Häufigkeit jeder identischen Gruppe. Ist eine angegebene Häufigkeit größer als n, ist die Sammlung unmöglich und dieser Rechner lehnt die Anfrage ab, statt null oder eine vorzeichenbehaftete Erweiterung zurückzugeben.
Häufigkeiten, die sich zu weniger als n addieren, lassen übrige eindeutige Elemente übrig; jedes Übrige trägt eine Eins-Fakultät im Nenner bei und ändert die ganze Zahl nicht, sodass dieselbe Formel weiter gilt. Die Umsetzung stichprobt nie, hängt nie von der Uhr ab und rundet nie: sie wertet die Fakultät von n über das Produkt der angegebenen Fakultäten mit exakter BigInt-Arithmetik aus, damit große Anzahlen exakte ganze Zahlen bleiben und nicht die Mantisse einer Gleitkommazahl überlaufen.
Anagramme, Sitzpläne und Wettbewerbsorakel
Sprachlehrkräfte und Rätselautorinnen nutzen diese Anzahl, wenn sie fragen, wie viele verschiedene Wörter sich durch Umordnen einer gegebenen Zeichenkette bilden lassen: die Buchstaben sind die Elemente, das Histogramm jedes Buchstabens ist die Liste der Wiederholungszahlen, und die Antwort ist genau die Fakultät von n über das Produkt jener Fakultäten. Chemie- und Genetikaufgaben, die Perlen, Basen oder farbige Sitze mit ununterscheidbaren Kopien anordnen, folgen derselben ganzen Zahl.
Statistikdozierende führen sie ein, wenn sie Stichproben mit identischen Ausgängen dem n-hoch-r-Produkt gegenüberstellen, das unabhängige Plätze füllt, und Wettbewerbsprogrammierende brauchen ein exaktes Orakel, damit sie die mehrstellige Fakultätsdivision nicht in jedem Sprachgurt neu implementieren. Prüfungsgeneratoren können den Erfolgspfad mit n gleich sechs und repeats gleich drei, zwei und eins festnageln, was sechzig ergibt, und den Ablehnungspfad mit jeder Häufigkeit größer als n, der fehlschlagen muss statt null zurückzugeben.
Schwesterseiten können das n-hoch-r-Produkt geordneter Auswahlen mit Zurücklegen, den allgemeinen Multinomialkoeffizienten oder Permutationen ohne Wiederholung ansteuern; diese Landung ist eigens die Formulierung Permutation mit Wiederholung, wenn die Eingaben eine Gesamtzahl und die Wiederholungszahlen identischer Elemente sind. Koppeln Sie die Anzahl mit Ihrem eigenen Aufzählungscode, wenn Sie die konkreten verschiedenen Zeichenketten brauchen; diese Fähigkeit liefert nur die ganze Zahl.
Anwendungsfälle
Verschiedene Anagramme eines Wortes mit wiederholten Buchstaben
Zählen Sie, wie viele verschiedene Umordnungen ein Wort wie BANANA oder MISSISSIPPI hat, indem Sie die Buchstabengesamtzahl n und das Histogramm jedes wiederholten Buchstabens senden.
Hausaufgaben- und Prüfungskontrollen für n! / n1! n2! …
Lassen Sie Lernende eine Gesamtzahl und die Wiederholungszahlen identischer Elemente einreichen und ihre von Hand gerechnete Permutation-mit-Wiederholung-Antwort prüfen, einschließlich der harten Ablehnung, wenn eine Häufigkeit n übersteigt.
Wettbewerbsorakel und Sitzpläne mit gleichen Plätzen
Holen Sie eine exakte Anordnungszahl, wenn Sie Mehrfachmengen-Permutationsaufgaben bewerten oder Sitzpläne bemessen, die ununterscheidbare Kopien mit übrigen eindeutigen Elementen mischen.
Häufige Fragen
Was ist eine Permutation mit Wiederholung identischer Elemente?
Sie zählt die verschiedenen geordneten Anordnungen von n Elementen, wenn einige ununterscheidbar sind. Sind die Wiederholungszahlen n1, n2, … nk, so ist die Zahl n! / (n1! × n2! × … × nk!).
Was geschieht, wenn eine Wiederholungszahl größer als die Gesamtzahl ist?
Eine Gruppe identischer Elemente kann nicht mehr Positionen belegen, als die Sammlung enthält, daher muss jede angegebene Häufigkeit 0 ≤ ni ≤ n erfüllen.
Worin unterscheidet sie sich von n-hoch-r-Permutationen mit Wiederholung?
Das Produkt n^r füllt r unabhängige Plätze aus einem Alphabet von n Symbolen (Reihenfolge zählt, Wiederverwendung ist erlaubt). Diese Seite nimmt stattdessen eine feste Gesamtzahl n und die Häufigkeiten identischer Kopien und liefert n! / (n1! n2! … nk!).
Warum ist die Permutationsanzahl eine Zeichenkette?
Große Werte von n! / (n1! n2! …) überschreiten die sicheren Ganzzahlen von JavaScript. Eine Dezimalzeichenkette hält jede Ziffer für jedes unterstützte n und jede Liste von Wiederholungszahlen exakt.
Was gilt, wenn die Häufigkeiten zusammen weniger als n ergeben?
Dann sind die übrigen Elemente einzigartig. Jedes trägt nur den Faktor eins zum Nenner bei, sodass sich das Ergebnis nicht ändert und Sie dieselbe Formel weiter nutzen können.
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/stat/permutation-with-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":6,"repeats":[3,2,1]}'const res = await fetch("https://api.kit.forhosting.com/stat/permutation-with-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 6,
"repeats": [
3,
2,
1
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/permutation-with-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 6,
"repeats": [
3,
2,
1
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/permutation-with-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":6,"repeats":[3,2,1]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":6,"repeats":[3,2,1]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/permutation-with-repetition", 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": 6,
"repeats": [
3,
2,
1
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.permutation_with_repetition",
"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 | 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
Ist eine angegebene Häufigkeit größer als n, schlägt die Anfrage mit invalid_input fehl, weil eine Gruppe nicht mehr Plätze belegen kann, als die Sammlung enthält.
Wie Sie die Gesamtzahl und die Wiederholungszahlen senden
Die Aliasse total und N werden mit derselben Bedeutung akzeptiert. Das Feld repeats ist ein nichtleeres Feld nichtnegativer ganzer Zahlen, ein Eintrag je ununterscheidbarer Gruppe, der angibt, wie viele identische Kopien jene Gruppe beiträgt. Die Summe der Häufigkeiten muss ebenfalls höchstens n bleiben, sonst würden die angegebenen Kopien die Sammlung überlaufen. Eine erfolgreiche Antwort spiegelt n und das normalisierte repeats-Feld, liefert count als Dezimalzeichenkette des exakten Permutationswerts und enthält formula als die Identität n! /(n1! n2! … nk!), damit Clients die Regel anzeigen oder protokollieren können, ohne sie fest einzucodieren. Nutzen Sie den Endpunkt aus Anagrammprüfern, Programmierwettbewerb-Validierern, Interview-Sandkästen, Tabellenanreicherungsaufträgen und Demonstrationen der diskreten Mathematik, die die Anzahl verschiedener Anordnungen vor jedem Wahrscheinlichkeitsschritt brauchen. Senden Sie einen JSON-Körper mit zwei Pflichtfeldern. Das Feld n ist die Gesamtzahl der Elemente — der Zählerindex der n-Fakultät — und muss eine ganze Zahl von null bis zehntausend sein. Die Aliasse repeat_counts und frequencies bilden auf dasselbe Feld ab. Jede Häufigkeit muss eine ganze Zahl von null bis einschließlich n sein; ist ein Eintrag größer als n, schlägt die Aufgabe mit invalid_input und einer Meldung fehl, dass die Wiederholungszahl die Gesamtzahl übersteigt. Fehlgeschlagene Prüfung — fehlendes n oder repeats, eine Nichtganzzahl, ein Bruch, ein negativer Wert, ein Wert über dem veröffentlichten Höchstwert, ein leeres Feld oder jede Häufigkeit, die n übersteigt — liefert invalid_input und wird nie berechnet. Der Preis ist ein festes $0.002 je erfolgreicher Anfrage mit Einheit item. Bevorzugen Sie die Zeichenkettenanzahl gegenüber dem Erzwingen eines JavaScript-Number, damit Werte oberhalb der sicheren Ganzzahlgrenze im JSON-Transport keine niederwertigen Ziffern verlieren.
Anagramme, Sitzpläne und Wettbewerbsorakel
Halten Sie n höchstens bei zehntausend, damit die schlechteste Fakultät auf einem Worker-Isolat und im Browser noch schnell fertig wird und zugleich Lehr- und Wettbewerbsgrößen weit jenseits des sicheren Number-Bereichs abdeckt. Fehlgeschlagene Aufgaben, die invalid_input liefern, verbrauchen kein vorausbezahltes Guthaben, was Erkundungsskripte günstig hält, wenn Lernende beim Einüben des Vertrags eine unmögliche Häufigkeit eingeben. Weil die Umsetzung reines parse ist, kostet jeder erfolgreiche Aufruf den veröffentlichten $0.002-Grundpreis, ohne Modelltoken und ohne ausgehendes Netz.
Technische Fragen
Was kostet der Rechner für Permutation mit Wiederholung?
Das Browserwerkzeug ist kostenlos und läuft örtlich. API-Aufrufe nutzen vorausbezahltes KIT-Guthaben zu $0.002 je erfolgreicher Anfrage; ungültige Eingabe wird nicht berechnet.