Coding for KidsCoding for Kids
Kreative LevelHerausforderungenLehrerhandbuch
Für Funktionen abstimmen
Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe

Mathematikmodule
Zufallsmodul

Ziel

Führe Simulationen und Tests durch, um dich auf eventuelle Fehler und Rückschläge beim Bau des Farmlands vorzubereiten, indem du das random Modul verwendest.

Hinter dem Anbau befindet sich ein Büro, das einige Verwaltungsaufgaben übernimmt, insbesondere Papierkram in Bezug auf Versand, Wohnraum und Logistik für den Bau. Es wäre eine gute Idee, einige Szenarien mit den verfügbaren Daten durchzuspielen, um Rückschläge und Ausfälle von Geräten zu berechnen. Um dabei zu helfen, steht uns das random Modul zur Verfügung, das durch import random aktiviert wird.

Das Modul wird verwendet, um zufällige Ausgaben in unterschiedlichen Ausmaßen zu generieren, sodass du Simulationen durchführen oder zufällige Elemente zu deinen Berechnungen/Übungen hinzufügen kannst. Für unsere Zwecke werden wir die folgenden Funktionen nutzen:

  • random.seed(): Setzt den Startwert für die Zufallszahlengenerierung, nimmt ein Argument, nämlich die Startwertnummer, die du verwenden möchtest. Das bedeutet, dass jede Zufallsfunktion, die mit einem bestimmten Startwert verwendet wird, dieselben Ergebnisse liefert. Dies wird genutzt, um Kontrolle über die Zufallszahlengenerierung zu erlangen und bestimmte Ergebnisse reproduzieren zu können.
  • random.random(): Gibt eine zufällige Fließkommazahl zwischen 0 und 1 zurück.
  • random.randint(): Nimmt zwei(2) Argumente, generiert eine Zahl zwischen diesen beiden Argumenten, wobei beide Zahlen eingeschlossen sind. Das Ergebnis wird als ganze Zahl (Integer) zurückgegeben.
  • random.uniform(): Funktioniert wie die vorherige Funktion, gibt jedoch stattdessen eine zufällige Fließkommazahl zurück.
  • random.triangular(): Ähnlich wie die vorherige Funktion, verfügt jedoch über ein zusätzliches Argument namens mode als Modifikator. Der mode muss eine Zahl zwischen den beiden Zahlen des Zufallsbereichs sein. Die generierte Zufallszahl liegt statistisch gesehen näher am mode als eine rein zufällige Zahl zwischen den ersten beiden Argumenten.
  • random.choice(): Nimmt eine Liste als Argument und wählt zufällig ein Element aus der Liste aus.
  • random.choices(): Generiert eine zufällige Liste, die aus einer anderen Liste entnommen wird. Es nimmt drei(3) Argumente: eine Liste, aus der du entnehmen möchtest, eine weitere Liste, in der du das Gewicht der einzelnen Elemente angibst, und schließlich eine Variable namens k, der du einen Wert zuweist, der die Anzahl der Entnahmen aus der Liste angibt. Die Anzahl der Entnahmen kann größer sein als die Länge der Liste, da basierend auf den zugewiesenen Gewichten Duplikate generiert werden.
  • random.shuffle(): Nimmt eine Liste als Argument und mischt sie zufällig.
  • random.sample(): Nimmt zwei Argumente, eine Liste, aus der entnommen werden soll, und die Anzahl der gewünschten Entnahmen. Eine vereinfachte Version von random.choices().

Um zu beginnen, geh zum hellen X-Punkt und wende dich dem Schreibtisch zu. Benutze die Funktion read(), um das Memo zu lesen und die zur Durchführung einer Simulation mit etwas zufälliger Varianz benötigten Datenpunkte zu identifizieren. Wir werden eine Simulation eines Geräteausfalls durchführen; das Memo teilt dir mit, welchen seed du für die Zufallsgenerierung verwenden sollst, sowie die Liste, aus der entnommen wird. Verwende die Funktion random.seed() und setze den im Memo angegebenen Wert ein.

Geh zum dunklen X-Punkt über den blauen Teppich und wende dich dem Schreibtisch zu. Wir haben eine Listen-Konstante namens sectors, die die im vorherigen Memo dargestellten Bereiche des Farmlands enthält. Erstelle eine Variable namens selection, um den Wert von random.choice() zu speichern, und benutze die Listen-Konstante sectors, um ein Element aus der Liste auszuwählen, so: selection = random.choice(sectors). Erstelle eine weitere Variable namens delay und speichere den Wert von random.random() ab, um Fehlmargen, die durch Verzögerungen verursacht werden, zu simulieren.

Erstelle noch eine Variable namens defect und speichere den Wert von random.randint() ab, um einen Prozentsatz eines potenziellen Geräteausfalls zu generieren. Gib als Argumente 0 und 15 ein, um einen Prozentsatz zwischen diesen beiden Zahlen zu erzeugen. Sobald die Variablen selection, delay und defect eingerichtet sind, benutze die vorgefertigte Funktion write() mit diesen drei Variablen in dieser Reihenfolge, um Datenpunkte aufzuzeichnen, die zur Überprüfung potenzieller Probleme beim Bau genutzt werden können.

Geh zum goldenen X-Punkt und benutze die Funktion read(), um mit den Projektionen fortzufahren. Die Daten im Memo enthalten Materialien, Mengen und Probenahmedaten. Wir werden eine umfangreichere Simulation durchführen, bei der wir die Daten im Memo verwenden, einschließlich einer Listen-Konstante namens materials, die die im Memo aufgeführten Materialtypen speichert.

Geh zum dunklen X-Punkt über den roten Teppich und wende dich dem Schreibtisch zu. Erstelle eine Liste namens weights und speichere die vier(4) Zahlenwerte, die im Memo in der Reihenfolge der dargestellten Materialien angegeben sind. Zum Beispiel: weights = [400, 600 , -insert value-, -insert value-]

Erstelle eine Variable namens simulation und speichere den Wert von random.choices() ab. Füge die Listen-Konstante materials, die zuvor erstellte Liste weights und eine Liste namens k hinzu, die die im Memo angegebenen Entnahmeeinheiten beinhaltet, so: simulation = random.choices(materials, weights , k = insert sampling units ). Verwende die Variable simulation zusammen mit der vorgefertigten Funktion write(), um die Daten aufzuzeichnen.

Geh zum dunklen X-Punkt über den grünen Teppich und wende dich dem Schreibtisch zu. Benutze die Funktion random.shuffle() mit der erstellten Liste simulation, um diese zu mischen, so: random.shuffle(simulation). Dies wird die Liste mischen; es ist nicht nötig, den Wert zu speichern, da die Liste direkt modifiziert wird. Erstelle eine Liste namens sample und speichere den Wert von random.sample() ab. Übergebe der Funktion als erstes Argument die simulation-Liste und als zweites Argument die Zahl 3, um drei zufällige Elemente als Probe zu entnehmen, so: sample = random.sample(simulation, k=3). Verwende simulation und sample zusammen mit der vorgefertigten Funktion write(), um die neuen Proben aufzuzeichnen.

Schließlich geh zum dunklen X-Punkt über den violetten Teppich und wende dich dem Schreibtisch zu. Erstelle eine Variable namens defect und speichere das Ergebnis von random.uniform() ab, füge als Argumente 3 und 10 hinzu. Diese Werte sind die Entnahmewerte für die ursprüngliche Simulation und die daraus entnommene Probe, mit denen wir potenzielle Fehlermargen bei den Geräteausfällen der Probe berechnen.

Erstelle eine Variable namens losses und speichere den Wert von random.triangular() ab, füge die Werte 200, 600 und 400 hinzu. Dies sind die im vorherigen Memo aufgeführten Materialzahlen, speziell der niedrigste, höchste und der der Mitte am nächsten liegende Wert. Dadurch erhalten wir einen dreiecksförmigen Zufallswert basierend auf der Anzahl der in der Simulation verwendeten Materialien. Verwende die Werte defect und losses zusammen mit der vorgefertigten Funktion write(), um Ergebnisse zu erhalten und das Level abzuschließen.

Codebuch