Foren » 38. Bundeswettbewerb Informatik

Fragen zur 1. Runde – Aufgabe 3: Telepaartie

    • 113 Beiträge
    30. August 2019 13:05:11 CEST

    Hier könnt ihr Fragen zur Aufgabe 3 (Telepaartie) der 1. Runde stellen.

    • 14 Beiträge
    22. September 2019 19:37:09 CEST

    Sollen das erste Programm und das zweite, erweiterte Programm als zwei verschiedene Programme eingereicht werden, oder kann auch ein Programm verwendet werden, wobei z.B. durch Benutzereingabe entschieden wird, ob die LLL einer Biberverteilung (erstes Programm) oder L(n) für ein bestimmtes n (zweites Programm) berechnet wird?

    Muss das zweite Programm eine Erweiterung des ersten Programms darstellen, oder kann auch ein neuer Ansatz verwendet werden (z.B. wegen eventuell günstigerer Laufzeit)?

    • 14 Beiträge
    22. September 2019 19:42:02 CEST

    Was meint der Hinweis, dass die Ausgabe des Programms möglichst Zwischenergebnisse der Berechnung enthalten soll?

    • 113 Beiträge
    22. September 2019 20:42:26 CEST

    Ja, es sind zwei verschiedene Programme gemeint.

    Der Programmcode des zweiten Programms muss keine tatsächliche Erweiterung des ersten Programms sein.

    Die Ausgabe von Zwischenergebnissen ist bei vielen Aufgaben hilfreich, nicht nur bei dieser Aufgabe, so dass bei der Bewertung der Einsendung das Zustandekommen des Endergebnisses nachvollzogen werden kann. 

    • 4 Beiträge
    3. Oktober 2019 22:24:33 CEST

    Wird im zweitem Programm immernoch davon ausgegangen , dass man die kleinste LLL sucht?


    Dieser Beitrag wurde am 3. Oktober 2019 22:24:44 CEST von julia barbosa bardt bearbeitet
  • 6. Oktober 2019 00:11:16 CEST

    "Erweitere das Programm so, dass es eine Zahl n einlesen und die Werte L(1), ..., L(n) ausgeben kann."

    Bedeutet das, dass bei einer Eingabe von n=3 nicht nur L(5), sondern auch L(1), L(2), L(3) und L(5) ausgegeben werden sollen?

     

    @julia: So wie ich das verstanden habe, wird im zweiten Teil der Aufgabe nach der größten LLL gesucht. Die LLL ist trotzdem noch als Mindestanzahl von Telepaartien definiert, aber es geht darum, wie groß die LLL im ungünstigsten Fall bzw. der ungünstigsten Verteilung der n Biber auf die drei Behälter ist.

    • 391 Beiträge
    9. Oktober 2019 10:05:29 CEST

    Konrad N. said:

    "Erweitere das Programm so, dass es eine Zahl n einlesen und die Werte L(1), ..., L(n) ausgeben kann."

    Bedeutet das, dass bei einer Eingabe von n=3 nicht nur L(5), sondern auch L(1), L(2), L(3) und L(5) ausgegeben werden sollen?

     Bei einer Eingabe von n=3 sollen die Werte L(1), L(2) und L(3) ausgegeben werden. Bei einer Eingabe von n=5 sollen die Werte L(1), L(2), L(3), L(4) und L(5) ausgegeben werden.

    @julia: So wie ich das verstanden habe, wird im zweiten Teil der Aufgabe nach der größten LLL gesucht. Die LLL ist trotzdem noch als Mindestanzahl von Telepaartien definiert, aber es geht darum, wie groß die LLL im ungünstigsten Fall bzw. der ungünstigsten Verteilung der n Biber auf die drei Behälter ist.

     Genau. Zu unterscheiden sind:

    • LLL: kleinste Anzahl von Telepaartien für eine bestimmte Biberverteilung
    • L(n): größte LLL aller möglichen Biberverteilungen mit n Bibern
    • 14 Beiträge
    10. Oktober 2019 11:40:02 CEST

    1. Kann man in der Dokumentation bei der Ausgabe zur Eingabe n=100 auch statt den Ausgaben mit L(1) bis L(10) "siehe oben" hinschreiben?

    2. Was ist mit einer Eingabe von n=0?

    • 14 Beiträge
    10. Oktober 2019 15:36:23 CEST

    Schließt die Vorgabe, dass "alle Ausgaben beider Programme" in der Dokumentation enthalten sein müssen, Eingabeaufforderungen u.ä. ein?

    • 391 Beiträge
    14. Oktober 2019 10:28:52 CEST
    Belgoras Mandelbiber said:

    1. Kann man in der Dokumentation bei der Ausgabe zur Eingabe n=100 auch statt den Ausgaben mit L(1) bis L(10) "siehe oben" hinschreiben?

    Die zehn Zahlen machen den Kohl nicht fett, oder?  Zeige am besten die unbearbeitete Ausgabe deines Programms.

    2. Was ist mit einer Eingabe von n=0?

    Oder n = -1? Für n < 1 gibt es keine sinnvolle Ausgabe.

    Viel Erfolg (euch allen hier!) in der 1. Runde!

    • 391 Beiträge
    14. Oktober 2019 10:32:30 CEST
    Belgoras Mandelbiber said:

    Schließt die Vorgabe, dass "alle Ausgaben beider Programme" in der Dokumentation enthalten sein müssen, Eingabeaufforderungen u.ä. ein?

    Ausgaben sind Ausgaben. Aber für eine in der Dokumentation enthaltene Ausgabe ist natürlich wichtig zu wissen, zu welcher Eingabe sie gehört.

    • 14 Beiträge
    14. Oktober 2019 21:20:20 CEST

    Ich hätte gedacht, für 0 wäre die einzige mögliche Biberverteilung 0, 0, 0. Die LLL dazu wäre 0, also wäre L(0)=0. Allerdings war die Aufgabe, alle Werte für L(x) von L(1) bis L(n) auszugeben.

    • 14 Beiträge
    22. Oktober 2019 08:13:44 CEST

    Kann man davon ausgehen, dass jede Biberverteilung eine LLL hat?

    • 92 Beiträge
    22. Oktober 2019 12:28:36 CEST
    Belgoras Mandelbiber said:

    Kann man davon ausgehen, dass jede Biberverteilung eine LLL hat?

    Die Aufgabenstellung sagt

    Mit wiederholten Telepaartien ist es immer möglich, einen der drei Behälter leer zu bekommen, […]

    Von daher, ja.

    • 14 Beiträge
    23. Oktober 2019 20:39:30 CEST

    Ok, danke, dass hatte ich überlesen

    • 3 Beiträge
    16. November 2019 11:10:44 CET

    Soll eigentlich beim zweiten Teil der Aufgabe, also der die Erweiterung um alle L für 10 und 100 auszugeben, es ebenfalls noch möglich seine selbst eine Zahl einzugeben oder reichen nur die beiden Ausgaben für 10 und 100? Das Programm soll ja eigentlich, laut Aufgabenstellung, eine Zahl einlesen können und die Zahlen 10 und 100 würde ich dagegen direkt im Programm implementieren.

    • 5 Beiträge
    16. November 2019 12:28:26 CET

    Darf man Threads verwenden, d.h., das erste Programm im zweiten Programm mehrmals als Thread starten?

     EDIT: Hat sich erledigt.


    Dieser Beitrag wurde am 16. November 2019 14:14:32 CET von Freidrich Steinkamp bearbeitet
    • 391 Beiträge
    16. November 2019 15:59:09 CET
    Lucy Altincik said:

    Soll eigentlich beim zweiten Teil der Aufgabe, also der die Erweiterung um alle L für 10 und 100 auszugeben, es ebenfalls noch möglich seine selbst eine Zahl einzugeben oder reichen nur die beiden Ausgaben für 10 und 100? Das Programm soll ja eigentlich, laut Aufgabenstellung, eine Zahl einlesen können und die Zahlen 10 und 100 würde ich dagegen direkt im Programm implementieren.

    Die Erweiterung soll eine Zahl einlesen können, da ist die Aufgabenstellung eindeutig. Und natürlich sollen auch die Zahlen 10 und 100 eingelesen werden können. Im letzten Satz der Aufgabe heißt es:

    Zeige die Ausgabe für n = 10 und n = 100.

    Die Doku sollte also zeigen, was das Programm für die Eingaben 10 bzw. 100 ausgibt. Also bitte nicht die 10 und 100 irgendwie fest einbauen.


    Dieser Beitrag wurde am 16. November 2019 15:59:57 CET von Wolfgang Pohl bearbeitet
    • 5 Beiträge
    17. November 2019 08:57:27 CET

    Wie lange darf das Programm laufen, um L(n) zu berechnen, bzw. gibt es eine Obergrenze?

    • 92 Beiträge
    18. November 2019 13:03:23 CET
    Freidrich Steinkamp said:

    Wie lange darf das Programm laufen, um L(n) zu berechnen, bzw. gibt es eine Obergrenze?

    Da die Laufzeit sicherlich von n abhängt. Lässt sich das pauschal nicht beantworten.

    Ein hilfreicher Richtwert ist meiner Meinung nach, dass Aufgaben in der ersten Runde auch für die schwierigsten Beispiele nicht länger als etwa eine Minute laufen sollten. Ansonsten gibt es wahrscheinlich ein effizienteres Verfahren, die Aufgabe zu lösen.

    Das ist aber nur ein ganz grober Richtwert, der auch insbesondere vom verwendeten Computer, der Programmiersprache und vielen anderen Faktoren abhängen kann.