Anleitung zum Beherrschen des Python-Mods und seiner Verwendung

Python ist ein fantastisches Werkzeug für den effizienten Umgang mit großen Datenmengen. Dies macht es zu einem wichtigen Werkzeug, um Erkenntnisse aus einer Vielzahl von Quellen zu gewinnen.

Es überrascht nicht, dass Python über ein praktisches integriertes Repository mit arithmetischen und logischen Funktionen verfügt. Es unterstützt auch komplexere Mathematik durch modulare Bibliotheken wie NumPy und SciPy.

Während die meisten der integrierten mathematischen Funktionen, die Python unterstützt, jedem Abiturienten bekannt sind, sind die MOD Funktion sticht hervor. Im Gegensatz zu trigonometrischen oder exponentiellen Funktionen MOD ist etwas ganz und gar Grundlegenderes.

Der Python MOD Funktion ist einfach aufzurufen. Verwenden Sie einfach „% in einem arithmetischen Format, um das modulare Element der betreffenden Gleichung zurückzugeben. Sie können dies mit jedem Ausdruck tun, der einen numerischen Typ ergibt.

Um jedoch tiefer in die Bedeutung dieser Funktionen einzutauchen, ist es wichtig, umfassend zu erläutern, was modulare Funktionen sind, wie sie funktionieren und wofür Sie sie in Python verwenden möchten.

Schnelle Navigation
Was ist eine modulare Funktion?Wann sollten modulare Funktionen verwendet werden?Python-Mod-AnwendungenVerwenden Sie die modulare Potenzierung für große ZahlenVerwenden von Python NumPy für komplexe Operationen

Was ist eine modulare Funktion?

Notizbuch, Stift und Laptop im Tisch

Modulare Funktionen sind eine Grundoperation der Arithmetik – wenn auch eine so ungewöhnliche, dass sie erst im 19. Jahrhundert beschrieben wurde. Im Gegensatz zum Addieren, Subtrahieren, Multiplizieren und Dividieren konzentrieren sich modulare Funktionen auf das, was ist ausgelassen einer Gleichung.

Modulare Funktionen zeigen auf den Wert, der in einer dividierten Summe nach der Division übrig bleibt. Der einfachste Weg, die Funktionsweise modularer Funktionen zu verstehen, ist die Verwendung von Zifferblatt einer Uhr. Der Tag hat 24 Stunden, aber auf dem Zifferblatt sind es nur 12. Menschen bestimmen die Tageszeit, indem sie die kongruente Zahl berechnen Modulo 12 für die aktuelle Stunde des Tages.

Unmittelbar nach Mittag, wenn die Uhr 12:01 schlägt, wickelt sie sich physisch um ihren Umfang, um die Zeitzählung von Anfang an fortzusetzen. Dies bedeutet, dass im mathematischen System, das das Zifferblatt angibt, 13 mit 1 kongruent ist. Nach demselben System ist 23 mit 11 kongruent. In allen Fällen ist der Rest der Divisionsgleichung die Antwort der Modulfunktion.

In der Informatik sind modulare Funktionen aus den unterschiedlichsten Gründen enorm wichtig. Sie helfen Programmierern bei der Steuerung bitweiser Operationen mit zyklischen Datenstrukturen. Sie ermöglichen mathematische Beschreibungen logischen Verhaltens wie das exklusive Disjunktion.

Das Besondere an der Verwendung von Python-MOD-Gleichungen in der Computerprogrammierung ist, dass Sie mit höheren Programmiersprachen wie Python viele numerische Operanden aller Art verarbeiten können – nicht nur ganze Zahlen.

Wann sollten modulare Funktionen verwendet werden?

Wann immer Sie eine Zahl und eine andere Zahl addieren oder subtrahieren möchten, das Ergebnis aber innerhalb eines bestimmten Bereichs liegen soll, sind modulare Funktionen Ihr Schlüsseloperator.

Hier ist ein Beispiel für ein einfaches Programm, das modulare Funktionen in Python ausführt:

während True:

a = input(‚Möchten Sie fortfahren? ‚)

if a.lower() != ‚y‘:

brechen

a = float(input(‚Geben Sie eine Zahl ein: ‚))

b = float(input(‚Geben Sie eine andere Zahl ein: ‚))

print(a, ‚ % ‚, b, ‚ = ‚, a % b)

print(b, ‚ % ‚, a, ‚ = ‚, b % a)

Das Programm fragt den Benutzer, ob er fortfahren möchte. Drücken von „y“ bewirkt, dass das Programm nach zwei Zahlen fragt und den Rest der Division mithilfe der Modulo-Operation ausgibt.

Eines der faszinierenden Dinge an der Python-Modulo-Operation ist die Tatsache, dass sie sowohl mit ganzen Zahlen als auch mit Gleitkommazahlen gleichermaßen gut funktionieren kann. Wenn Sie die Zahlen „1,2“ und „2,1“ in das oben beschriebene Programm eingeben, erhalten Sie das Ergebnis „0,9000000000000001“ und nutzen dabei die verfügbare Bittiefe maximal aus.

Python erzeugt nur dann eine Ausnahme, wenn Sie versuchen, durch Null zu dividieren. Wenn der Teileroperand – die zweite Zahl in der Modulo-Operation – Null ist, wird der Code nicht ausgeführt. Die Gesetze der Mathematik liefern einfach keine definierte Antwort für diese Operation. Hier ist ein Beispiel:

a = 12

b = 0

versuchen:

print(a, ‚ % ‚, b, ‚ = ‚, a % b)

außer ZeroDivisionError als z:

print(‚Kann nicht durch Null geteilt werden! Entschuldigung! ‚)

Python-Mod-Anwendungen

Einige unmittelbare Anwendungen für modulare Funktionen drehen sich offensichtlich um Schleifenzähler. Wenn Sie ein Programm erstellen möchten, das innerhalb einer Schleife, aber nicht bei jeder Iteration der Schleife arbeitet, können Sie es so entwerfen, dass es nur auf einem bestimmten Modulo dieser Schleife arbeitet. Das würde so aussehen:

wenn k % n == 0: begin_program()

Wo „k„ist der Schleifenzähler und „N“ ist die Iteration, die Sie aktivieren möchten begin_program Befehl auf. Dadurch haben Sie viel Einfluss auf das Timing bestimmter Programmabläufe.

Eine andere Möglichkeit besteht darin, modulare Funktionen zu verwenden, um eine Liste in einen zyklischen Codeausschnitt umzuwandeln. Dies würde folgendermaßen aussehen:

def Following(L, k):

N = len(L)

gib L zurück[k % N]

Jetzt verhält sich die betreffende Liste zyklisch und kehrt am Ende jedes Zyklus in ihren Anfangszustand zurück. Mit den MOD-Funktionen von Python können Sie zyklisches Verhalten schnell und effizient verwalten. Sie können dies beispielsweise verwenden, um einen Index zu erhöhen und nach Erreichen des Endes eines Arrays wieder an den Anfang zurückzukehren.

Verwenden Sie die modulare Potenzierung für große Zahlen

Mann in Blau arbeitet an einem Apple-Laptop

Modulare Funktionen können bei sehr großen Stückzahlen betriebszeitintensiv werden. Die Zeit, die zur Berechnung des Modulo einer sehr großen Zahl benötigt wird, wird mit zunehmender Zahl länger. Dies veranlasste Computerforscher und Mathematiker, nach effizienteren Wegen zur Ausführung dieser Funktionen zu suchen.

In Python heißt das Geheimnis der Ausführung modularer Funktionen für sehr große Zahlen modulare Potenzierung. Diese Operation weist eine logarithmische Laufzeit auf und ähnelt funktionell der binären Potenzierung.

In Python die integrierte Funktion pow() führt eine modulare Potenzierung durch. Anstatt die grundlegende Modulgleichung zu lösen A % Bes löst A^B % Mwas besser für Zahlen mit exponentieller Größe geeignet ist.

Dies macht die modulare Potenzierung zu einem Schlüsselelement der kryptografischen Codierung. Ein großer Teil der Verschlüsselungsstandards für Cybersicherheit konzentriert sich auf die Berechnung des modularen Exponenten sehr großer Zahlen. Viele Entwickler wählen Python für diese Arbeit, weil Python über einen effizienten integrierten Satz von Rechenfunktionen verfügt, darunter MOD Und pow().

Eine vereinfachte Version der RSA-Verschlüsselung könnte so aussehen Python Software Foundation Beispiel:

aus Mod-Import Mod

# Zwei RSA-Schlüssel

public_key = Mod(3, 61423)

private_key = Mod(40619, 61423)

# Die geheime Botschaft

top_secret_message = 666

# RSA-Verschlüsselung

verschlüsselt = top_secret_message**public_key

# RSA-Entschlüsselung

decrypted = verschlüsselt**privater_Schlüssel

# Die geheime Nachricht wurde korrekt verschlüsselt und entschlüsselt

behaupten entschlüsselt == top_secret_message

Durch den Import einer leistungsfähigeren Bibliothek für modulare Funktionen ist dieser Code in der Lage, in nur wenigen Zeilen eine Verschlüsselungs- und Entschlüsselungsroutine festzulegen und durchzusetzen.

Allerdings ist die Mod-Bibliothek nicht die leistungsstärkste Mathematikbibliothek für Mathematik mit Python. Das beste Werkzeug für diesen Zweck ist NumPy – eine spezielle Bibliothek mathematischer Operationen, die neben vielen anderen nützlichen Werkzeugen komplexe modulare Funktionen für Arrays enthält.

Verwenden von Python NumPy für komplexe Operationen

Mann sitzt auf gelbem Stuhl, während er am Laptop arbeitet

Die integrierte arithmetische Bibliothek von Python ist für die meisten mathematischen Operationen mit der modularen Funktion mehr als ausreichend. Es gibt jedoch Fälle, in denen es fehlschlägt oder zu langsame Ergebnisse liefert, um von praktischem Nutzen zu sein.

Beispielsweise ist es mit einer weiterentwickelten Version der oben beschriebenen RSA-Verschlüsselung einfach, zu astronomischen Zahlen zu gelangen. Wenn eine Engine ein sehr großes Spektrum ähnlicher Funktionen verarbeiten würde, wäre eine erhebliche Rechenleistung erforderlich, die in einem straff organisierten Array angeordnet wäre, um sie in einem angemessenen Zeitrahmen sinnvoll nutzen zu können.

NumPy kann sehr große Berechnungen vereinfachen, indem es ein homogenes mehrdimensionales Array für gleichartige Elemente angibt, die entlang jeder seiner Achsen passen. Die Möglichkeit, ganze Achsen gleichzeitig zu berechnen, reduziert die Anzahl der Ressourcen, die in jede einzelne Berechnung fließen, erheblich und stellt ein stabiles und leistungsstarkes Tool für Big-Data-Analysen und Cybersicherheitsforschung bereit.

Andernfalls würden Sie bei der Verwendung von Python-Listen für diesen Zweck nicht weiterkommen, was sowohl die für die Durchführung jeder Berechnung benötigte Zeit als auch den für die Speicherung aller Informationen während der Berechnung benötigten Speicherplatz enorm erhöhen würde.

Da Python die Arbeit mit modularen Operationen an Elementen in Achsen ermöglicht, können Sie den Rest komplementär zu a berechnen floor_divide(x1, x2) Funktion für eine ganze Reihe von Zellen mit einem einzigen Befehl.

NumPy bietet eine Vielzahl von Parametern für den Umgang mit modularer Arithmetik:

  • array_like(x1, x2) legt die Dividenden- und Divisor-Arrays fest. x1 bezieht sich auf die Dividende und x2 zum Divisor.
  • ndarray beschreibt den Ort, an dem das Ergebnis gespeichert wird. Dies ist die Ausgabe der resultierenden modularen Array-Funktion. Die Form muss mit den relativen Formen der Dividenden- und Divisor-Arrays übereinstimmen. Andernfalls gibt das Programm ein frisch zugewiesenes Array zurück.
  • **Kwargs ist ein Nur-Schlüsselwort-Argument, das die Operation auf alle beschriebenen Paare anwendet. Lesen Sie mehr darüber in SciPy’s ufunc Dokumentation.

In Bezug auf die Rendite ist die ndarray Rückkehr des Quotienten von floor_divide(x1, x2) gibt eine Skalarvariable zurück, wenn sowohl x1 als auch x2 Skalarvariablen sind.

Python bietet viele Möglichkeiten, große Datenmengen auf mathematisch komplexe Weise zu manipulieren. Siehe die offizielle NumPy- und SciPy-Dokumentation und Referenzmaterialien für weitere Informationen und Beispiele zur Funktionsweise dieser mathematischen Engine.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen