Erstellen Sie ein Programm, das einen Hallo-Welt-String ("Hallo-Welt", "Hallo-Welt" usw.) und Quellcode ausgibt. Die Ausgabe wird auf stdout oder ein gleichwertiges Format geschrieben. Hallo Weltzeichenfolge ist in den Quellcode eingebettet.
Beispielsweise könnte die Ausgabe für sein
(some source code here)hello world(some source code here)
Wenn die Ausgabe erneut kompiliert oder interpretiert wird, sollte sie eine ähnliche Ausgabe erzeugen, aber die Hello World-Zeichenfolge muss eine andere Interpunktion oder Großschreibung haben. Im vorherigen Beispiel könnte beispielsweise die folgende Ausgabe erstellt werden
(some source code here)hello, wORld(some source code here)
Jedes "(hier etwas Quellcode)" in diesen Beispielen kann sich nach jeder Ausführung ändern oder es kann dasselbe sein.
Ihre Ausgabe muss genau einmal eine gültige Hallo-Welt-Zeichenfolge enthalten. Es kann eine beliebige Anzahl ungültiger Hallo-Welt-Zeichenfolgen enthalten. Der Quellcode kann eine beliebige Anzahl von Kommentaren enthalten, und der Hallo-Welt-String kann in Kommentare eingebettet sein. Das erste Programm kann entweder null oder eine gültige Hallo-Welt-Zeichenfolge haben, aber nicht mehr.
Folgende Interpunktion ist gültig:
hello, world
hello world
helloworld
Jede Großschreibung ist akzeptabel. Dies sind beispielsweise gültige Hallo-Welt-Zeichenfolgen:
Hello, world
hellO WORld
HELLoworlD
Diese Zeichenfolgen sind ungültig:
Hello world
Hello(newline)world
Hello,world
Hello, Steve
Ihr Programm schlägt fehl, sobald eine der folgenden Bedingungen erfüllt ist:
- Es gibt einen Hallo-Welt-String aus, der während einer früheren Ausführung ausgegeben wurde.
- Ausgabe ist nicht mehr gültiger Quellcode in derselben Sprache oder
- Die Ausgabe enthält nicht genau einen gültigen Hallo-Welt-String.
Ihr Programm ist für diesen Wettbewerb nur gültig, wenn mindestens zwei erste Ausführungen erfolgreich sind. Dies bedeutet, dass die dritte Ausgabe ungültig sein darf. Die Ausgabe Ihres Programms kann nicht zufällig sein. Die erste Ausführung sollte immer die gleiche zweite Ausgabe erzeugen, die zweite Ausführung sollte immer die gleiche dritte Ausgabe erzeugen usw.
Die Bewertung wird als Anzahl von Bytes im Quellcode des ursprünglichen Programms berechnet. Die niedrigste Punktzahl gewinnt.
Es gelten folgende Boni (bis zu -60%):
- -5% * (N - 2), wobei N der Index der Ausführung ist, nach dem Ihr Programm eine ungültige Ausgabe erzeugt. Dieser Bonus ist auf -50% begrenzt. Wenn Ihr Programm 12 Mal oder mehr erfolgreich ist, erhalten Sie den maximalen Bonus.
- -10%, wenn Ihre Ausgaben (einschließlich des ersten Quellcodes) alle drei gültigen Interpunktionsalternativen enthalten.
Ihre Einreichung sollte den ersten Quellcode und die Ausgaben der erfolgreichen Ausführungen enthalten. Wenn Ihr Programm mehr als 12 Mal erfolgreich ist, fügen Sie die Ausgabe für 12 Ausführungen hinzu.
Beispiel
Nächste Zeile ist der erste Quellcode. Wenn wir es ausführen, ist es die erste Ausführung.
hello world(some source code here)
In der nächsten Zeile wird der erste Quellcode ausgegeben. Es ist die erste Ausgabe.
hello, world(some source code here)
Nächste Zeile ist die Ausgabe der zweiten Ausführung. Es ist die zweite Ausgabe.
helloworld(some source code here)
Als wir die erste Ausgabe ausführten, wurde dieses Programm für den Bonus von -10% qualifiziert. Das heißt, wir haben zwei Ausgaben und einen Originalcode, die alle unterschiedliche Interpunktion haben. Da die zweite Ausgabe gültig war, ist dieses Programm für diesen Wettbewerb berechtigt.
Nächste Zeile ist die Ausgabe der dritten Ausführung. Es ist die dritte Ausgabe.
Helloworld(some source code here)
Nächste Zeile ist die Ausgabe der vierten Ausführung. Es ist die vierte Ausgabe.
hellworld(some source code here)
Diese Ausgabe war ungültig. Index der letzten gültigen Ausführung war 4. Für dieses Programm werden -5% * (4 - 2) Bonus und -10% Bonus auf die Zeichensetzung gewährt. Das sind insgesamt -20%. Die Länge des ersten Quellcodes ("Hallo Welt (etwas Quellcode hier)") betrug 34 Bytes, das Endergebnis ist also 27,2.
hello world
?