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

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


สมมติว่าเรามีเมทริกซ์กำลังสอง เราต้องหาผลบวกของเส้นทแยงมุมของเมทริกซ์ ดังนั้นให้รวมเฉพาะผลรวมขององค์ประกอบทั้งหมดบนเส้นทแยงหลักและองค์ประกอบทั้งหมดบนเส้นทแยงมุมรอง และละเว้นองค์ประกอบที่ตัดขวาง

ดังนั้นหากอินพุตเป็นแบบ

10 5 9 6
8 15 3 2
3 8 12 3
2 11 7 3

จากนั้นผลลัพธ์จะเป็น องค์ประกอบในแนวทแยงหลักคือ [10,15,12,3] ผลรวมคือ 40 เส้นทแยงมุมรอง [6,3,8,2] ผลรวมคือ 19 ดังนั้นผลรวมทั้งหมด 59

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • m :=จำนวนแถวของเมทริกซ์

  • ถ้า m เท่ากับ 1 แล้ว

    • ส่งคืนเมทริกซ์[0, 0]

  • นับ :=0

  • สำหรับฉันในช่วง 0 ถึง m - 1 ทำ

    • นับ :=นับ + เมทริกซ์[i, i]

    • นับ :=นับ + เมทริกซ์[i, (-1 - i)]

  • ถ้า m เป็นคี่ แล้ว

    • ind :=ผลหารของ m/2

    • นับ :=นับ - เมทริกซ์[ind, ind]

  • จำนวนคืน

ตัวอย่าง (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))

อินพุต

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

ผลลัพธ์

59