Ecco un semplice golf da codice di dimensioni ridotte (byte-size?): Dato un elenco non vuoto di numeri interi positivi inferiori a 10, stampa una matrice diagonale a blocchi , in cui l'elenco specifica la dimensione dei blocchi, in ordine. I blocchi devono essere costituiti da numeri interi positivi inferiori a 10. Quindi, se ti viene dato come input
[5 1 1 2 3 1]
Il tuo output potrebbe essere, ad esempio,
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1
o
1 2 3 4 5 0 0 0 0 0 0 0 0
6 7 8 9 1 0 0 0 0 0 0 0 0
2 3 4 5 6 0 0 0 0 0 0 0 0
7 8 9 1 2 0 0 0 0 0 0 0 0
3 4 5 6 7 0 0 0 0 0 0 0 0
0 0 0 0 0 8 0 0 0 0 0 0 0
0 0 0 0 0 0 9 0 0 0 0 0 0
0 0 0 0 0 0 0 1 2 0 0 0 0
0 0 0 0 0 0 0 3 4 0 0 0 0
0 0 0 0 0 0 0 0 0 5 6 7 0
0 0 0 0 0 0 0 0 0 8 9 1 0
0 0 0 0 0 0 0 0 0 2 3 4 0
0 0 0 0 0 0 0 0 0 0 0 0 5
o qualcosa di simile. Gli elementi nella matrice devono essere separati da (singoli) spazi e le righe separate da (singoli) newline. Non ci devono essere spazi iniziali o finali su nessuna riga. È possibile o meno stampare una nuova riga finale.
È possibile scrivere una funzione o un programma, prendendo input tramite STDIN (o l'alternativa più vicina), argomento della riga di comando o argomento della funzione, in qualsiasi formato stringa o elenco conveniente (purché non sia preelaborato). Tuttavia, il risultato deve essere stampato su STDOUT (o l'alternativa più vicina), al contrario di restituito da una funzione, diciamo.
Non è necessario utilizzare alcuna funzione integrata progettata per creare matrici diagonali a blocchi.
Questo è il golf del codice, quindi vince l'invio più breve (in byte).
Classifiche
Mi aspetto che i linguaggi basati su array (come J e APL) abbiano il vantaggio qui, ma non voglio che ciò scoraggi le persone dal provare a fare il meglio che possono nella loro lingua preferita. Quindi ecco uno snippet di stack per generare sia una classifica regolare che una panoramica dei vincitori per lingua. Quindi perché non provare a prendere un posto su quest'ultimo?
Per assicurarti che la tua risposta venga visualizzata, ti preghiamo di iniziare la risposta con un titolo, usando il seguente modello Markdown:
# Language Name, N bytes
dov'è N
la dimensione del tuo invio. Se si migliora il punteggio, è possibile mantenere i vecchi punteggi nel titolo, colpendoli. Per esempio:
# Ruby, <s>104</s> <s>101</s> 96 bytes
[:=/~]#<\
contino per il tuo punteggio. Inoltre,=/~@#<\
per due byte extra rasati.