HomeTurtlegrafikGPanelRobotik WebTigerPython
 Python - Online
zufallszahlen
Deutsch   English   

8. ZUFALLSZAHLEN

 

 

DU LERNST HIER...

 

wie du Zufallszahlen erzeugen kannst. Da der Zufall im täglichen Leben eine ausserordentlich grosse Rolle spielt, kannst du mit Zufallszahlen solche Abläufe auf dem Computer nachbilden (simulieren). Wie bei einem Würfelwurf sind Zufallszahlen meist gleichverteilt, d.h. treten mit gleicher Häufigkeit (Wahrscheinlichkeit) auf.

 

 

MUSTERBEISPIELE

  Du zeichnest 40 Sterne und legst ihre Position im Turtlefenster mit Zufallszahlen fest. Dazu brauchst du die Funktion randint() aus dem Modul random, die du zuerst importieren musst.

Die Funktion randint(a, b) liefert bei jedem Aufruf eine ganzzahlige Zufallszahl im Bereich a, b. Beispielsweise erhältst du zufällige Würfelzahlen mit randint(1, 6).

Beispiel 1: 40 Sterne an zufälligen Positionen.
Das Turtlefenster besitzt ein Koordinatensystem mit dem Nullpunkt in der Mitte und x und y im Bereich ca. -300 bis 300. Für die die Position der Sterne wählst du für x- und y-Koordinaten zufällige Zahlen im Bereich -250... 250. Die Funktion star() zeichnet einen einzelnen Stern. 

 


Programm:    

from gturtle import *
from random import randint

def star():
    startPath()
    repeat 5:        
        forward(50)
        left(144)
    fillPath()    

makeTurtle()
setFillColor("blue")        
hideTurtle()

repeat 40: 
    star() 
    x = randint(-250, 250)
    y = randint(-250, 250)
    setPos(x, y)    
► In Zwischenablage kopieren
 

 

Beispiel 2: Zufällige Farben
Man kann auch die Farben zufällig wählen. Die rote, grüne und die blaue Farbkomponente einer Farbe können als Zufallszahlen im Bereich 0 bis 255 erzeugt werden.
r = randint(0, 255)
g = randInt(0, 255)
b = randInt(0, 255)
setFillColor(r, g, b) erzeugt eine zufällige Füllfarbe. Den blauen Hintergrund zeichnest du mit dem Befehl clear("darkblue").

 

 

Programm:    

from gturtle import *
from random import randint

def star():
    startPath()
    repeat 5:        
        forward(50)
        left(144)
    fillPath()    

makeTurtle()        
hideTurtle()
clear("darkblue")

repeat(50):
    star()     
    r = randint(0, 255)
    g = randint(0, 255)
    b = randint(0, 255)
    setFillColor(r, g, b) 
    x = randint (-300, 300)
    y = randint (-250, 250)
    setPos(x, y)    
► In Zwischenablage kopieren
 

 

Beispiel 3: Random Walk
Die Turtle startet an der Homeposition (0, 0) und bewegt sich wiederholt (z. B. 50-mal) um 30 Schritte in einer zufällig gewählten Richtung vorwärts. Um die Bewegungsrichtung festzulegen, verwendest du die Funktion setHeading(angle). angle ist eine Zufallszahl zwischen 0 und 360 ist.

 

Programm:    

from gturtle import *
from random import randint

makeTurtle()

repeat 50:
    angle = randint(0, 360)
    setHeading(angle)
    forward(30)
► In Zwischenablage kopieren

Noch einfacher geht es, wenn du den Befehl setRandomHeading() verwendest. Die turtl-Richtung wir jeweils zufällig gewählt.

Programm:   

from gturtle import *
makeTurtle()

repeat 50:
    setRandomHeading()
    forward(30) 
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

from random import randint importiert die Funktion randint() aus dem Modul random. randint(a, b) erzeugt eine ganzzahlige Zufallszahl zwischen a und b, wobei a die kleinste und b die grösste Zahl ist.
setRandomPos() setzt die Turtle an eine zufällig gewählte Position im aktuellen Turtlefenster. setRandom Heading() ändert die Richtung der Turtle zufällig.

 

 

ZUM SELBST LÖSEN

  1.
Zeichne 100 rote, 100 blaue und 100 gelbe Konfetti (dots) an zufällig gewählten Positionen.  


  2.

Zufällige n-ecke
In deinem Programm wird bei jedem Lauf eine zufällige ganze Zahl n zwischen 3 und 12 erzeugt. Die Turtle zeichnet danach ein entsprechendes regelmässiges n-eck und füllt es mit einer Farbe, die du selbst bestimmen kannst. Passe auch die Seitenlänge entsprechend an.

 

 
 
3.

Alles ist zufällig: Position, Seitenlänge und Farbe der Quadrate. Erstelle ähnliche Kunswerke. Überlege, wie die Bilder 2 und 3 entstanden sind.