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

Latin Square ใน Python

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

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

Latin Square ที่ได้จะมีขนาดต่างกัน แต่ถ้าสังเกตรูปแบบของเมทริกซ์ข้างต้นอย่างละเอียด จะพบว่าตัวเลขสุดท้ายของแถวก่อนหน้าจะกลายเป็นองค์ประกอบแรกของแถวถัดไป นั่นคือรูปแบบที่ซ่อนอยู่ใน Latin Square เราต้องเขียนโปรแกรมที่สร้างเมทริกซ์ดังกล่าวสำหรับอินพุต n

อัลกอริทึม

  1. กำหนดค่า n ด้วยตัวเลขที่ต้องการ
  2. กำหนดตัวเลข со значением n + 1 เรียกว่า first_half_end
  3. ลูปที่วนจาก 1 ถึง n ทั้งสองข้าง:
    • กำหนดค่า first_half_end ให้กับตัวแปร first_half_start
    • ลูปจนกว่า first_half_start จะถึงค่า n:
      • พิมพ์ตัวแปรที่วนลูป คือ first_half_start
    • ลูปที่วนจาก 1 ถึง first_half_end:
      • พิมพ์ตัวแปรที่วนลูป
    • ลดค่า first_half_end ลง 1
    • ขึ้นบรรทัดใหม่

การใช้งาน

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_end, 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