Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จัตุรัสละตินใน Python


จตุรัสละตินเป็นเมทริกซ์ที่มีรูปแบบพิเศษ มาดูตัวอย่างต่างๆ เพื่อตรวจสอบรูปแบบกัน

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