จตุรัสละตินเป็นเมทริกซ์ที่มีรูปแบบพิเศษ มาดูตัวอย่างต่างๆ เพื่อตรวจสอบรูปแบบกัน
1 2 2 1 1 2 3 3 1 2 2 3 1 1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1
จตุรัสละตินที่คุณได้รับจะมีขนาดแตกต่างกันตามที่คุณสังเกตเห็นในตัวอย่างด้านบน แต่ถ้าคุณสังเกตรูปแบบของเมทริกซ์ข้างต้นอย่างรอบคอบ คุณจะพบว่าจำนวนสุดท้ายของแถวก่อนหน้ามาเป็นองค์ประกอบแรกของแถวถัดไป
นั่นคือรูปแบบที่ซ่อนอยู่ในจตุรัสละติน เราต้องเขียนโปรแกรมที่สร้างเมทริกซ์ข้างต้นสำหรับอินพุต n
อัลกอริทึม
- เริ่มต้น n ด้วยตัวเลขใดๆ ที่คุณต้องการ
- เริ่มต้นตัวเลขที่มีค่า n + 1 เรียกว่า first_half_end
- เขียนลูปที่วนซ้ำจาก 1 ถึง n ทั้งสองอย่างรวมกัน
- กำหนดค่าของ first_half_end ให้กับตัวแปรชื่อ first_half_start
- เขียนลูปจนกระทั่ง first_half_start ถึงค่า n.
- พิมพ์ตัวแปรการวนซ้ำ เช่น first_half_start
- เขียนลูปที่วนซ้ำจาก 1 ถึง first_half_end
- พิมพ์ตัวแปรการวนซ้ำ
- ลดค่าของ first_half_end ลง 1
- เลื่อนแถวถัดไป
การนำไปใช้
ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน Python
def generateLatinSquare(n): first_half_end = n + 1 for i in range(1, n + 1): first_half_start = first_half_end while (first_half_start <= n): print(first_half_start, end=" ") first_half_start += 1 for second_half_start in range(1, first_half_end): print(second_half_start, end=" ") first_half_end -= 1 print() print() if __name__ == "__main__": generateLatinSquare(2) generateLatinSquare(3) generateLatinSquare(4)
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
1 2 2 1 1 2 3 3 1 2 2 3 1 1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1