Coding Interview Prep · Lektion

Modulares Inverses mit Fermat

Dividieren Sie sicher modulo einer Zahl

Lektion 3 von 413 Schritte

Modulares Inverses mit Fermat ist eine kostenlose Coding Interview Prep-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 Coding Interview Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Coding Interview Prep-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. ✅

Kostenlos starten

Lerne Coding Interview Prep mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
90
Lektionen
360

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 Coding Interview Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Coding Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Modulares Inverses mit Fermat“?

Dividieren Sie sicher modulo einer Zahl Du übst Coding Interview Prep 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 Coding Interview Prep zu starten?

Keine Vorkenntnisse erforderlich. Coding Interview Prep 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 Coding Interview Prep-Lektion Code schreiben und ausführen?

Ja. Jede Coding Interview Prep-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 Coding Interview Prep