Écrivez un programme ou une fonction qui, étant donné un entier n, construit un tableau avec des ndimensions de nlongueur, où chaque élément est un identifiant de ses propres coordonnées. Autrement dit, en commençant par un tableau, remplissez-le avec des ntableaux, où chacun d'entre eux contient nplus de tableaux, jusqu'à une profondeur de n-1. Les éléments des tableaux les plus profonds sont les coordonnées décrivant où ils se trouvent dans le tableau complet.
Quelques exemples au cas où mon explication serait déroutante.
n = 1
["1"]
n = 2
[
["11", "12"],
["21", "22"]
]
n = 3
[
[
["111","112","113"],
["121","122","123"],
["131","132","133"]
],
[
["211","212","213"],
["221","222","223"],
["231","232","233"]
],
[
["311","312","313"],
["321","322","323"],
["331","332","333"]
]
]
Ici, "321" signifie qu'il s'agit du 1er élément du 2e élément du 3e tableau.
Règles:
- Les coordonnées et la dimension (
n) peuvent être indexées de 0 ou 1 - Vous pouvez supposer qu'il
ns'agit d'un seul chiffre, inférieur à 10 pour les deux options d'indexation afin d'éviter les sorties ambiguës - IO est flexible.
- En particulier, les coordonnées peuvent être des tableaux, des chaînes, etc. tant qu'elles sont claires. "321" => [3,2,1]
- La sortie peut être des nombres entiers en base 10 avec ou sans zéros non significatifs.
- Les coordonnées peuvent être dans l'ordre inverse si vous le souhaitez, tant qu'elles sont cohérentes. "321" => "123"
- La sortie ne doit pas nécessairement être une structure de tableau dans votre langue. Tant qu'il y a des marqueurs distincts clairs pour le début d'un tableau, la fin d'un tableau et pour séparer les éléments.
- La sortie pour
n=1peut simplement être 1 - Si votre sortie est atypique, assurez-vous d'expliquer le format.
- C'est le code-golf, donc la solution la plus courte dans chaque langue gagne!
data L a = L [L a] | E a.
Int -> [String]ou autre Int -> [[String]], selon ce que l'entrée est