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

Chia, trị và kết hợp

Lưu trên thiết bị này
Chuyên đề lựa chọn CS: Chia để trị · Chọn bài khác

Ba bước của chia để trị

**Chia để trị (Divide and Conquer)** là cách thiết kế thuật toán bằng các bài toán nhỏ hơn: | Bước | Việc thực hiện | |---|---| | Chia (Divide) | Tách bài toán thành các phần nhỏ có thể xử lí riêng. | | Trị (Conquer) | Giải bài toán nhỏ; nếu còn lớn thì tiếp tục chia. | | Kết hợp (Combine) | Dùng kết quả các phần để có lời giải của bài toán ban đầu. | Khi bài toán nhỏ cùng dạng với bài toán gốc, có thể dùng lời gọi đệ quy. Chia để trị mô tả cách tổ chức lời giải; đệ quy là một cách cài đặt. Một thuật toán vẫn có thể giữ ý tưởng chia để trị khi được viết bằng vòng lặp.

Chỉ giữ nhóm còn có thể chứa bi giả

Ba khả năng của lần cân đầu. Mỗi nhánh chỉ tiếp tục với nhóm còn có thể chứa viên giả.
Ba khả năng của lần cân đầu. Mỗi nhánh chỉ tiếp tục với nhóm còn có thể chứa viên giả.
Mở hình lớn
Có năm viên đánh số 1–5; **đúng một viên giả nặng hơn**, bốn viên thật có cùng khối lượng. Cân nhóm {1,2} với nhóm {3,4}, để riêng viên 5. Nếu cân bằng, bốn viên trên cân đều thật nên viên 5 là giả. Nếu nhóm {1,2} nặng hơn, chỉ cần xét hai viên ấy; cân 1 với 2 để chọn viên nặng. Nhóm {3,4} nặng hơn được xử lí tương tự. Theo cách này, có nhánh dừng sau một lần cân, nhánh dài nhất cần hai lần. Một lần cân chỉ có ba kết quả: trái nặng, phải nặng hoặc cân bằng. Vì có năm khả năng về viên giả, một lần chưa đủ phân biệt mọi trường hợp. Cách trên cần nhiều nhất hai lần, nên hai là số lần cân tối thiểu để bảo đảm tìm được viên giả. Điều kiện hai nhóm có cùng số viên và chỉ một viên giả nặng hơn là căn cứ để suy ra nhóm cần giữ.

Giữ đúng danh tính khi bài toán nhỏ trả kết quả

Theo cách chia nhóm trong sách, với chín viên, cân 4 viên với 4 viên và để riêng 1 viên. Nếu cân bằng thì chọn ngay viên để riêng. Nếu lệch, xét 4 viên ở bên nặng; tiếp tục cân 2 với 2 rồi 1 với 1. Nhánh dài nhất của **cách chia 4+4+1 này** cần ba lần cân. Bước kết hợp là xác định viên tìm được trong nhóm nhỏ chính là viên mang nhãn nào của bộ ban đầu. Không cần cân lại toàn bộ sau khi đã xác định viên giả. Số lần cân đang nêu gắn với cách chia nhóm cụ thể ấy.

Bài luyện

Cân {1,2} với {3,4} trong bài và hai bên cân bằng. Viên nào là giả?
Chọn một đáp án

Bài luyện

Nhóm {1,2} nặng hơn nhóm {3,4}. Bước tiếp theo theo sơ đồ là gì?
Chọn một đáp án

Bài luyện

Theo cách chia 4+4+1 rồi 2+2 rồi 1+1, nhánh dài nhất của bài toán chín viên cần bao nhiêu lần cân?
Chọn một đáp án

Bài luyện

Trong ví dụ tìm bi giả, bước kết hợp cần giữ điều gì?
Chọn một đáp án

Đang học