Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:java:aoc:aoc2021:day6:start [06.12.2021 15:45] – [Aufgabenteil 2] sbel | faecher:informatik:oberstufe:java:aoc:aoc2021:day6:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Tag 6: Laternenfische, | ||
- | |||
- | ===== Aufgabenteil 1 ===== | ||
- | |||
- | Für den Teil 1 kann man es mit einer Modellierung wie der folgenden versuchen: | ||
- | |||
- | {{ : | ||
- | |||
- | Einige Tipps für diesen Ansatz: | ||
- | |||
- | * Die '' | ||
- | * Die '' | ||
- | |||
- | Damit kann man Teil 1 lösen, der Ansatz fällt einem aber in Teil 2 laufzeitmäßig auf die Füße, da die Zahl der '' | ||
- | |||
- | ++++ Codegerüst für diesen Ansatz | | ||
- | |||
- | Die '' | ||
- | |||
- | <code java> | ||
- | public int partOne(int daysToSimulate) { | ||
- | int numFish = 0; | ||
- | parseInputToFishList(); | ||
- | ArrayList< | ||
- | for(int day=0; | ||
- | int dayNum=day+1; | ||
- | System.out.print(" | ||
- | | ||
- | Iterator< | ||
- | while(fishIterator.hasNext()) { | ||
- | lanternFish f = fishIterator.next(); | ||
- | // Laesst den Fisch altern und fügt ein mögliches Kind | ||
- | // an die tempfishList an | ||
- | f.makeTimeStep(tempfishList); | ||
- | } | ||
- | | ||
- | fishList.clear(); | ||
- | fishList = (ArrayList< | ||
- | // | ||
- | numFish = fishList.size(); | ||
- | System.out.println(" | ||
- | } | ||
- | return numFish; | ||
- | } | ||
- | </ | ||
- | |||
- | ++++ | ||
- | |||
- | ===== Aufgabenteil 2 ===== | ||
- | |||
- | Wenn man die neuen Fische einzeln in die Liste der Fische einfügt, wir diese sehr schnell sehr lang. Bei genauerem nachdenken fällt auf, dass das auch gar nicht nötig ist, denn bei allen in einem Zeitschritt angefügten Fische gehen die inneren Uhren synchron - sie beginnen alle bei 8 und werden dann runtergezählt. Man kann das ganze also anstatt mit einzelnen Fischen mit Fischgruppen modellieren: | ||
- | |||
- | {{ : | ||
- | |||
- | |||
- | * Die '' | ||
- | * Die Zeitschritt Methode der '' | ||
- | * wenn man alle Gruppen in einem Zeitschritt durchläuft, | ||
- | * Außerdem wird man feststellen, | ||