faecher:informatik:oberstufe:java:aoc:aco2023:day6:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:java:aoc:aco2023:day6:start [06.12.2023 12:11] Frank Schiebelfaecher:informatik:oberstufe:java:aoc:aco2023:day6:start [06.12.2023 19:13] (aktuell) – [Aufgabe] Frank Schiebel
Zeile 1: Zeile 1:
 ~~NOTOC~~ ~~NOTOC~~
 +====== Tag 6: Wait For It ======
 +
 +===== Aufgabe =====
 +
 +  * {{ :faecher:informatik:oberstufe:java:aoc:aco2023:day6:aoc2023day6.png?linkonly|Aufgabe}}
 +  *  {{ :faecher:informatik:oberstufe:java:aoc:aco2023:day6:d6.zip |Inputdateien}}: 
 +    * Beispiel d6e.txt
 +    * Input d6i.txt. 
 +
 +
 +++++ Kontrollergebnisse |
 +  * Eingabedatei d6e.txt: 
 +    * Teil 1 - ''288''
 +    * Teil 2 - ''71503''  
 +  * Eingabedatei d6i.txt: 
 +    * Teil 1 - ''160816''
 +    * Teil 2 - ''46561107''
 +++++
 +
 +===== Hinweise =====
 +
  
 <tabs> <tabs>
Zeile 76: Zeile 97:
 ==== Variante 2: Mitternachtsformel ==== ==== Variante 2: Mitternachtsformel ====
  
-Wenn man unter der Dusche etwas nachdenkt, stellt mal fest, dass das eigentlich eine Matheaufgabe ist: Man kann berechnen, wie  weit man kommt, je nach dem wie lang man den Knopf drückt und wenn man weiß, welche Zeit insgesamt zur Verfügung steht.+Wenn man unter der Dusche etwas nachdenkt, stellt man fest, dass das eigentlich eine Matheaufgabe ist: Man kann berechnen, wie  weit man kommt, je nach dem wie lang man den Knopf drückt und wenn man weiß, welche Zeit insgesamt zur Verfügung steht.
  
 **Fragen:**   **Fragen:**  
Zeile 95: Zeile 116:
  
 Multipliziere deine Formel aus, was erhältst du dann? Multipliziere deine Formel aus, was erhältst du dann?
-++++ Tipp 1: |+++++ Tipp 2: |
   d_t(p) = (t-p)*p = -p² + tp   d_t(p) = (t-p)*p = -p² + tp
      
Zeile 105: Zeile 126:
 {{ :faecher:informatik:oberstufe:java:aoc:aco2023:day6:bsp2.png?600 |}} {{ :faecher:informatik:oberstufe:java:aoc:aco2023:day6:bsp2.png?600 |}}
  
 +Nun kann man die Aufgabe mit der Mitternachtsformel und den beiden Methoden ''Math.floor'' und ''Math.ceil'' direkt lösen, ganz ohne Schleifen und das klappt dann auch für beide Teile, wenn man aus der Aufgabe des Vortags noch mit long Variablen hantiert, sonst muss man den Typ für Teil 2 noch umstellen.
  
 +Aufpassen muss man noch bei Fällen wie dem dritten Beispiel, wenn die Mitternachtsformel direkt die Ränder des Bereichs liefert - die gehören nämlich nicht dazu, weil das Boot echt weiter als das bisherige Maximum fahren soll. Hier muss man den Fall, dass die MNF "aufgeht" noch extra abfangen.
  
 +[[https://codeberg.org/qg-info-unterricht/aoc-bluej-2023/src/branch/main/day6.java|BlueJ-Lösungsvorschlag zum "spicken" findet sich hier]]
  
 </pane> </pane>
 </tabs> </tabs>
  • faecher/informatik/oberstufe/java/aoc/aco2023/day6/start.1701864709.txt.gz
  • Zuletzt geändert: 06.12.2023 12:11
  • von Frank Schiebel