เมทริกซ์มุมฉากเป็นเมทริกซ์ตารางกับรายการจริงที่มีคอลัมน์และแถวเวกเตอร์หน่วยมุมฉาก (เช่นเวกเตอร์ orthonormal)
นี่หมายความว่า M ^ TM = I โดยที่ฉันคือเมทริกซ์เอกลักษณ์และ ^ T หมายถึงการเคลื่อนย้ายเมทริกซ์
โปรดทราบว่านี่คือมุมฉากไม่ใช่ "orthogonal พิเศษ" ดังนั้นดีเทอร์มีแนนต์ของ M สามารถเป็น 1 หรือ -1
เป้าหมายของการท้าทายนี้ไม่ใช่ความแม่นยำของเครื่องจักรดังนั้นหาก M ^ TM = I ถึงภายในทศนิยม 4 ตำแหน่งที่จะใช้ได้
งานคือการเขียนโค้ดที่ใช้เวลาเป็นจำนวนเต็มบวกn > 1
และผลสุ่มมุมฉาก n โดย n เมทริกซ์ เมทริกซ์ควรจะแบบสุ่มและสม่ำเสมอได้รับการแต่งตั้งจากทั้งหมด n โดย n เมทริกซ์มุมฉาก ในบริบทนี้ "เครื่องแบบ" ถูกกำหนดในแง่ของการวัดฮาร์ซึ่งจำเป็นต้องมีการกระจายที่ไม่เปลี่ยนแปลงถ้าคูณด้วยเมทริกซ์มุมฉากที่เลือกอย่างอิสระใด ๆ นี่หมายความว่าค่าของเมทริกซ์จะเป็นค่าทศนิยมในช่วง -1 ถึง 1
อินพุตและเอาต์พุตสามารถเป็นรูปแบบที่คุณสะดวก
โปรดแสดงตัวอย่างที่ชัดเจนเกี่ยวกับการเรียกใช้รหัสของคุณ
คุณไม่สามารถใช้ฟังก์ชันไลบรารีใด ๆ ที่มีอยู่ซึ่งสร้างเมทริกซ์มุมฉาก กฎนี้ค่อนข้างบอบบางดังนั้นฉันจะอธิบายเพิ่มเติม กฎนี้ห้ามการใช้งานฟังก์ชั่นใด ๆ ที่มีอยู่ในอินพุต (หรือไม่มี) และเมทริกซ์ที่มีขนาดอย่างน้อย n คูณ n ซึ่งรับประกันได้ว่าเป็นมุมฉาก เป็นตัวอย่างสุดขีดหากคุณต้องการเมทริกซ์เอกลักษณ์แบบ n โดย n คุณจะต้องสร้างมันเอง
คุณสามารถใช้ไลบรารีตัวสร้างตัวเลขสุ่มแบบมาตรฐานสำหรับการเลือกหมายเลขแบบสุ่มที่คุณเลือก
n < 50
รหัสของคุณควรจะเสร็จสมบูรณ์ภายในที่มากที่สุดไม่กี่วินาที
diag
อะไร มันสร้างเมทริกซ์แนวทแยงมุมซึ่งแน่นอนเป็นมุมฉาก แต่ไม่เสมอไป
diag
น่าจะโอเค