ForHosting KIT · Mathematik

Satz von Lucas

Erhalten Sie C(n, k) modulo einer Primzahl ohne riesige Fakultäten: C(1000, 200) modulo 7 ist 1, indem beide Zahlen zur Basis 7 geschrieben und kleine Binomialkoeffizienten der Ziffern multipliziert werden. Die Ziffern werden angezeigt, damit Sie jeden Schritt prüfen können. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
N
1.000
K
200
Leistung (W)
7
Erhalten Sie
Ergebnis
1
Ziffern von n
6, 2, 6, 2
Ziffern von k
4, 0, 4, 0

Der Satz von Lucas ist der klassische Weg, einen Binomialkoeffizienten modulo einer Primzahl auszuwerten, wenn n so groß ist, dass die Fakultät von n unpraktikabel wird. Wettbewerbsprogrammierung, kombinatorische Zahlentheorie und Kryptographie-Hausaufgaben brauchen diese Reduktion, wenn direkte Fakultäten überlaufen oder zu teuer werden.

Was der Satz von Lucas besagt und wann Sie ihn brauchen

In der elementaren Kombinatorik zählt der Binomialkoeffizient C(n, k) die k-elementigen Teilmengen einer n-elementigen Menge und entspricht der Fakultät von n geteilt durch die Fakultät von k mal die Fakultät von (n minus k). Diese geschlossene Form wird unbrauchbar, sobald n einige Tausend überschreitet und Sie nur die Antwort modulo einer kleinen Primzahl brauchen: die Zwischenfakultäten explodieren, und Gleitkomma-Näherungen verlieren den exakten Rest. Der Satz von Lucas, benannt nach Édouard Lucas, löst genau dieses modulare Problem.

Jeder Faktor nutzt Argumente kleiner als p und lässt sich mit einer kurzen multiplikativen Schleife und modularen Inversen berechnen, die existieren, weil p prim ist und jeder Nenner kleiner als p ist. Allein dieser Test beantwortet viele Fragen der Art „ist der Binomialkoeffizient durch diese Primzahl teilbar?“ ohne ein volles Produkt zu berechnen.

Der Satz verlangt, dass p prim ist; für zusammengesetzte Moduln ist dasselbe Ziffernprodukt im Allgemeinen ungültig, und diese Fähigkeit lehnt ein nicht-primes p bewusst ab, statt stillschweigend einen falschen Rest zu liefern. Studierende, die den Satz im Olympiadenmaterial treffen, Entwickler, die Wettbewerbsbibliotheken anbinden, und Lehrende, die Labore zur modularen Arithmetik vorbereiten, profitieren von einer einzigen deterministischen Funktion, die die Primheitsannahme erzwingt und die in der Beweisführung genutzten Ziffernentwicklungen offenlegt.

Wie dieser Rechner den Satz von Lucas Schritt für Schritt anwendet

Rufen Sie die Fähigkeit mit den ganzzahligen Feldern n, k und p auf. Sowohl n als auch k müssen nichtnegative ganze Zahlen von höchstens einer Billion sein; p muss eine Primzahl zwischen zwei und einer Million drei einschließlich sein. Die Implementierung prüft zuerst Typen und Schranken und führt dann einen deterministischen Primheitstest durch Probedivision auf p aus.

Wenn p akzeptiert ist, durchläuft der Löser die Basis-p-Ziffern von n und k vom niedrigstwertigen zum höchstwertigen. Jedes kleine Binomial nutzt die multiplikative Formel mit modularen Inversen über den kleinen Satz von Fermat (a hoch p minus zwei modulo p), umgesetzt mit exakten BigInt-Zwischenprodukten, damit innerhalb der veröffentlichten Schranken keine Präzision verloren geht.

Randfälle sind stabil und dokumentiert: ist k null oder gleich n, ist das Ergebnis eins modulo p (oder null nur, wenn p eins wäre, was abgelehnt wird); übersteigt k n, ist das Ergebnis null; sind n und k beide null, sind die Ziffernarrays die einzelne Ziffer null und das Ergebnis ist eins modulo p.

Praktischer Einsatz, Grenzen, Preis und Auslieferung

Nutzen Sie das Browser-Werkzeug, wenn Sie beim Lesen einer zahlentheoretischen Notiz, beim Prüfen eines Wettbewerbsbeispiels oder beim Debuggen einer modular-kombinatorischen Routine eine schnelle Lucas-Prüfung wollen. Akzeptierte Eingaben sind nichtnegative ganze Zahlen n und k bis zu einer Billion sowie Primzahlen p von zwei bis einer Million drei. Binden Sie den Endpunkt in Olympiadenhilfen, Sandboxes der Wettbewerbsprogrammierung, kryptographische Lehrdemos zu Binomialkoeffizienten modulo kleiner Primzahlen oder jede Integer-Pipeline ein, die exakte modulare Arithmetik Näherungsbibliotheken vorzieht.

Wenn Sie den uneingeschränkten ganzen C(n, k), eine Binomialzeile für alle k oder modulare Binomiale für zusammengesetzte Moduln über den Chinesischen Restsatz brauchen, nutzen Sie eine eigene Fähigkeit; dieses Werkzeug bleibt bewusst bei Lucas für eine geprüfte Primzahl p, damit der Vertrag einfach und prüfbar bleibt.

Wettbewerbsprogrammierung und Olympiadenübung

Wettbewerbsprogrammierer können C(n, k) mod p für große n an Beispielsfällen prüfen und einen expliziten Fehler sehen, wenn ein Modul versehentlich zusammengesetzt ist.

Labore zu Zahlentheorie und Kombinatorik

Lehrende und Studierende können Basis-p-Ziffern neben dem modularen Produkt prüfen, während sie den Satz von Lucas und den Nulltest zur Primteilbarkeit lernen.

Was geschieht, wenn p nicht prim ist?

Die Nachricht besagt, dass p eine Primzahl sein muss (zum Beispiel wenn p zusammengesetzt oder gleich 1 ist). Fehlgeschlagene Validierung wird nicht berechnet.

Welcher Algorithmus berechnet das modulare Binomial?

Kleine Ziffernbinomiale nutzen die multiplikative Formel mit modularen Inversen.

Welche Bereiche von n, k und p werden akzeptiert?

n und k müssen nichtnegative ganze Zahlen von höchstens 1,000,000,000,000 sein. p muss eine Primzahl von 2 bis 1,000,003 sein. Werte außerhalb dieser Grenzen oder zusammengesetztes p werden abgelehnt.

Wie erkenne ich, ob C(n, k) durch eine Primzahl teilbar ist?

Schreiben Sie n und k zur Basis p und vergleichen Sie Ziffer für Ziffer. Ist eine Ziffer von k größer als die passende Ziffer von n, ist das Ergebnis 0, also teilt p den Binomialkoeffizienten.

Was ergibt C(1000, 200) modulo 7?

Das Ergebnis ist 1. Angezeigt werden auch die Ziffern zur Basis 7, von der niedrigsten an: 6, 2, 6, 2 für 1000 und 4, 0, 4, 0 für 200. Keine Ziffer von 200 ist größer als die von 1000.

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.

POSThttps://api.kit.forhosting.com/numth/lucas-theorem-binomial

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/numth/lucas-theorem-binomial \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":1000,"k":200,"p":7}'
{
  "n": 1000,
  "k": 200,
  "p": 7
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.lucas_theorem_binomial",
  "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.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Gegeben nichtnegative ganze Zahlen n und k sowie einen Primmodul p, entwickelt der Satz n und k in der Basis p und multipliziert die Ziffernbinomiale C(n_i, k_i) modulo p. Das Produkt ist genau C(n, k) mod p; überschreitet eine untere Ziffer die passende obere, ist der Gesamtwert null. Dieser Rechner akzeptiert n, k und p, lehnt zusammengesetzte Moduln mit einem klaren invalid_input-Fehler ab, führt einen deterministischen Lucas-Lauf aus und liefert das modulare Ergebnis zusammen mit den Basis-p-Ziffern, damit Sie jeden Schritt prüfen können, ohne die Entwicklung von Hand neu abzuleiten.

Was der Satz von Lucas besagt und wann Sie ihn brauchen

Schreiben Sie n und k in der Basis p als Folgen von Ziffern n_i und k_i, jede Ziffer strikt kleiner als p. Dann ist C(n, k) kongruent modulo p zum Produkt über i von C(n_i, k_i). Ein zentrales Korollar ist der Nulltest: ist an einer Position die untere Ziffer k_i größer als n_i, ist jenes Ziffernbinomial null und damit C(n, k) durch p teilbar.

Wie dieser Rechner den Satz von Lucas Schritt für Schritt anwendet

Zusammengesetzte Werte, eins, null und Negative scheitern mit invalid_input und einer Nachricht, die p nennt; diese Fehler werden nicht berechnet. Für jedes Paar (n_i, k_i) bricht er auf null ab, falls k_i n_i übersteigt, oder multipliziert das laufende Produkt mit C(n_i, k_i) mod p. Die Antwort liefert n, k, p, result (den Rest von null bis p minus eins), is_zero, die Arrays n_digits und k_digits in Reihenfolge der niedrigstwertigen Ziffer zuerst sowie method mit der Zeichenkette lucas.

Praktischer Einsatz, Grenzen, Preis und Auslieferung

Nutzen Sie die API, wenn ein Bewerter, eine Lehrplattform oder ein Skript viele Auswertungen von C(n, k) mod p braucht, ohne eine Primheitsschranke und einen Ziffernlauf einzubetten. Jede erfolgreiche Anfrage ist ein abrechenbares Element zu $0.002; Validierungsfehler und nicht-prime Moduln werden nicht berechnet. Die Ergebnisse sind deterministisch: dasselbe Tripel liefert stets denselben Rest, dieselben Ziffernarrays und dasselbe is_zero-Flag. Weil die Einheit ein einzelnes Element ist und die Engine reines parse ist, bleibt die Latenz niedrig und der kostenlose Webkanal spiegelt die bezahlte API ohne einen zweiten Codepfad, der abdriften könnte.

Hausaufgabenbewerter und modulare Pipelines

Automatische Bewerter und Skripte können Reste bestätigen, nicht-primes p über invalid_input erkennen und jedes Zwischenprodukt innerhalb der dokumentierten Schranken halten.

Wie berechne ich C(n,k) mod p mit dieser API?

Senden Sie JSON mit den ganzzahligen Feldern n, k und p (p prim) an numth.lucas_theorem_binomial. Bei Erfolg liefert die Antwort result in 0..p−1, is_zero, Basis-p-Ziffernarrays und method "lucas".

Ist der Lucas-Satz-Binomialrechner kostenlos?

Das Browser-Werkzeug läuft gratis auf Ihrem Gerät. API-Aufrufe nutzen vorausgezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Element; ungültige Eingaben und nicht-prime Moduln werden nicht berechnet.

Vollständige KIT-Dokumentation lesen →