Noten-Optimierung

Wer nach wie vor zu der aussterbenen Spezies der werdenen Diplom-Ingenieure angehört, kommt früher oder später in die Verlegenheit, die Prüfungen des Schwerpunktfaches beim Prüfungsamt anzumelden. In meiner Prüfungsordnung sind das 30 Semesterwochenstunden, die in drei bis fünf Blockprüfungen angeordnet werden können. Wie man die Prüfungen zu Blöcken kombiniert ist relativ frei. Man kann also nach Noten optimieren, denn innerhalb der Blockprüfungen wird auf die Notenstufen 1.0, 1.3, 2.7 etc. gerundet.
Was würde ich für ein Ingenieur werden, wenn ich alle Kombinationen ausprobieren würde, statt dafür ein Programm zu schreiben. Am schnellsten und einfachsten geht mir das in PHP von der Hand. Den Algorithmus habe ich vorher von einem Arbeitskollegen mehr oder weniger übernommen. Allerdings musste ich die Rekursion ersetzen, denn die ist im PHP-Ressourcenmanagement extrem speicherhungrig. Verwendet man While-Schleifen mit Steuervariablen ist der Speicher kein Problem mehr und das Programm probiert alle Kombinationen von 9 unterschiedliche Noten in 5 Blöcken binnen 7 Minuten durch. Damit der Server das Script nicht nach 60 Sekunden abwürgt, sollte man in der php.ini (XAMPP)

max_execution_time = 3000
max_input_time = -1

setzen. Das Script ist nicht unbedingt super dokumentiert, aber wer ein bißchen Verständnis mitbringt, sollte leicht dahinter kommen. Das Ergebnis kann sich sehen lassen: Die Note reduziert sich von 2,35 auf 2,19.

Schreibe einen Kommentar