Ihre Aufgabe - wenn Sie sie akzeptieren - ist es, ein Programm zu schreiben, das hilft, meinen Vorschlag zu Meta zu verstehen, indem Sie den Gewinner eines Code-Golf-umgekehrten Wettbewerbs berechnen . Natürlich werden Antworten auf diese Frage wie vorgeschlagen behandelt, sodass Ihr Programm (falls korrekt) berechnen kann, ob Ihre Antwort zur akzeptierten Antwort wird.
Regeln
- Das Programm liest eine Datei mit mehreren Zeilen des folgenden Formats (siehe Beispiel unten): [Sprache] TAB [NumberOfCharacters] TAB [LinkToAnswer]
- Der Dateiname wird als Argument an Ihr Programm übergeben oder die Datei wird zur Standardeingabe Ihres Programms umgeleitet. Sie haben die Wahl, bitte geben Sie die Methode an, wenn Sie die Antwort geben
- Es wird erwartet, dass das Eingabeformat korrekt ist. Es ist keine Fehlerbehandlung erforderlich.
- Die Anzahl der Zeichen ist positiv. Ihr Programm muss Längen bis zu 65535 verarbeiten können. 64k sollten für jeden ausreichen :-)
- Das Programm gibt die Zeilen in der Standardausgabe aus, die der Idee des Meta-Vorschlags entsprechen
- der kürzeste Code einer bestimmten Programmiersprache gewinnt (Reduktionsphase)
- der längste Code unter allen Programmiersprachen gewinnt (Sortierphase)
- Im Falle eines Unentschieden werden alle Antworten mit der gleichen Länge gedruckt
- Die Reihenfolge der Ausgabe ist nicht wichtig
- Obwohl der längste Code gewinnt, ist dies kein Code-Bowling . Ihr Code muss für Ihre Programmiersprache so kurz wie möglich sein.
- Antworten auf seltene Programmiersprachen, die nicht versuchen, den Code zu verkürzen, verdienen eine Ablehnung, weil sie versuchen, die Absicht dieser Art von Frage zu umgehen. Wenn es nur eine Antwort für eine bestimmte Programmiersprache gibt, wird diese als Gewinnerkandidat gewertet, sodass Sie den Code in die Luft jagen können.
Beispiel-Eingabedatei (durch einzelne Tabulatoren getrennt, falls Probleme mit der Formatierung auftreten sollten):
GolfScript 34 http://short.url/answer/ags
GolfScript 42 http://short.url/answer/gsq
C# 210 http://short.url/answer/cs2
Java 208 http://short.url/answer/jav
C# 208 http://short.url/answer/poi
J 23 http://short.url/answer/jsh
Ruby 67 http://short.url/answer/rub
C# 208 http://short.url/answer/yac
GolfScript 210 http://short.url/answer/210
Erwartete Leistung (Reihenfolge ist nicht wichtig):
C# 208 http://short.url/answer/poi
C# 208 http://short.url/answer/yac
Java 208 http://short.url/answer/jav
Aktualisieren
Einige Programme basieren auf der Tatsache, dass es nur ein einziges Maximum gibt (wie das C # 210-Zeichenprogramm). Aus der Realität abgeleitet kann jemand auch ein GolfScript-Programm mit 210 Zeichen schreiben. Die Ausgabe würde gleich bleiben. Ich habe so ein GolfScript zur Eingabe hinzugefügt.
Update 2
Wie vorgeschlagen, habe ich umgetaggt (auch noch Code-Golf) und die Frist ist der 06.03.2014 (was wie ein willkürliches Datum aussieht, aber ich komme dann von meiner Reise zurück nach Deutschland).
Endgültige Ergebnisse
Ich habe beschlossen, wie folgt abzustimmen:
- Antworten, bei denen die Anzahl der Zeichen nicht bestätigt werden kann, erhalten einen Kommentar zur Erläuterung der Anzahl.
- Antworten, die leicht reduziert werden können, erhalten einen Kommentar, einen Bearbeitungsvorschlag und gehen mit dem niedrigeren Zählwert in das Ergebnis ein. (Hoffentlich habe ich das schon mal gesehen).
- Antworten, die nicht kompiliert werden, erhalten eine negative Bewertung. (Eine ziemlich schwere Aufgabe, wie sich herausstellt).
- Antworten, die nicht golfen, erhalten eine negative Bewertung (wie bereits in den Regeln beschrieben).
- Antworten, die zu erwartenden Ergebnissen führen, erhalten eine positive Bewertung. Aufgrund einiger Antworten, die nicht wie erwartet funktionieren, verwende ich 4 verschiedene Eingabedateien und vergleiche sie mit dem erwarteten Ergebnis.
Zum Schluss wird der Gewinner ermittelt, indem die Tabelle mit den qualifizierten Antworten als Eingabe für mein Referenzprogramm bereitgestellt wird (plus manuelle Überprüfung des Ergebnisses). Wenn meine eigene Antwort die beste wäre, würde ich sie von der Liste ausschließen. Bei mehreren Gewinnern müsste ich nur einen auswählen. Daher können einige Boni verdient werden:
- Antworten, die mehr Eingaben als erwartet akzeptieren (zB außerhalb der definierten Bereiche)
- Antworten, die eine clevere Idee haben, es kurz zu machen
Ich habe eine Momentaufnahme der Antworten am 6. März 2014, 19:45 UTC + 1, gemacht. Die Analyse ist noch nicht abgeschlossen. Alle Antworten zu überprüfen ist schwieriger als erwartet ...