- left
- right
- up
- down
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)?
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.
Wird im zweitem Programm immernoch davon ausgegangen , dass man die kleinste LLL sucht?
"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.
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:
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!
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.
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.
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.
Darf man Threads verwenden, d.h., das erste Programm im zweiten Programm mehrmals als Thread starten?
EDIT: Hat sich erledigt.
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.
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.