TopStudy

Đáp án và lời giải

Giải SGK Chuyên đề Tin học 11 Bài 15. Bài toán xếp Hậu

Về trang đề

Câu 1

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Em có thể xếp như sau

Hình minh hoạ

Câu 2

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Trong quá trình quay lui, ta sử dụng một mảng để lưu vị trí của các quân hậu đã đặt. Mỗi lần thêm một quân hậu mới, ta kiểm tra xem nó có đặt được ở vị trí đó không bằng cách kiểm tra xem quân hậu mới đó có trùng hàng, cột hay đường chéo với bất kỳ quân hậu nào đã đặt trước đó không.

Nếu quân hậu mới đó không thể đặt được ở vị trí đó, ta quay lại đặt lại quân hậu trước đó tại một vị trí khác và tiếp tục thử các vị trí khác cho đến khi tìm được vị trí thích hợp.

Với phương pháp này, ta sẽ duyệt qua tất cả các trường hợp có thể có và đưa ra được kết quả đúng của bài toán.

Câu 3

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

A[k] cần thỏa mãn điều kiện sau:

A[k]≠A[j] voi ∀j<k∣A[k]−A[j]∣ ≠ ∣k−j∣voi ∀j<k\begin{matrix}A[k]\ne A[j]\ voi\ \forall j<k \\ |A[k]-A[j]|\ \ne \ |k-j|voi\ \forall j<k\end{matrix}

Do đó A[2] ≠ 0, 2 và | A[2]-2 | ≠2 và | A[2]-0 | ≠1 nên A[2] = 3

Do đó A[3] = 1

Câu 4

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

A[k] cần thỏa mãn điều kiện sau:

A[k]≠A[j] voi ∀j<k∣A[k]−A[j]∣ ≠ ∣k−j∣voi ∀j<k\begin{matrix}A[k]\ne A[j]\ voi\ \forall j<k \\ |A[k]-A[j]|\ \ne \ |k-j|voi\ \forall j<k\end{matrix}

Do đó A[2] ≠ 0, 3 và | A[2]-2 | ≠2 và | A[2]-3 | ≠1 nên A[2] = 1

Câu 5

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

* Thuật toán: Sử dụng kĩ thuật duyệt quay lui và in ra tất cả phương án nghiệm

* Thiết lập chương trình hoàn chỉnh giải bài toán.

Hình minh hoạ

Câu 6

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Với n = 3, bài toán có nghiệm:

Hình minh hoạ

Câu 7

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Biến ncount với từ khoá global bên trong hàm trynext() dùng để đếm số phương án thỏa mãn. Biến này được khởi tạo một lần và cập nhật giá trị nếu có phương án phù hợp. Sau khi được khởi tạo, giá trị của biến có thể thay đổi trong suốt quá trình chạy chương trình. Các hàm hoặc phương thức khác nhau trong chương trình có thể truy cập và thay đổi giá trị của biến global này.

Câu 8

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Hai phương án như sau:

Hình minh hoạ

Câu 9

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Nếu chúng ta mô phỏng lưới ô vuông đánh chỉ số các hàng từ dưới lên thì chương trình trên không còn đúng.

Nếu phải thay đổi thì cần sửa ở chỗ dòng số 5, 13, 15

Sửa i thành n - 1 - i

Câu 10

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Chương trình viết như sau

Hình minh hoạ

Thu được kết quả là:

Hình minh hoạ

Câu 11

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Tương tự, thay đổi giá trị của n ta thu được kết quả sau:

Hình minh hoạ