Wyzwanie
Napisz program lub funkcję, która zwraca lub drukuje macierz kwadratowo-losowo-symetryczną.
Wejście
N : Rozmiar matrycy tj6 x 6
Wynik
Macierz. Możesz go wydrukować, zwrócić jako ciąg znaków (z nowymi wierszami) lub jako listę / tablicę list / tablic.
Zasady
Musisz użyć co najmniej
Nróżnych znaków, gdzieNjest rozmiar macierzy kwadratowej (dane wejściowe). Ponieważ używamy tylko litery [a, z] [A, Z] i cyfr [0, 9] (i tylko 1 cyfra w tym czasie), możesz założyć, żeN < 27iN > 2dlatego,N <= 2że nie możesz mieć obu liter i cyfry. Wreszcie każda litera / cyfra musi mieć niezerowe prawdopodobieństwo wystąpienia (jednolity rozkład nie jest koniecznością). Jednak wynik musi mieć co najmniejNinną literę / cyfry.Matryca musi być symetryczna zarówno poziomo, jak i pionowo.
Dokładnie 2 wiersze i 2 kolumny muszą zawierać ściśle jedną liczbę jednocyfrową (jej pozycja powinna być również losowa). Reszta wierszy / kolumn będzie zawierać tylko litery. Rozważ litery jako [a, z] i [A, Z] oraz oczywiście cyfry jednocyfrowe jako [0, 9].
Wystarczy być łatwiejsze, można założyć, że w przypadku liter nie ma znaczenia, tak długo, jak przypadki są symetryczne Co oznacza:
a=A, b=B, etc.Każde możliwe wyjście musi mieć niezerowe prawdopodobieństwo wystąpienia. Rozkład losowy nie musi być jednolity.
Przykład
Wejście : 8
Wyjście :
c r p s s p r c
r k o z z o k r
u t 2 a a 2 t u
y n q z z q n y
y n q z z q n y
u t 2 a a 2 t u
r k o z z o k r
c r p s s p r c