C'è qualcosa che non va nella tua tastiera. La Shiftchiave ha una propria mente. Ogni volta che digiti un personaggio non hai idea se verrà spostato o meno (anche se è 50-50). Oltre ai tasti caratteri standard, nulla sulla tastiera è funzionale. Non c'è mouse o altri mezzi di input.
In qualche modo sai che l'unico modo per sistemare le cose è scrivere un programma che emetta Dear Computer, please stop giving me shift!
su stdout. Fortunatamente il tuo IDE è aperto e sei in grado di eseguire un programma, ma ovviamente durante la digitazione non saprai quali personaggi verranno spostati.
Quale sequenza di pressioni di tasti useresti per scrivere un programma che abbia le migliori possibilità possibili di lavorare al primo tentativo?
Dettagli
Stai usando una tastiera QWERTY standard , quindi puoi premere 50 tasti caratteri.
Versioni non modificate (solo 47):
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Versioni spostate (solo 47):
~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
Gli ultimi 3 tasti sono Enter, Tabe Space, che sono gli stessi spostati e non spostati.
Una sequenza di N di questi caratteri ha 2 N - (conteggio dei caratteri degli spazi bianchi) in cui potrebbe essere stata emessa se li avessi digitati con la tastiera difettosa. Ad esempio, la digitazione A Space mpotrebbe aver prodotto
a m
o A m
o a M
o A M
.
Scrivi a questi personaggi un programma e osserva tutte le possibili combinazioni di turni di 2 N - (conteggio dei caratteri di spazi bianchi) . Più combinazioni producono Dear Computer, please stop giving me shift!
meglio. Il tuo punteggio è il numero di combinazioni di lavoro (programmi validi) diviso per il numero totale di combinazioni. Vince il punteggio più alto.
Gli appunti
- Per programmi validi, la stampa precisa
Dear Computer, please stop giving me shift!
e nient'altro su stdout dovrebbe essere l'unico effetto collaterale. - I programmi validi non devono ricevere input.
- I programmi non validi possono fare qualsiasi cosa.
- I commenti possono essere utilizzati ovunque.
- Le risposte agli spazi bianchi non possono vincere perché ottenere un punteggio del 100% è (relativamente) banale. Puoi comunque inviare una soluzione di Whitespace per divertimento.
- Il programma deve contenere al massimo 1024 caratteri.
Aggiornamento: modificato Stop giving me shift!
per Dear Computer, please stop giving me shift!
consentire risposte più complesse. Le risposte esistenti possono rimanere come sono, se lo si desidera.