Đáp án Bài Toán 'trò Chơi Bốc Kẹo' - VnExpress
Có thể bạn quan tâm
Đề bài:
Hai bạn An và Bình chơi trò chơi bốc kẹo. Ban đầu trên bàn có 25 viên kẹo. Bắt đầu từ An, hai bạn luân phiên nhau bốc kẹo, mỗi lần được phép bốc 1, 2 hoặc 3 viên. Đến khi hết kẹo trên bàn ai bốc được tổng cộng một số chẵn viên kẹo sẽ thắng.
Hỏi ai là người có chiến thuật thắng nếu cả hai cùng chơi đúng?
Hướng dẫn giải:
Ta giải bài toán bằng cách đi ngược từ dưới lên. Vì tổng số kẹo là 25 nên nếu cuối cùng một người bốc được số lẻ viên kẹo sẽ thua, do người kia sẽ bốc được một số chẵn viên kẹo.
Ta ký hiệu mỗi trạng thái đến lượt An hay Bình đi bằng hai tham số (CL, k), trong đó CL là tính chẵn lẻ của số kẹo mà người chơi đang có, k là số kẹo còn lại trên bàn. Ta viết f(CL, k) = 1 nếu người đi có chiến thuật thắng từ trạng thái này. Trong trường hợp ngược lại f(CL, k) = 0. Mục đích của chúng ta là cần tính F(C, 25). Nếu giá trị này bằng 1 thì An thắng, ngược lại nếu giá trị này bằng 0 thì Bình thắng.
Ví dụ f(C, 1) = 0 vì người đi đang có số chẵn viên kẹo và bắt buộc phải bốc viên kẹo cuối cùng, kết thúc cuộc chơi. f(C, 2) = 1 vì người đi đang có số chẵn viên kẹo và có thể bốc 2 viên kẹo cuối cùng để giành chiến thắng. Cũng như vậy f(C, 3) = 1 (bốc 2). Tương tự như thế thì f(L, 1) = 1 (bốc 1), F(L, 2) = 1 (bốc 1), F(L, 3) = 1 (bốc 3).
Để tính f(C, 4) ta để ý rằng lúc này đối thủ đang có số lẻ viên kẹo. Nếu ta bốc 1, 2 hoặc 3 viên thì sẽ đưa đối thủ đến các trạng thái (L, 3), (L, 2), (L, 1) tương ứng, và đều là các trạng thái thắng của đối thủ. Suy ra f(C, 4) = 0. Với f(L, 4) ta bốc 3 viên, đưa đối thủ vào trạng thái thua (C, 1) và giành chiến thắng.
Tiếp tục, để tính f(C, 5) ta để ý rằng lúc này đối thủ đang có số chẵn viên kẹo. Do đó ta bốc 1 viên và đưa đối thủ vào trạng thái (C, 4) là trạng thái thua, như vậy f(C,5) = 1. Ngược lại từ (L, 5) ta chỉ có thể đưa về (L, 4), (L, 3), (L, 2) là các trạng thái thắng, suy ra f(L, 5) = 0.
Nói tóm lại, một trạng thái là thua nếu mọi cách đi đều đưa về trạng tháng thắng (cho đối thủ), một trạng thái là thắng nếu có một cách đi đưa về trạng thái thua (cho đối thủ). Bằng lý luận này, ta lập được bảng giá trị sau.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
| C | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
| L | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | |
| C | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
| L | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
| C | 1 | 0 | 1 | 1 | 1 | 1 | 0 | ||
| L | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
Như vậy f(C, 25) = 0, tức là Bình có chiến thuật thắng.
(Đây là bài toán khá khó trong lý thuyết thuật toán và trò chơi).
Trần Nam DũngĐH Khoa học Tự nhiên, ĐH Quốc gia TP HCM
- Bài toán 'trò chơi bốc kẹo'
Từ khóa » Trò Chơi Bốc Diêm
-
Trò Chơi Bốc... - Đấu Trường IQ, Profile Picture - Facebook
-
Xây Dựng Thuật Toán Giải Bài Toán Trò Chơi Bốc Diêm Với Số ... - Hoc24
-
Bài Toán Trò Chơi Thú Vị - Tài Liệu Text - 123doc
-
Trò Chơi Bốc Diêm - Cộng đồng Hỏi đáp Nhanh
-
Chơi Bốc Diêm Trên Mặt Bàn Có 18 Que Diêm. Hai Người Tham Gia ...
-
Bài Toán Có 125 Que Diêm Trên Bàn, Bốc Từ 1 đến 4 Que
-
Có 26 Que Diêm , Hai Người Chơi Lần Lượt Bốc , Mỗi Lần Bốc Từ 1 đến ...
-
Giải Thích Giúp đề Bài Tập Trò Chơi Bốc Sỏi - Dạy Nhau Học
-
Bài Trò Chơi Cùng Nhau Qua Cầu - Quê Hương
-
Cần Giúp Về Thuật Toán Trò Chơi Bốc Sỏi - Programming - Dạy Nhau Học
-
Bài Toán đấu Trí: Bốc Sỏi- Bốc Diêm - Số Học 6 - Phạm Huy Hoạt
-
Lập Trình Trò Chơi Bốc Sỏi Trong Pascal - Sách Giải
-
[PDF] Bốc Sỏi - VN SPOJ