Meydan okuma
Kare-rastgele-simetrik bir matris döndüren veya yazdıran bir program veya işlev yazın.
Giriş
N : Matrisin boyutu yani6 x 6
Çıktı
Matris. Yazdırabilir, dize (satırsonu ile birlikte) veya liste / liste / dizi dizisi olarak döndürebilirsiniz.
kurallar
Kare matrisin (giriş) boyutu olan en az
N
farklı karakterler kullanmanız gerekirN
. Yalnızca [a, z] [A, Z] harflerini ve [0, 9] rakamlarını (ve aynı anda yalnızca 1 basamak) kullandığımızdan bunu kabul edebilirsinizN < 27
veN > 2
bunun nedeni,N <= 2
her iki harfin de bulunamamasıdır. ve rakamlar. Son olarak, her harf / rakam sıfırdan farklı olma olasılığına sahip olmalıdır (tekdüze dağılım bir zorunluluk değildir). Ancak, sonuçta en azN
farklı harf / rakam olmalıdır.Matris hem yatay hem de dikey olarak simetrik olmalıdır.
Tam olarak 2 satır ve 2 sütun kesinlikle tek basamaklı bir sayı içermelidir (konumu da rastgele olmalıdır). Diğer satır / sütunlarda yalnızca harfler bulunur. Harfleri [a, z] ve [A, Z] ve elbette tek basamaklı sayıları [0, 9] olarak düşünün.
Daha kolay olmak için, harfler simetrik olduğu sürece, harflerin durumunun önemli olmadığını varsayabilirsiniz: yani
a=A, b=B, etc
.Her olası çıkışın sıfır olmayan bir gerçekleşme olasılığı olmalıdır. Rastgele dağılımın tek tip olması gerekmez.
Misal
Giriş : 8
Çıktı :
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