Câu hỏi:
01/10/2024 227Em hãy nhắc lại định nghĩa mảng hai chiều và cách khai báo mảng hai chiều trong ngôn ngữ Python. Theo em, có thể sử dụng mảng hai chiều để biểu diễn một đồ thị được không?
Sale Tết giảm 50% 2k7: Bộ 20 đề minh họa Toán, Lí, Hóa, Văn, Sử, Địa…. form chuẩn 2025 của Bộ giáo dục (chỉ từ 49k/cuốn).
Quảng cáo
Trả lời:
Định nghĩa mảng hai chiều và cách khai báo mảng hai chiều trong Python
Định nghĩa mảng hai chiều
Mảng hai chiều là một cấu trúc dữ liệu cho phép lưu trữ các phần tử trong một bảng có hàng và cột. Mỗi phần tử trong mảng hai chiều có thể được truy cập bằng cách sử dụng hai chỉ số: chỉ số hàng và chỉ số cột.
Cách khai báo mảng hai chiều trong Python
Trong Python, có nhiều cách để khai báo và sử dụng mảng hai chiều, nhưng phổ biến nhất là sử dụng danh sách lồng nhau (nested lists). Dưới đây là một số cách để khai báo mảng hai chiều trong Python:
1. Sử dụng danh sách lồng nhau:
# Khai báo mảng hai chiều 3x3
array = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# Truy cập phần tử tại hàng 1, cột 2
element = array[1][2] # Giá trị là 6
2. Sử dụng vòng lặp để tạo mảng hai chiều:
# Tạo mảng hai chiều 3x3 với các giá trị ban đầu là 0
rows, cols = 3, 3
array = [[0 for _ in range(cols)] for _ in range(rows)]
Sử dụng mảng hai chiều để biểu diễn đồ thị
Có thể sử dụng mảng hai chiều để biểu diễn một đồ thị. Một trong những cách phổ biến để làm điều này là sử dụng ma trận kề (adjacency matrix).
Ma trận kề
Ma trận kề là một mảng hai chiều dùng để biểu diễn các cạnh của đồ thị. Nếu đồ thị có n đỉnh, thì ma trận kề là một ma trận vuông n x n trong đó phần tử ở hàng i và cột j có giá trị 1 nếu có cạnh nối từ đỉnh i đến đỉnh j, và 0 nếu không có cạnh nối.
Dưới đây là cách khai báo và sử dụng ma trận kề trong Python để biểu diễn đồ thị:
1. Khai báo ma trận kề cho đồ thị vô hướng:
# Số lượng đỉnh
n = 5
# Khai báo ma trận kề n x n với các giá trị ban đầu là 0
graph = [[0 for _ in range(n)] for _ in range(n)]
# Thêm cạnh (1, 2) vào đồ thị
graph[1][2] = 1
graph[2][1] = 1
# Thêm cạnh (0, 3) vào đồ thị
graph[0][3] = 1
graph[3][0] = 1
2. Khai báo ma trận kề cho đồ thị có hướng:
# Số lượng đỉnh
n = 5
# Khai báo ma trận kề n x n với các giá trị ban đầu là 0
graph = [[0 for _ in range(n)] for _ in range(n)]
# Thêm cạnh có hướng từ 1 đến 2 vào đồ thị
graph[1][2] = 1
# Thêm cạnh có hướng từ 0 đến 3 vào đồ thị
graph[0][3] = 1
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Em hãy dùng danh sách kề biểu diễn các đồ thị ở Hình 4 và Hình 5.
Câu 2:
Một hãng hàng không đưa ra lịch bay trong ngày như sau:
- Từ TP.HCM: có một chuyến đến Hà Nội, Đà Nẵng, Phú Quốc, Nghệ An và Hải Phòng;
- Từ Hà Nội: có hai chuyến đến TP.HCM và một chuyến đến Đà Nẵng, Nghệ An, Hải Phòng;
- Từ Đà Nẵng: có một chuyến đến Hải Phòng, hai chuyến bay đến TP.HCM, một chuyến đến Hà Nội;
- Từ Nghệ An: có một chuyến đến Hà Nội, một chuyến đến TP.HCM;
- Từ Hải Phòng: có một chuyển đến Hà Nội, một chuyến đến TP.HCM, và một chuyến đến Đà Nẵng;
- Từ Phú Quốc: có một chuyến đến TP.HCM.
a) Vẽ đồ thị biểu diễn các thành phố có chuyến bay giữa chúng (không quan tâm đến số lượng các chuyến bay).
b) Từ đồ thị đã vẽ được trong câu a). Hãy biểu diễn đồ thị bằng hai cách:
- Ma trận kê.
- Danh sách kể.
Câu 4:
Cho hai đồ thị G6 (Hình 6) và G7 (Hình 7). Em hãy thực hiện biểu điễn bằng hai cách:
- Ma trận kê.
- Danh sách kề.
Câu 5:
Dựa trên mô tả của hình ảnh, đồ thị G3 có thể được biểu diễn bằng ma trận kề như sau:
Trong ma trận này, các hàng và cột tương ứng với các đỉnh của đồ thị, và một giá trị ‘1’ trong ma trận biểu thị sự kết nối trực tiếp giữa hai đỉnh, trong khi giá trị ‘0’ biểu thị không có kết nối trực tiếp.
Câu 6:
Sử dụng chương trình trong bài học, hãy viết chương trình xuất ra màn hình ma trận kể biểu diễn đồ thị G2 (Hình 2) và G3 (Hình 3).
Đề thi học kì 1 Tin học 12 Kết nối tri thức có đáp án- Đề 1
263 câu Trắc nghiệm tổng hợp ôn thi tốt nghiệp THPT môn Tin học Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính có đáp án
15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 7 có đáp án
15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 8 có đáp án
15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 10 có đáp án
15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 9 có đáp án
15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 11 có đáp án
15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 14 có đáp án
về câu hỏi!