27/04/2023
28/04/2023
- Để tính tổng các ô có đường thẳng đi qua ô[i,j] song song đường chéo chính hoặc phụ, ta có thể sử dụng tính chất của đường chéo chính và phụ như sau:
Đường chéo chính: Các phần tử có chỉ số hàng và cột bằng nhau.
Đường chéo phụ: Các phần tử có tổng chỉ số hàng và cột bằng n-1.
Với mỗi ô[i,j], ta sẽ tính tổng của các ô nằm trên đường chéo chính hoặc đường chéo phụ, loại bỏ ô[i,j] ra khỏi tổng. Công thức tính tổng là:
sum = 0
for k in range(n):
if k != j:
sum += A[i][k] # Tổng các phần tử trên hàng i, cột khác j
if k != i:
sum += A[k][j] # Tổng các phần tử trên cột j, hàng khác i
if k != i and k != j:
if i + j == k: # Nếu ô[i,j] nằm trên đường chéo phụ
sum += A[k][n-1-k] # Tổng các phần tử trên đường chéo phụ
if i - j == k - j: # Nếu ô[i,j] nằm trên đường chéo chính
sum += A[k][k] # Tổng các phần tử trên đường chéo chính
return sum
- Để tính tổng các ô ở khu vực 1,2,3,4 của ma trận vuông, ta sẽ chia ma trận thành 4 khu vực bằng đường chéo chính và đường chéo phụ, rồi tính tổng các ô trong từng khu vực. Công thức tính tổng các ô trong khu vực 1,2,3,4 như sau:
Khu vực 1: Tổng các ô có chỉ số hàng và cột nhỏ hơn n/2.
Khu vực 2: Tổng các ô có chỉ số hàng nhỏ hơn n/2 và cột lớn hơn hoặc bằng n/2.
Khu vực 3: Tổng các ô có chỉ số hàng và cột lớn hơn hoặc bằng n/2.
Khu vực 4: Tổng các ô có chỉ số hàng lớn hơn hoặc bằng n/2 và cột nhỏ hơn n/2.
Công thức tính tổng các ô trong từng khu vực là:
sum1 = sum2 = sum3 = sum4 = 0
for i in range(n):
for j in range(n):
if i < n/2 and j < n/2: # Khu vực 1
sum1 += A[i][j]
elif
Nguyên Minh
29/04/2023
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
Top thành viên trả lời