สมมติว่าเรามีเมทริกซ์ 2 มิติและชุดดัชนีเซลล์ ดัชนีเซลล์แสดงเป็น (i, j) โดยที่ i คือแถวและ j คือคอลัมน์ ตอนนี้ สำหรับทุกดัชนีเซลล์ที่ระบุ (i, j) เราต้องหาผลรวมขององค์ประกอบเมทริกซ์ทั้งหมด ยกเว้นองค์ประกอบที่อยู่ในแถวที่ ith และ /หรือคอลัมน์ที่ j.
ดังนั้นหากอินพุตเป็นแบบ
2 | 2 | 3 |
4 | 5 | 7 |
6 | 4 | 3 |
ดัชนีเซลล์ =[(0, 0), (1, 1), (0, 1)] จากนั้นผลลัพธ์จะเป็น [19, 14, 20]
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
n :=ขนาดของ ind_arr
-
ans :=รายการใหม่
-
สำหรับผมอยู่ในช่วง 0 ถึง n ทำ
-
ผลรวม :=0
-
แถว :=ind_arr[i, 0]
-
col :=ind_arr[i, 1]
-
สำหรับ j ในช่วง 0 ถึงแถวนับเสื่อ ทำ
-
สำหรับ k ในช่วง 0 ถึงจำนวนคอลัมน์ของแผนที่ ทำ
-
ถ้า j ไม่เหมือนกับแถว และ k ไม่เหมือนกับ col แล้ว
-
ผลรวม :=ผลรวม + mat[j, k]
-
-
-
-
ใส่ Sum ที่ท้าย ans
-
-
กลับมาอีกครั้ง
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def show_sums(mat, ind_arr): n = len(ind_arr) ans = [] for i in range(0, n): Sum = 0 row = ind_arr[i][0] col = ind_arr[i][1] for j in range(0, len(mat)): for k in range(0, len(mat[0])): if j != row and k != col: Sum += mat[j][k] ans.append(Sum) return ans mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]] ind_arr = [(0, 0),(1, 1),(0, 1)] print(show_sums(mat, ind_arr))
อินพุต
mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]] ind_arr = [(0, 0),(1, 1),(0, 1)
ผลลัพธ์
[19, 14, 20]