zur Randomisierung

In unserem täglichen Leben stoßen wir auf verschiedene Phänomene, die völlig zufällig sind. Das Wetter ist zufällig: Natürlich können wir das Wetter vorhersagen und vorhersagen, aber nur bis zu einem gewissen Grad. Auch der radioaktive Zerfall ist ein interessanter Zufallsprozess, dem es an Mustern und Vorhersagbarkeit mangelt. Im Gegensatz zu Computern, die deterministisch sind und so funktionieren, wie sie programmiert sind, erfordert die Natur keine Programmierung, Bedingungen oder Schleifen. Dinge passieren auf höchst zufällige und unvorhersehbare Weise, und das ist die Artwork von Unvorhersehbarkeit, die wir manchmal auch in unseren Computern und Anwendungen, wie zum Beispiel Spielen, benötigen.

Wir brauchen Zufälligkeit und Unvorhersehbarkeit in den Spielen, die wir spielen, damit uns die vorprogrammierten Szenarien und vorhersehbaren Herausforderungen nicht langweilig werden. Wir benötigen auch das Aspect des Zufalls, um reale Szenarien zu simulieren, Algorithmen zu testen oder Beispieldatensätze zu generieren.

Foto von Wolfgang Hasselmann An Unsplash

In Programmiersprachen bezieht sich Randomisierung auf die Einführung von Unvorhersehbarkeit und Variabilität in der Computerausgabe. Zufälligkeit wird in einem Programm durch Zufallszahlen erzeugt.

Es gibt verschiedene Methoden zur Generierung von Pseudozufallszahlen. Python verwendet in seinem Zufallsmodul den Mersenne Tornado für den Zufall. Obwohl der Mersenne Tornado häufig als Pseudozufallszahlengenerator (PRNG) verwendet wird, verfügt er über deterministische Eigenschaften, die ihn für bestimmte Aufgaben unsicher machen, bei denen Sicherheit oberste Priorität hat. Beim Programmieren ist die Generierung einer völlig zufälligen Zahl ziemlich schwierig, daher verwenden wir das Konzept der Generierung von Pseudozufallszahlen, obwohl diese reproduzierbar sind, wenn ein Startwert angegeben wird, wie wir weiter unten sehen können.

In diesem Artikel untersuchen wir das Konzept der Randomisierung, indem wir das Python-Zufallsmodul verwenden, um Zufälligkeit in den Ausgaben unseres Codes zu erzeugen.

Das Python-Zufallsmodul

Lassen Sie uns nun tief in das Zufallsmodul eintauchen. Erstens wissen wir, dass Zufälligkeiten in diesem Modul durch den Mersenne-Tornado unter Verwendung von Mersenne-Primzahlen erzeugt werden. Dieses in Python integrierte Modul ermöglicht es uns, auf verschiedene Weise Zufälligkeiten in unserem Code zu erzeugen, und bietet Flexibilität bei der Arbeit mit verschiedenen Datentypen. Lassen Sie uns seine Funktionen anhand von Beispielen verstehen. Über den folgenden Hyperlink können Sie auf die offizielle Dokumentation dieses Moduls zugreifen:

random — Generieren Sie Pseudozufallszahlen

Um das Zufallsmodul verwenden zu können, müssen wir es zuerst in unseren Code importieren:

import random

Zufälliger Float-Wert zwischen 0 und 1

Die erste Aufgabe, die wir lernen werden, besteht darin, einen Zufallswert zwischen 0 und 1 zu generieren, wobei 0 nicht inklusiv und 1 inklusiv ist. Dies kann mit dem erfolgen random() Funktion.

random_value = random.random()
print(random_value)

Der obige Code generiert einen zufälligen Gleitkommawert zwischen 0 und 1. Wenn Sie den obigen Code mehrmals ausführen, ist der Wert jedes Mal anders.

Zufälliger Gleitkommawert innerhalb eines angegebenen Bereichs

Wir können das nutzen uniform() Funktion des Zufallsmoduls, um eine Zufallszahl in einem bestimmten Bereich zu erzeugen.

random_value = random.uniform(1,10)
print(random_value)

Wenn Sie den obigen Code mehrmals ausführen, werden Zahlen innerhalb des in Klammern genannten Bereichs ausgegeben.

Zufälliger ganzzahliger Wert in einem bestimmten Bereich

Angenommen, wir möchten einen zufälligen Wert von einem Würfel, wie er in vielen Spielen benötigt wird, können wir diese Funktion mithilfe von in unseren Code einbinden randint() Funktion. Diese Funktion gibt eine zufällige Ganzzahl aus, im Gegensatz zu den oben genannten Funktionen, die einen Float-Wert ausgeben.

random_value = random.randint(1,6)
print(random_value)

Beachten Sie, dass beim Ausführen des obigen Codeteils die 1 und 6 in die generierten Zufallswerte einbezogen werden.

Foto von Aakash Dhage An Unsplash

Zufälliger Wert aus einer Werteliste

Als nächstes werden wir sehen, wie man aus einer Werteliste einen Zufallswert generiert. Wir können dies tun, indem wir zunächst eine Python-Liste von Elementen definieren und dann die Funktion verwenden selection() des Zufallswerts, um ein zufälliges Aspect aus dieser Liste auszugeben.

Zu diesem Zweck erstellen wir zunächst eine Liste und verwenden dann die Zufallsmodule selection() Funktion zum zufälligen Auswählen eines Components aus der genannten Liste. Angenommen, wir haben eine Liste unserer Katzen und müssen eine auswählen, der wir eine besondere Freude machen möchten. So geht das:

my_cats = ("Jerry", "Tom", "Figaro", "Bella", "Simba")
cat_chosen = random.selection(my_cats)
print(cat_chosen)

Beachten Sie, dass der obige Code zufällig ist, was bedeutet, dass es nicht notwendig ist, dass alle Katzen ausgewählt werden (obwohl dies sehr wahrscheinlich ist, da wir den Code ausführen). Additionally ja, das ist keine faire Methode, um auszuwählen, wem man das besondere Leckerli geben möchte!

Darüber hinaus können wir mit dem auch eine Liste zufälliger Auswahlmöglichkeiten erstellen selections() Funktion. Mit dieser Funktion können wir auch die Gewichtung jedes Components der Liste bestimmen, was bedeutet, dass wir die Wahrscheinlichkeit erhöhen können, dass jedes Aspect in der Liste zufällig ausgewählt wird:

mylist = ("apple", "banana", "cherry", "strawberry")
print(random.selections(mylist, weights = (2, 1, 1, 1,), ok = 8))
Ausgabe des obigen Codes (Bild vom Autor)

Im obigen Code haben wir mylist als Eingabesequenz für angegeben selection() Funktion sowie die Gewichtungen jedes Components in der Liste sowie die gewünschte Länge einer Ausgabeliste mit zufällig ausgewählten Elementen. Beachten Sie, wie oft die Frucht „Apfel“ aufgrund ihres erhöhten Gewichts vorkommt.

Eine Liste von Elementen zufällig mischen

Als nächstes lernen wir, die Elemente in einer Liste zufällig zu mischen. Wir können das nutzen shuffle() Funktion im Zufallsmodul zu diesem Zweck.

deck = record(vary(1,53))
print(deck)
random.shuffle(deck)
print(deck)
Gemischte Ausgabe (Bild vom Autor)
Foto von Nikhil. An Unsplash

Zufällige und eindeutige Stichprobe aus einer Liste

Angenommen, wir möchten für jeden der 4 Spieler 5 zufällige Karten erhalten. Wir können das nicht nutzen selection() Funktion, weil wir einzigartige Karten aus dem Stapel wollen, ohne dass sich Karten wiederholen. Wir werden das verwenden pattern() Funktion hierfür:

deck = record(vary(1,53))
playing cards = random.pattern(deck, 5)
print(playing cards)
Ausgabe des obigen Codes (Bild vom Autor)

Zufällige Ganzzahl aus einem bestimmten Bereich mit Schrittgröße

Der randrange() Mit der Funktion kann zufällig eine Zahl aus einem bestimmten Bereich ausgewählt werden, in dem die Begin- und Stoppwerte sowie die Schritte definiert sind.

random_number = random.randrange(0,10,2)
print(random_number)

Der obige Block erzeugt die Zahlen von 0 bis 8, da 10 nicht inklusive ist und wir 2 als Schrittgröße definiert haben.

Samenwert

Ein interessantes Characteristic des Zufallsmoduls in Python ist die Funktion seed(). Dieser Startwert wird als Ausgangspunkt für die Generierung von Zufallszahlen verwendet und ist ein wichtiges Merkmal zur Nachverfolgung von Reproduzierbarkeit und Mustern. Immer wenn wir den Zufallswert verwenden, um eine Zufallszahl zu generieren, generiert er diese tatsächlich aus einem zufälligen Startwert, aber wir können den Startwert auch selbst über definieren seed() Funktion.

random.seed(22)
random_number = random.randrange(0,10,2)
print(random_number)

Der obige Code generiert aufgrund eines definierten Startwerts „22“ immer die Zufallszahl „2“. Wenn wir den Startwert „55“ angeben, erhalten Sie immer wieder „0“.

Anwendungen des Zufallsmoduls

Obwohl das Zufallsmodul mehr Funktionen und viele weitere Implementierungen enthält, gehören die oben genannten Funktionen zu den am häufigsten verwendeten. Das Zufallsmodul von Python kann auf verschiedene Arten verwendet werden, vor allem in Spielen und Simulationen in der realen Welt. Wir können das Zufallsmodul in Spielen verwenden, bei denen wie oben beschrieben gewürfelt wird, in einem Münzwurfspiel und sogar als Zufallspasswortgenerator. Wir können das Stein-Papier-Schere-Spiel auch mit dem Zufallsmodul mit ein paar Bedingungen und Schleifen simulieren!

Foto von Erik Mclean An Unsplash

Von admin

Schreibe einen Kommentar

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