Mit Ihrer Tastatur stimmt etwas nicht. Der ShiftSchlüssel hat einen eigenen Verstand. Jedes Mal, wenn Sie ein Zeichen eingeben, haben Sie keine Ahnung, ob es verschoben herauskommt oder nicht (obwohl es 50-50 ist). Außer den Standardzeichentasten ist nichts auf der Tastatur funktionsfähig. Es gibt keine Maus oder andere Eingabemöglichkeiten.
Irgendwie wissen Sie, dass die einzige Möglichkeit zur Fehlerbehebung darin besteht, ein Programm zu schreiben, das die Ausgabe Dear Computer, please stop giving me shift!
an stdout vornimmt. Glücklicherweise ist Ihre IDE geöffnet und Sie können ein Programm ausführen, aber während Sie es eingeben, wissen Sie natürlich nicht, welche Zeichen verschoben werden.
Mit welcher Tastendrucksequenz würden Sie ein Programm schreiben, das die bestmögliche Chance hat, beim ersten Versuch zu arbeiten?
Einzelheiten
Sie verwenden eine Standard-QWERTZ-Tastatur. Sie können also 50 Zeichentasten drücken.
Unverschobene Versionen (nur 47):
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Verschobene Versionen (nur 47):
~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
Die letzten 3 Tasten sind Enter, Tabund Space, die gleich verschoben und nicht verschoben sind.
Eine Folge von N dieses Zeichens hat 2 N - (Leerzeichen char count) Möglichkeiten , es ausgegeben haben könnte , wenn Sie sie mit Ihrer defekten Tastatur eingegeben hatten. Beispielsweise A Space mkönnte das
Tippen a m
oder A m
oder a M
oder ergeben haben A M
.
Schreiben Sie ein Programm mit diesen Zeichen und sehen Sie sich alle 2 N - (Leerzeichen) möglichen Verschiebungskombinationen an. Je mehr Kombinationen ausgegeben werden, desto Dear Computer, please stop giving me shift!
besser. Ihre Punktzahl ist die Anzahl der Arbeitskombinationen (gültige Programme) geteilt durch die Gesamtzahl der Kombinationen. Die höchste Punktzahl gewinnt.
Anmerkungen
- Für gültige Programme sollte das exakte Drucken
Dear Computer, please stop giving me shift!
und nichts anderes als das Ausdrucken die einzige Nebenwirkung sein. - Gültige Programme sollten keine Eingaben annehmen.
- Ungültige Programme können alles tun.
- Kommentare können überall verwendet werden.
- Whitespace- Antworten können nicht gewinnen, da es (relativ) trivial ist, eine 100% ige Punktzahl zu erhalten. Sie können dennoch eine Whitespace-Lösung zum Spaß einreichen.
- Ihr Programm darf höchstens 1024 Zeichen lang sein.
Update: Geändert Stop giving me shift!
in Dear Computer, please stop giving me shift!
, um komplexere Antworten zu ermöglichen. Bestehende Antworten können auf Wunsch so bleiben, wie sie sind.