วอลช์เมทริกซ์เป็นชนิดพิเศษของตารางเมทริกซ์ที่มีการใช้งานในควอนตัมคอมพิวเตอร์ (และอาจจะที่อื่น ๆ แต่ฉันจะดูแลเกี่ยวกับควอนตัมคอมพิวเตอร์)
คุณสมบัติของเมทริกซ์วอลช์
ขนาดมีอำนาจเดียวกันของ 2. ดังนั้นเราจึงสามารถอ้างถึงการฝึกอบรมเหล่านี้โดยการยกกำลังสองที่นี่เรียกพวกเขาW(0), W(1), W(2)...
W(0)[[1]]ถูกกำหนดให้เป็น
สำหรับn>0, W(n)รูปลักษณ์ที่ต้องการ:
[[W(n-1) W(n-1)]
[W(n-1) -W(n-1)]]
ดังนั้นW(1)คือ:
[[1 1]
[1 -1]]
และW(2)คือ:
[[1 1 1 1]
[1 -1 1 -1]
[1 1 -1 -1]
[1 -1 -1 1]]
รูปแบบต่อไป ...
งานของคุณ
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เป็นจำนวนเต็มnและพิมพ์ / ส่งคืนW(n)ในรูปแบบที่สะดวก นี่อาจเป็นอาร์เรย์ของอาร์เรย์ booleans ที่มี.svgรูปแบนคุณตั้งชื่อมันตราบใดที่มันถูกต้อง
ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
สิ่งที่สอง:
สำหรับW(0)ความ1จำเป็นที่จะต้องไม่ถูกห่อหุ้มแม้แต่ครั้งเดียว มันอาจจะเป็นจำนวนเต็มเพียง
คุณได้รับอนุญาตให้ทำดัชนี 1 ผลลัพธ์ - W(1)จะเป็น[[1]]อย่างไร
กรณีทดสอบ
0 -> [[1]]
1 -> [[1 1]
[1 -1]]
2 -> [[1 1 1 1]
[1 -1 1 -1]
[1 1 -1 -1]
[1 -1 -1 1]]
3 -> [[1 1 1 1 1 1 1 1]
[1 -1 1 -1 1 -1 1 -1]
[1 1 -1 -1 1 1 -1 -1]
[1 -1 -1 1 1 -1 -1 1]
[1 1 1 1 -1 -1 -1 -1]
[1 -1 1 -1 -1 1 -1 1]
[1 1 -1 -1 -1 -1 1 1]
[1 -1 -1 1 -1 1 1 -1]]
8 -> Pastebin
นี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดในแต่ละภาษาชนะ! มีความสุขในการเล่นกอล์ฟ!
W(1)ผลตอบแทน[[1]], W(2)ผลตอบแทนที่[[1,1],[1,-1]... )