Hallo,
wie wäre es, wenn wir hier in unregelmäßigen Abständen kleine Programmier-Contests abhalten? Die Aufgaben wären eher allgemeiner Natur, also nicht spielespezifisch, relativ einfach und jeweils innerhalb sehr kurzer Zeit lösbar (< 1 Stunde). Die Lösung besteht darin, eine Funktion in C++ mit vorgegebener Signatur zu implementieren.
Die Funktion muss auf jeden Fall immer das richtige Ergebnis liefern, sonst ist sie disqualifiziert. Korrektheit ist also absolutes K.O.-Kriterium! Zu jeder Aufgabe gibt es eine Referenzlösung und ein Programmgerüst, das die Lösung mit Testdaten füttert, die benötigte Zeit misst und das Ergebnis mit dem der Referenzlösung vergleicht.
Außerdem muss der Code sich mit MSVC und GCC kompilieren lassen. Nur Standard-Libraries sind erlaubt.
Davon abgesehen wird, je nach Aufgabe,
entweder die Geschwindigkeit oder die Größe bewertet:
Geschwindigkeit:
Alle eingereichten Lösungen werden auf 2 Rechnern (AMD, Intel) und mit 2 Compilern (MSVC, GCC) mit vorher nicht bekannten Daten getestet. Die Laufzeiten aller vier Konfigurationen (Rechner, Compiler) werden gemittelt. Der Schnellste gewinnt!
Größe:
Gezählt wird hier die Anzahl der Token, die benötigt wurden. Die kürzeste Lösung gewinnt. Folgender Code-Schnipsel besteht zum Beispiel aus 24 Token:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
unsigned dummeAddition ( unsigned a , unsigned b )
{
while ( b ) ++ a , -- b ;
return a ;
}
|
Zu gewinnen gibt es natürlich nichts. Aber Ihr werdet schon sehen, wie viel Spaß es machen kann, aus einem kleinen Stück Code das Letzte an Geschwindigkeit herauszuholen, was möglich ist.
Also, wer hätte Lust?