Voici un code de golf simple, de la taille d'une bouchée (octet?): Étant donné une liste non vide d'entiers positifs inférieurs à 10, imprimez une matrice diagonale de bloc , où la liste spécifie la taille des blocs, dans l'ordre. Les blocs doivent être constitués d'entiers positifs inférieurs à 10. Donc, si vous êtes donné en entrée
[5 1 1 2 3 1]
Votre sortie pourrait être, par exemple,
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
ou
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
ou quelque chose comme ça. Les éléments de la matrice doivent être séparés par des espaces (simples) et les lignes séparées par des retours à la ligne (simples). Il ne doit y avoir aucun espace de début ou de fin sur aucune ligne. Vous pouvez ou non imprimer une nouvelle ligne de fin.
Vous pouvez écrire une fonction ou un programme, en prenant des entrées via STDIN (ou l'alternative la plus proche), un argument de ligne de commande ou un argument de fonction, dans n'importe quel format de chaîne ou de liste (tant qu'il n'est pas prétraité). Cependant, le résultat doit être imprimé sur STDOUT (ou l'alternative la plus proche), par opposition au retour d'une fonction, par exemple.
Vous ne devez pas utiliser de fonctions intégrées conçues pour créer des matrices à blocs diagonales.
Il s'agit du code golf, donc la soumission la plus courte (en octets) l'emporte.
Classements
Je m'attends à ce que les langages basés sur les tableaux (comme J et APL) aient l'avantage ici, mais je ne veux pas que cela décourage les gens d'essayer de faire aussi bien qu'ils le peuvent dans la langue de leur choix. Voici donc un extrait de pile pour générer à la fois un classement régulier et un aperçu des gagnants par langue. Alors pourquoi ne pas essayer de prendre une place sur ce dernier?
Pour vous assurer que votre réponse apparaît, veuillez commencer votre réponse avec un titre, en utilisant le modèle Markdown suivant:
# Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores dans le titre, en les barrant. Par exemple:
# Ruby, <s>104</s> <s>101</s> 96 bytes
[:=/~]#<\
comptent pour votre score. En outre,=/~@#<\
pour deux octets supplémentaires rasés.