Sommersemester 2016 Übungsaufgaben zur Vorlesung Algorithmische Grundlagen http://tinyurl.com/AlgorithmischeGrundlagen Friedrich-Schiller-Universität Jena Institut für Informatik Stephan Fischer Martin Mundhenk Aufgaben zum 02.05.2016 Aufgabe 12: Populationswachstum - Fortsetzung 5 Punkte Verbessern Sie Ihr Programm aus Aufgabe 5, sodass es als Eingabe nun eine Anzahl s von Punkten verlangt und dann das Populationswachstum im Intervall [1, 4] grafisch 3 ,1 + ausgibt. Lassen Sie dafür Simulationen laufen mit den Fertilitätsfaktoren 1, 1 + s−1 3 3 2 · s−1 , . . . , 1 + (s − 1) · s−1 = 4. Zeichnen Sie auch ein Koordinatensystem ein. Bonus: 3 Punkte 1 Zeichnen Sie ebenso die Funktion f (x) = 1 − x in die Grafik ein. Aufgabe 13: Terrainanalyse 5 Punkte Schreiben Sie ein Programm, das von der Standardeingabe zuerst eine ganze Zahl n einliest und dann jeweils zeilenweise zwei ganze Zahlen und eine reelle Zahl. Die ganzen Zahlen entsprechen Koordinaten in einem zweidimensionalen Punktegitter der Größe n mal n. Die reelle Zahl entspricht der Höhe des Gitterpunktes. Ihr Programm soll dann die Anzahl der Gipfel in dem Gitter zählen und ausgeben. Ein Gipfel dabei ist ein Gitterpunkt, dessen Höhe echt größer als die Höhe seiner vier (oder weniger) Nachbarpunkte ist. Sie können davon ausgehen, dass n > 0 ist und alle Punkte des Gitters eingegeben werden. Testen Sie Ihr Programm, indem Sie die folgenden Dateien als Eingabe verwenden: 1. terrain1.txt Lösung: 1 Gipfel 2. terrain2.txt Lösung: 2 Gipfel 3. terrain3.txt Lösung: 1997 Gipfel Aufgabe 14: Gleichverteilung auf dem Einheitskreis 5 Punkte Schreiben Sie ein Programm, das als Eingabe eine positive ganze Zahl n erwartet und n auf dem Einheitskreis gleichverteilte zufällige Punkte generiert. Schließlich soll es die Punkte grafisch ausgeben. Wenn die Punkte wirklich gleichverteilt sind, sollten bei großen n keine Häufungen zu sehen sein. Aufgabe 15: Spielstrategien im Kasino 5 Punkte Um verschiedene Spielstrategien in einem Kasino zu analysieren, betrachten wir das folgende Modell eines Kasinospiels. Der Spieler startet mit einem Kapital von s = 100 ¿ und strebt ein Zielkapital von z = 150 ¿ an. Er spielt solange, bis er entweder kein Geld mehr hat oder mehr als z hat. In jeder Runde des Spiels kann er einen beliebigen Betrag setzen, darf sich aber nicht verschulden. Gewinnt er eine Runde, erhält er das Doppelte seines Einsatzes. Anderenfalls erhält er nichts. Die Wahrscheinlichkeit, dass er gewinnt, sei p. Schreiben Sie ein Programm, das als Eingabe eine reelle Zahl p ∈ (0, 0.5) erwartet. Ihr Programm soll dann 1000 Spiele für die folgenden Strategien simulieren und die absoluten Häufigkeiten der Gewinne in einem Histogramm darstellen: 1. Der Spieler setzt einen konstanten Einsatz von 10 sein gesamtes Kapital. 2. Der Spieler setzt einen konstanten Einsatz von 30 sein gesamtes Kapital. ¿, falls möglich. Sonst setzt er ¿, falls möglich. Sonst setzt er 3. Der Spieler setzt die Hälfte seines aktuellen Kapitals. 4. Der Spieler setzt sein gesamtes aktuelles Kapital. 5. Der Spieler setzt z minus sein aktuelles Kapital (also so viel wie er zum Erreichen seines Ziels braucht), falls möglich. Sonst setzt er sein gesamtes Kapital. aus Sedgewick, Wayne, Dondero: Introduction to Programming in Python (Addison-Wesley 2015)
© Copyright 2024 ExpyDoc