Matthias Reitinger
ɐɯıǝɹ
Quiz #7
Johns Hefe
Regeln
Die Regeln und der Ablauf der Quizrunde können in der entsprechenden Ankündigung eingesehen werden. Bitte lest sie euch aufmerksam durch, da sie alle wichtigen Informationen enthält. Lösungsansätze können und dürfen auch schon vorab untereinander ausgetauscht und diskutiert werden, allerdings nicht öffentlich im Forum. Verwendet stattdessen bitte private Nachrichten oder schaut im Chat vorbei.
Abgabe
Die Abgabe erfolgt wie immer im Abgabeforum. Abgabefrist ist Sonntag, der 7. Dezember 2008 um ca. 20 Uhr.
Umfrage
Sofern ihr generelles Interesse an der Teilnahme an dieser Quiz-Runde habt, nehmt bitte an der Umfrage in diesem Thema teil. Nur so kann sich die Qualität des Quiz' in Zukunft verbessern.
Das Problem
"Weihnachtszeit ist Plätzchenzeit!", dachte sich John, der Molekularbiologe. Doch irgendwie wollten ihm seine Hefeteig-Plätzchen dieses Jahr einfach nicht gelingen. Einmal wurden sie zu groß, weil die Hefe zu sehr ging und das nächste Mal wurden sie wieder zu klein, weil die Hefe eben nicht ging. Das lag bestimmt an der schlechten Qualität der Hefe aus dem Supermarkt, mutmaßte John. Aber er wäre ja kein Molekularbiologe, wenn er sich nicht sofort dran gemacht hätte, in seinem Labor eine vollkommen neuartige Hefekultur zu züchten.
Dazu will John zunächst eine Computersimulation der Entwicklung seiner Hefezellen durchführen. Vereinfachend nimmt er dabei an, dass sich die Zellen in einem regulären, rechteckigen Gitter mit m Zeilen und n Spalten aufhalten. In jedem Gitterpunkt kann sich entweder keine oder eine Hefezelle befinden. Jeder Gitterpunkt, der nicht auf den Rändern liegt, besitzt 8 benachbarte Gitterpunkte (oben, unten, links, rechts und die vier Diagonalrichtungen). Gitterpunkte am Rand besitzen nur 5, an den Ecken nur 3 benachbarte Punkte. John möchte der Simulation eine Anfangskonfiguration vorgeben können, welche neben der Gittergröße (Anzahl Zeilen und Spalten) auch die Positionen der anfänglich existierenden Hefezellen enthält. Aus diesen Informationen soll die Simulation anhand folgender Regeln eine neue Konfiguration berechnen:
(Für eine ausführlichere Erklärung des Prinzips sei auf den Wiki-Artikel zu Conways Spiel des Lebens verwiesen, welches genau dieser Simulation entspricht).
Ihr habt sicher schon erraten, dass ihr diese Simulation nun in Quellcode gießen sollt. Als Beispielformat für die Eingabe könnt ihr folgenes Schema verwenden:
Beispiel
Als Ausgabe wird die Darstellung des Gitters wie in der Eingabe nach Berechnung der k-ten Konfiguration erwartet.
Erweiterung
Für den Simulationsschritt sind auch abweichende Regeln möglich. Gebt dem Benutzer die Möglichkeit, die zu verwendenden Regeln in der Kurzschreibweise anzugeben. Außerdem könnt ihr die Textausgabe durch Erzeugung von Bildern ersetzen. Wem das immer noch nicht reicht, der denke sich bitte selbst beliebig viele zusätzliche Erweiterungen aus.
Beispiele
Eingabe:
Ausgabe:
Weitere Beispiele folgen...
Vielen Dank an RedWing für die Einsendung dieser Aufgabe!
Johns Hefe
Regeln
Die Regeln und der Ablauf der Quizrunde können in der entsprechenden Ankündigung eingesehen werden. Bitte lest sie euch aufmerksam durch, da sie alle wichtigen Informationen enthält. Lösungsansätze können und dürfen auch schon vorab untereinander ausgetauscht und diskutiert werden, allerdings nicht öffentlich im Forum. Verwendet stattdessen bitte private Nachrichten oder schaut im Chat vorbei.
Abgabe
Die Abgabe erfolgt wie immer im Abgabeforum. Abgabefrist ist Sonntag, der 7. Dezember 2008 um ca. 20 Uhr.
Umfrage
Sofern ihr generelles Interesse an der Teilnahme an dieser Quiz-Runde habt, nehmt bitte an der Umfrage in diesem Thema teil. Nur so kann sich die Qualität des Quiz' in Zukunft verbessern.
Das Problem
"Weihnachtszeit ist Plätzchenzeit!", dachte sich John, der Molekularbiologe. Doch irgendwie wollten ihm seine Hefeteig-Plätzchen dieses Jahr einfach nicht gelingen. Einmal wurden sie zu groß, weil die Hefe zu sehr ging und das nächste Mal wurden sie wieder zu klein, weil die Hefe eben nicht ging. Das lag bestimmt an der schlechten Qualität der Hefe aus dem Supermarkt, mutmaßte John. Aber er wäre ja kein Molekularbiologe, wenn er sich nicht sofort dran gemacht hätte, in seinem Labor eine vollkommen neuartige Hefekultur zu züchten.
Dazu will John zunächst eine Computersimulation der Entwicklung seiner Hefezellen durchführen. Vereinfachend nimmt er dabei an, dass sich die Zellen in einem regulären, rechteckigen Gitter mit m Zeilen und n Spalten aufhalten. In jedem Gitterpunkt kann sich entweder keine oder eine Hefezelle befinden. Jeder Gitterpunkt, der nicht auf den Rändern liegt, besitzt 8 benachbarte Gitterpunkte (oben, unten, links, rechts und die vier Diagonalrichtungen). Gitterpunkte am Rand besitzen nur 5, an den Ecken nur 3 benachbarte Punkte. John möchte der Simulation eine Anfangskonfiguration vorgeben können, welche neben der Gittergröße (Anzahl Zeilen und Spalten) auch die Positionen der anfänglich existierenden Hefezellen enthält. Aus diesen Informationen soll die Simulation anhand folgender Regeln eine neue Konfiguration berechnen:
- In einem leeren Gitterpunkt, der zu drei Hefezellen benachbart ist, entsteht eine neue Hefezelle.
- Eine Hefezelle, die nur eine oder überhaupt keine Nachbarzelle besitzt, stirbt an Einsamkeit.
- Eine Hefezelle mit zwei oder drei Nachbarn überlebt.
- Eine Hefezelle mit mehr als drei Nachbarn stirbt an Überbevölkerung.
(Für eine ausführlichere Erklärung des Prinzips sei auf den Wiki-Artikel zu Conways Spiel des Lebens verwiesen, welches genau dieser Simulation entspricht).
Ihr habt sicher schon erraten, dass ihr diese Simulation nun in Quellcode gießen sollt. Als Beispielformat für die Eingabe könnt ihr folgenes Schema verwenden:
- Zeile 1: Anzahl der Zeilen m
- Zeile 2: Anzahl der Spalten n
- Zeile 3: Anzahl zu berechnender Konfigurationen k
- Zeilen 4 bis 4+m-1: Jeweils n Zeichen: + steht für einen leeren Gitterpunkt, o für eine Hefezelle.
Beispiel
Code:
6
7
4
+++++++
++o++++
+++o+++
+ooo+++
+++++++
+++++++
Als Ausgabe wird die Darstellung des Gitters wie in der Eingabe nach Berechnung der k-ten Konfiguration erwartet.
Erweiterung
Für den Simulationsschritt sind auch abweichende Regeln möglich. Gebt dem Benutzer die Möglichkeit, die zu verwendenden Regeln in der Kurzschreibweise anzugeben. Außerdem könnt ihr die Textausgabe durch Erzeugung von Bildern ersetzen. Wem das immer noch nicht reicht, der denke sich bitte selbst beliebig viele zusätzliche Erweiterungen aus.
Beispiele
Eingabe:
Code:
6
7
4
+++++++
++o++++
+++o+++
+ooo+++
+++++++
+++++++
Code:
+++++++
+++++++
+++o+++
++++o++
++ooo++
+++++++
Weitere Beispiele folgen...
Vielen Dank an RedWing für die Einsendung dieser Aufgabe!
Zuletzt bearbeitet: