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

โปรแกรมหาผลรวมเส้นทแยงมุมของเมทริกซ์ใน Python


การหาผลรวมเส้นทแยงมุมของเมทริกซ์สี่เหลี่ยมจัตุรัส

สมมติว่าเรามีเมทริกซ์สี่เหลี่ยมจัตุรัส เราต้องการหาผลรวมขององค์ประกอบบนเส้นทแยงมุมหลักและเส้นทแยงมุมรอง โดยไม่นับองค์ประกอบที่ซ้อนทับกัน (จุดกึ่งกลาง)

ตัวอย่าง

หากอินพุตเป็นเมทริกซ์ 4x4 ดังนี้:

10596
81532
38123
21173

องค์ประกอบเส้นทแยงมุมหลักคือ [10, 15, 12, 3] ผลรวม = 40

องค์ประกอบเส้นทแยงมุมรองคือ [6, 3, 8, 2] ผลรวม = 19

ผลรวมทั้งหมด = 59

ขั้นตอนการแก้ปัญหา

  1. m := จำนวนแถวของเมทริกซ์
  2. ถ้า m = 1 ให้คืนค่า matrix[0][0]
  3. กำหนด count = 0
  4. วนลูป i จาก 0 ถึง m-1:
    • บวก matrix[i][i] (เส้นทแยงมุมหลัก) เข้า count
    • บวก matrix[i][-1-i] (เส้นทแยงมุมรอง) เข้า count
  5. ถ้า m เป็นเลขคี่ ให้ลบ matrix[m//2][m//2] ออกจาก count (เพื่อไม่ให้นับจุดกึ่งกลางซ้ำ)
  6. คืนค่า count

ตัวอย่างโค้ด Python

def solve(matrix):
    m = len(matrix)
    if m == 1:
        return matrix[0][0]
    count = 0
    for i in range(m):
        count += matrix[i][i]
        count += matrix[i][-1 - i]
    if m % 2 == 1:
        count -= matrix[m // 2][m // 2]
    return count

matrix = [[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]
print(solve(matrix))  # Output: 59

อินพุต

[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]

เอาต์พุต

59