Blatt 2 - Friedrich-Schiller

Friedrich-Schiller-Universität Jena
Institut für Informatik
Stephan Fischer
Martin Mundhenk
Sommersemester 2016
Übungsaufgaben zur Vorlesung
Algorithmische Grundlagen
http://tinyurl.com/AlgorithmischeGrundlagen
Aufgaben zum 18.04.2016
Aufgabe 4:
Eigenschaften der Gleichverteilung
5 Punkte
Schreiben Sie ein Programm, das als Eingabe eine positive ganze Zahl n erwartet. Es soll dann n gleichverteilte Zufallszahlen im Intervall [0, 1) generieren (verwenden Sie die Funktion random.random() aus
dem Paket random). Dabei soll es das Minimum, das Maximum und den Durchschnitt der Zufallszahlen
berechnen und ausgeben.
Aufgabe 5:
Populationswachstum
5 Punkte
Schreiben Sie ein Programm, das als Eingabe eine reelle Zahl r ≥ 1 erwartet und das Wachstum einer
Population von Lebewesen simuliert. Die Populationsgröße soll von 0 (ausgestorben) bis 1 (maximale
Population) reichen und bei einer relativ geringen Population (z.B. 0.01) starten. r ist der sogenannte
Fertilitätsfaktor. Von einem Zeitpunkt t, an dem die Populationsgröße p beträgt, zum Zeitpunkt t + 1
soll sich die Populationsgröße auf rp(1 − p) ändern. Lassen Sie Ihr Programm bis zu dem Zeitpunkt, an
dem sich die Population aufgelöst oder ihr Maximum erreicht hat, simulieren (maximal jedoch bis zum
Zeitpunkt 1000000). Schließlich soll das Programm die Größe der Population ausgeben. Experimentieren
Sie mit verschiedenen Fertilitätsfaktoren. Erkennen Sie irgendeine Gesetzmäßigkeit?
Aufgabe 6:
Schachbrettmuster
5 Punkte
Schreiben Sie ein Programm, das bei Eingabe einer positiven ganzen Zahl n ein 2n mal 2n großes Schachbrettmuster ausgibt. Weiße Flächen sollen durch Leerzeichen und schwarze Flächen durch Sternchen
dargestellt werden. Z.B.:
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
Sie können in Ihrem Programm eine in eine andere Schleifenanweisung eingebettete Schleifenanweisung
verwenden. Es ist aber auch möglich, dieses Problem mit nur einer einzigen Schleife zu lösen.
Aufgabe 7:
2D-Zufallslauf
5 Punkte
Schreiben Sie ein Programm, das als Eingabe eine positive ganze Zahl n erwartet. Es soll einen Läufer
in einem zweidimensionalen Punktegitter der Größe 2n mal 2n simulieren, der im Mittelpunkt startet
und jeden Schritt zufällig gleichverteilt nach Norden, Süden, Osten oder Westen macht, bis er den Rand
erreicht. Dann soll es die Anzahl der Schritte ausgeben, die der Läufer gemacht hat. Um eine ganze
Zufallszahl im Intervall [a, b) zu erzeugen, können Sie die Funktion random.randrange(a, b) aus dem
Paket random verwenden. Beispiel:
Ein 2D-Zufallslauf der Länge 13