Défi
Écrivez un programme ou une fonction qui renvoie ou imprime une matrice symétrique aléatoire carrée.
Contribution
N : La taille de la matrice ie6 x 6
Production
La matrice. Vous pouvez l'imprimer, le renvoyer sous forme de chaîne (avec les sauts de ligne) ou sous forme de liste / tableau de listes / tableaux.
Règles
Vous devez utiliser au moins
N
des caractères différents, oùN
est la taille de la matrice carrée (entrée). Puisque nous n'utilisons que la lettre [a, z] [A, Z] et les chiffres [0, 9] (et seulement 1 chiffre à la fois), vous pouvez supposer celaN < 27
etN > 2
, c'est parce queN <= 2
vous ne pouvez pas avoir les deux lettres et chiffres. Enfin, chaque lettre / chiffre doit avoir une probabilité non nulle de se produire (une distribution uniforme n'est pas une nécessité). Cependant, le résultat doit avoir au moinsN
une lettre / chiffres différents.La matrice doit être à la fois horizontalement et verticalement symétrique.
Exactement 2 lignes et 2 colonnes doivent contenir strictement un seul numéro (sa position doit également être aléatoire). Le reste des lignes / colonnes ne contiendra que des lettres. Considérez les lettres comme [a, z] et [A, Z] et bien sûr les nombres à un chiffre comme [0, 9].
Pour être plus facile, vous pouvez supposer que le cas des lettres n'a pas d' importance, tant que les cas sont symétriques qui signifie:
a=A, b=B, etc
.Chaque sortie possible doit avoir une probabilité non nulle de se produire. La distribution aléatoire n'a pas besoin d'être uniforme.
Exemple
Entrée : 8
Sortie :
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