ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งคืนหรือพิมพ์เมทริกซ์จตุรัสสมมาตรแบบสุ่ม
อินพุต
N : ขนาดของเมทริกซ์คือ6 x 6
เอาท์พุต
เมทริกซ์ คุณสามารถพิมพ์กลับเป็นสตริง (ด้วยการขึ้นบรรทัดใหม่) หรือเป็นรายการ / อาร์เรย์ของรายการ / อาร์เรย์
กฎระเบียบ
คุณต้องใช้อย่างน้อย
N
อักขระที่แตกต่างกันซึ่งN
ขนาดของเมทริกซ์จตุรัส (อินพุต) อยู่ที่ใด เนื่องจากเราใช้ตัวอักษร [a, z] [A, Z] และตัวเลข [0, 9] (และมีเพียง 1 หลักเท่านั้นในเวลานั้น) คุณสามารถสันนิษฐานได้N < 27
และN > 2
นั่นเป็นเพราะN <= 2
คุณไม่สามารถมีตัวอักษรทั้งสองได้ และตัวเลข ท้ายสุด แต่ไม่ท้ายสุดตัวอักษร / ตัวเลขทุกตัวต้องมีความน่าจะเป็นที่ไม่เป็นศูนย์ที่เกิดขึ้น (การแจกเครื่องแบบไม่จำเป็น) อย่างไรก็ตามผลลัพธ์ต้องมีN
ตัวอักษร / ตัวเลขต่างกันอย่างน้อยเมทริกซ์จะต้องมีทั้งแนวนอนและแนวตั้งสมมาตร
2 แถวและ 2 คอลัมน์จะต้องมีตัวเลขหลักเดียวอย่างเคร่งครัด (ตำแหน่งควรเป็นแบบสุ่ม) ส่วนที่เหลือของแถว / cols จะมีเพียงตัวอักษร พิจารณาตัวอักษรเป็น [a, z] และ [A, Z] และแน่นอนว่าตัวเลขหลักเดียวคือ [0, 9]
a=A, b=B, etc
เพียงเพื่อจะได้ง่ายขึ้นคุณสามารถสรุปได้ว่ากรณีของตัวอักษรไม่สำคัญตราบใดที่กรณีที่มีสมมาตรซึ่งหมายถึง:ทุกผลลัพธ์ที่เป็นไปได้ต้องมีความน่าจะเป็นที่ไม่เป็นศูนย์ที่เกิดขึ้น การกระจายแบบสุ่มไม่จำเป็นต้องเหมือนกัน
ตัวอย่าง
อินพุต : 8
ผลผลิต :
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