disclaimer: non sono a conoscenza di soluzioni non bruteforce
Un quadrato Graeco-Latino è, per due insiemi della stessa lunghezza , una disposizione di celle, ognuna contenente una coppia unica (attraverso l'intero quadrato) di un elemento del primo insieme e un elemento del secondo insieme, tale che tutti i primi elementi e tutti i secondi elementi delle coppie sono unici nella loro riga e colonna. Gli insiemi più comuni usati sono, come si può immaginare, le prime lettere degli alfabeti greco e latino.
Ecco una foto di un quadrato greco-latino 4x4:
Le piazze greco-latine sono utili quanto suonano (l' articolo di Wikipedia menziona "progettazione di esperimenti, programmazione dei tornei e costruzione di quadrati magici"). Il tuo compito è, dato un numero intero positivo , di generare un Graeco-Latino .
Ingresso
Un numero intero positivo ; è garantito che esiste un quadrato Graeco-Latino (cioè ).
Produzione
Un quadrato greco-latino con la lunghezza laterale n come una matrice bidimensionale, una matrice di matrici, una matrice appiattita o emessa direttamente.
Gli appunti
- Non è necessario utilizzare in modo specifico gli alfabeti greco e latino; ad esempio, è consentito anche l'output di coppie di numeri interi positivi.
- Se scegli di usare un alfabeto che non può essere esteso arbitrariamente, devi (teoricamente; il tuo codice non deve finire prima della morte per calore dell'universo) per supportare una lunghezza laterale massima di almeno 20.
Questo è code-golf , quindi vince il codice più corto!