0Pricing
Competitive Programming Academy · Lektion

Modulares Inverses mit Fermat

Dividieren Sie sicher modulo einer Zahl

Modulares Inverses mit Fermat ist eine kostenlose Competitive Programming Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Competitive Programming Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Competitive Programming Academy-Kurs umfasst insgesamt 4 Lektionen.

Division funktioniert nicht mit Modulo

Addition, Subtraktion und Multiplikation verhalten sich unter einem Modulus problemlos, eine gewöhnliche Division jedoch nicht. Sie können nicht einfach dividieren und anschließend den Rest nehmen. ⚠️

Division durch Multiplikation ersetzen

Die Lösung ist das modulare Inverse: Division durch x wird zur Multiplikation mit dem Inversen von x. Also wird a / b mod m zu a multipliziert mit dem Inversen von b.

Was ein Inverses ist

Das Inverse von x ist die Zahl, die beim Multiplizieren mit x unter dem Modulus 1 ergibt. Es übernimmt die Rolle von 1/x in der gewöhnlichen Arithmetik.

# x * inv(x) % m == 1

Primzahlen machen es möglich

Ein Inverses existiert nur, wenn x keinen gemeinsamen Faktor mit m hat. Ein Primzahlmodul wie 1e9+7 garantiert, dass jedes von null verschiedene x ein Inverses besitzt.

Der kleine Satz von Fermat

Der kleine Satz von Fermat besagt, dass für eine Primzahl p x hoch p minus 1 kongruent zu 1 ist, solange x kein Vielfaches von p ist.

# x^(p-1) % p == 1

Das Inverse herleiten

Wenn Sie einen Faktor x abspalten, muss der verbleibende Teil sein Inverses sein. Das Inverse von x ist also x hoch p minus 2, modulo p genommen.

# inv(x) = x^(p-2) % p

Mit schneller Exponentiation berechnen

Dieser Exponent ist riesig, verwenden Sie daher die schnelle Exponentiation aus der letzten Lektion. In Python erledigt ein einziger Aufruf von pow die gesamte Berechnung für Sie.

inv = pow(x, MOD - 2, MOD)

Damit dividieren

Um a geteilt durch b modulo zu berechnen, multiplizieren Sie a mit dem Inversen von b. Der Rest entspricht genau dem echten Quotienten modulo p.

ans = a * pow(b, MOD - 2, MOD) % MOD

Null niemals invertieren

Es gibt kein Inverses von 0, da keine Zahl multipliziert mit null 1 ergibt. Verhindern Sie die Division durch einen Wert, der unter dem Modulus zu null reduziert wird.

Kosten eines Inversen

Jedes Inverse nach Fermat ist eine schnelle Potenzierung und benötigt daher O(log p) Zeit. Das ist für wenige Divisionen günstig, summiert sich aber bei Millionen von Berechnungen.

Tipp: Inverse stapelweise berechnen

Wenn Sie viele Inverse benötigen, berechnen Sie sie in einem cleveren linearen Durchlauf vor, statt für jedes Element pow aufzurufen. Darauf werden Sie als Nächstes bei nCr zurückgreifen.

Schnelltest

Welche Potenz liefert das modulare Inverse unter einer Primzahl?

Rückblick

Sie dividieren unter einem Primzahlmodul nun, indem Sie mit dem modularen Inversen multiplizieren, das Sie mit pow als x hoch p minus 2 bestimmen. Invertieren Sie nur niemals null. ✅

Häufig gestellte Fragen

Ist die Lektion „Modulares Inverses mit Fermat“ kostenlos?

Ja — der vollständige Text von „Modulares Inverses mit Fermat“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Competitive Programming Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Competitive Programming Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Modulares Inverses mit Fermat“?

Dividieren Sie sicher modulo einer Zahl Du übst Competitive Programming Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Competitive Programming Academy zu starten?

Keine Vorkenntnisse erforderlich. Competitive Programming Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Modulares Inverses mit Fermat“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Competitive Programming Academy-Lektion Code schreiben und ausführen?

Ja. Jede Competitive Programming Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Rechnen modulo einer Primzahl
  2. Schnelle modulare Exponentiation
  3. Modulares Inverses mit Fermat
  4. nCr mit vorberechneten Fakultäten
← Zurück zu Competitive Programming Academy