Stufo dell'affidabilità dell'archiviazione flash, hai deciso di archiviare tutti i tuoi programmi su uno di quei buoni vecchi floppy da 1.440 KiB. Tuttavia, dopo aver copiato nemmeno 3.000 programmi, il disco era pieno. Com'è possibile? Esperto nell'arte del code golf come sei, la maggior parte dei tuoi programmi non è lunga nemmeno 100 byte, quindi dovrebbe esserci molto spazio a disposizione ...
Dopo averlo chiesto a Super User, scopri di essere stato torto dalle dimensioni del cluster del file system , una trama malvagia dei progettisti di FAT12 che lascia inutilizzata una parte significativa del tuo floppy e ti costringe ad acquistare più di quanto tu abbia realmente bisogno.
Acquista più floppy? Mai! La dimensione del cluster sarà meno problematica se salviamo semplicemente più programmi in un unico file, il che è possibile perché diversi compilatori / interpreti si comporteranno in modo diverso per lo stesso codice sorgente.
Compito
Scrivi un poliglotta che si adatta a un singolo cluster (512 byte o meno) e risolve il maggior numero possibile delle seguenti attività.
Leggi tutti gli input e stampali.
Stampa Ciao, mondo! .
Leggi una riga / argomento ( nome ) come input e stampa Buon compleanno, [nome]! .
Leggi tutti gli input e stampa I love tabs! se contiene uno o più tabulatori (0x09) e odio gli spazi! se non lo fa.
Leggi due righe / argomenti e stampa un valore di verità se il secondo è una sottostringa del primo e un valore di falsa in caso contrario.
Leggi una riga / argomento e stampa un valore di verità se i suoi personaggi sono in ordine strettamente crescente e un valore di falsa in caso contrario.
Leggi una riga / argomento e un carattere e stampa gli indici di tutte le occorrenze di quel personaggio.
Leggi una riga / argomento e stampa uno dei caratteri con il maggior numero di occorrenze.
Leggi due numeri interi compresi tra 0 e 255 e stampa la loro somma.
Leggi un singolo intero compreso tra 0 e 255 e stampa il quoziente e il residuo della sua divisione per 7 .
Leggi un singolo numero intero compreso tra 1 e 255 e stampa un valore di verità se è un numero composto (né 1 né primo) e un valore di falsa in caso contrario.
Leggi un singolo intero compreso tra 1 e 255 e stampa un valore di verità se è una potenza di 2 e un valore di falsa in caso contrario.
Leggi due numeri interi compresi tra 0 e 255 e stampa quello più grande.
Leggi un numero intero decimale compreso tra 0 e 255 e stampa la sua rappresentazione esadecimale.
Leggi un singolo numero intero compreso tra 0 e 255 e stampa il suo peso di Hamming (numero di 1 bit).
Leggere un singolo intero n tra il 1 e il 13 e stampare il F n , il n ° numero di Fibonacci .
Ad esempio, per l'input
13
, stampa233
.
Leggi una riga / argomento di input e inquadralo.
Ad esempio, per l'input
Programming Puzzles & Code Golf
, stampare questo:+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
Leggi un blocco rettangolare di caratteri e ruotalo di un quarto di giro in senso orario.
Ad esempio, per l'input
tye xll epb tma id sa s e i r hsn Tiu
stampa questo:
This text is simply unreadable
Leggi un numero intero compreso tra 1 e 40 e stampa un diamante di quella lunghezza laterale.
Ad esempio, per l'input
3
, stampare questo:/\ / \ / \ \ / \ / \/
Stampa questo:
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
punteggio
Vince la risposta che riesce a incorporare il maggior numero di programmi in un singolo file che si inserisce in un singolo cluster da 512 byte. I legami sono interrotti dal conteggio dei byte (inferiore è meglio).
Regole aggiuntive
Per ogni attività che richiedi per il tuo punteggio, lo stesso file (byte per byte) deve costituire un programma completo - in una lingua di tua scelta - che risolve questa particolare attività.
Ogni compito deve essere risolto in una lingua diversa.
Le lingue contano come diverse se non sono versioni diverse della stessa lingua. Ad esempio, c'è solo un JavaScript, un Python e un TI-BASIC, ma C, C ++, Octave e MATLAB sono quattro lingue diverse.
La lingua selezionata per ogni attività deve soddisfare la nostra solita definizione di linguaggio di programmazione .
Inoltre, la lingua deve essere stata pubblicata e implementata prima del 9 settembre 2015.
Il compilatore / interprete potrebbe non richiedere alcun flag non standard per produrre il comportamento previsto.
Le eccezioni a questa regola includono flag richiesti per specificare una lingua particolare, per leggere il programma da un (singolo) file o per sopprimere un banner.
L'input per ciascuna attività sarà composto da caratteri ASCII stampabili (da 0x20 a 0x7E) e da avanzamenti di riga (0x0A) e non supererà i 255 byte di lunghezza.
Tutti i numeri interi possono essere letti in decimale o unario, se non diversamente indicato nell'attività.
Il comportamento per input non valido non è definito.
È possibile leggere l'input da STDIN (o la sua alternativa più vicina) o come argomenti della riga di comando.
Se un'attività richiede la lettura di due elementi di input, è possibile leggerli, in qualsiasi ordine, separati da un delimitatore a un byte di propria scelta, come argomenti della riga di comando separati o uno da STDIN e l'altro come argomento della riga di comando.
Se uno dei pezzi di input è una riga, l'unico delimitatore possibile è un avanzamento riga.
Stampa l'output su STDOUT (o l'alternativa più vicina). Tutti gli output su STDERR verranno ignorati.
Per ogni attività, si applicano le regole standard del golf di codice .
In particolare, ciò include le scappatoie che sono vietate per impostazione predefinita , ad eccezione della codifica effettiva dell'output , che è esplicitamente consentito per questa sfida.
2>/dev/null
e otteniamo l'output corretto su stdout, va bene? Giusto per essere sicuro.