Scrivi un programma o una funzione che, dato un numero intero n, costruisca un array con ndimensioni di nlunghezza, in cui ogni elemento è un identificatore delle proprie coordinate. Cioè, a partire da un array, popolarlo con narray, in cui ciascuno di essi contiene npiù array, fino a una profondità di n-1. Gli elementi delle matrici più profonde sono le coordinate che descrivono dove si trovano nella matrice completa.
Alcuni esempi nel caso in cui la mia spiegazione fosse confusa.
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"]
]
]
Qui, "321" significa che è il primo elemento del secondo elemento del terzo array.
Regole:
- Le coordinate e la dimensione (
n) possono essere indicizzate 0 o 1 - Si può presumere che
nsia una cifra singola, inferiore a 10 per entrambe le opzioni di indicizzazione per evitare output ambigui - IO è flessibile.
- In particolare, le coordinate possono essere matrici, stringhe ecc. Purché siano chiare. "321" => [3,2,1]
- L'output può essere numeri interi in base 10 con o senza zeri iniziali.
- Le coordinate possono essere in ordine inverso se lo si desidera, purché sia coerente. "321" => "123"
- L'output non deve necessariamente essere una struttura array nella tua lingua. Finché ci sono marcatori distinti chiari per l'inizio di un array, la fine di un array e per separare gli elementi.
- L'output per
n=1può essere solo 1 - Se l'output è atipico, assicurati di spiegare il formato.
- Questo è code-golf, quindi vince la soluzione più breve in ogni lingua!
data L a = L [L a] | E a.
Int -> [String]o Int -> [[String]]così via, a seconda dell'ingresso