zrzeczenie się odpowiedzialności: nie znam żadnych rozwiązań innych niż bruteforce
Kwadrat Graeco-Latin to, dla dwóch zestawów tej samej długości , układ komórek , z których każdy zawiera unikalną (przez cały kwadrat) parę elementu pierwszego zestawu i element drugiego zestawu, takie jak że wszystkie pierwsze elementy i wszystkie drugie elementy par są unikalne w swoim rzędzie i kolumnie. Najczęściej stosowanymi zestawami są, jak można się domyślić, pierwsze liter alfabetu greckiego i łacińskiego.
Oto zdjęcie kwadratu Graeco-Latin 4x4:
Kwadraty grecko-łacińskie są tak przydatne, jak się wydaje ( artykuł w Wikipedii wspomina o „projektowaniu eksperymentów, planowaniu turniejów i konstruowaniu magicznych kwadratów”). Twoim zadaniem jest, biorąc pod uwagę dodatnią liczbę całkowitą , wygenerowanie kwadratu Graeco-Latin.
Wkład
Dodatnia liczba całkowita ; gwarantowane jest istnienie kwadratu grecko-łacińskiego (to znaczy n ≠ 6 ).
Wydajność
Kwadrat grecko-łaciński o długości boku n jako tablica dwuwymiarowa, tablica tablic, tablica spłaszczona lub wyprowadzana bezpośrednio.
Notatki
- Nie musisz specjalnie używać alfabetu greckiego i łacińskiego; na przykład dozwolone jest także wyprowadzanie par dodatnich liczb całkowitych.
- Jeśli zdecydujesz się użyć alfabetu, którego nie można dowolnie rozszerzyć, musisz (teoretycznie; twój kod nie musi kończyć się przed śmiercią wszechświata) utrzymywać maksymalną długość boku co najmniej 20.
To jest golf golfowy , więc wygrywa najkrótszy kod!