btvn.vn
Tìm kiếm Đăng nhập

Tính tổng và tìm hàng lớn nhất của ma trận

Lưu trên thiết bị này
Kĩ thuật lập trình — CS · Chọn bài khác

Nhiệm vụ trên bảng chữ nhật

Cho ma trận giả `a = [[2, 1, 3], [4, 0, 2], [1, 1, 1]]`. Có ba hàng, mỗi hàng ba số. Tổng các hàng lần lượt là 6, 6, 3; tổng toàn bảng là 15. Cần báo **cả hàng thứ nhất và hàng thứ hai** vì chúng đồng hạng cao nhất. Khi nhập từ bàn phím theo SGK, mỗi hàng phải có đúng `n` số; nhập sai số lượng thì yêu cầu nhập lại, không dùng một hàng ngắn làm ma trận m × n.

Tính từng hàng trước khi so sánh

```python def thong_ke_ma_tran(a): if not a or not a[0] or any(len(hang) != len(a[0]) for hang in a): raise ValueError("Cần ma trận không rỗng với các hàng cùng độ dài") tong_hang = [] for hang in a: tong_hang.append(sum(hang)) tong_chung = sum(tong_hang) muc_cao_nhat = max(tong_hang) hang_cao_nhat = [] for i in range(len(tong_hang)): if tong_hang[i] == muc_cao_nhat: hang_cao_nhat.append(i + 1) return tong_chung, tong_hang, hang_cao_nhat print(thong_ke_ma_tran([[2, 1, 3], [4, 0, 2], [1, 1, 1]])) ``` Kết quả là `(15, [6, 6, 3], [1, 2])`. `range(len(tong_hang))` cho chỉ số 0, 1, 2; cộng 1 để báo **số thứ tự hàng** như người dùng quen đọc. Nếu dùng `a=[]`, một hàng rỗng hoặc các hàng dài khác nhau, chương trình báo `ValueError`. Thử bảng chỉ có một hàng `[[5, -2]]`: tổng là 3 và hàng cao nhất là `[1]`; dấu âm vẫn được cộng như số bình thường.

Bài luyện

Với các tổng hàng `[6, 6, 3]`, những hàng nào có tổng lớn nhất theo số thứ tự từ 1?
Chọn một đáp án

Bài luyện

Vì sao đoạn mã dùng `i + 1` khi báo hàng cao nhất?
Chọn một đáp án

Bài luyện

Dữ liệu nào bị hàm từ chối vì không phải ma trận chữ nhật theo bài này?
Chọn một đáp án

Đang học