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
© Copyright 2024 ExpyDoc