Hai bạn An và Bình chơi trò chơi bốc kẹo. Ban đầu trên bàn có 100 viên kẹo. Bắt đầu từ An, hai bạn thay nhau bốc. Mỗi lần bốc chỉ được phép bốc 1, 2 hoặc 3 viên. Ai đến lượt mình không còn kẹo để bốc thì thua. Hỏi ai là người có chiến thuật thắng nếu An là người bốc trước ?
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
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).
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).
bài mày giống của tao ihet cả đoạn tom và jerry nữa nhưng của tao là lớp 6
Đáp án
Khi bốc theo qui tắc của trò chơi thì cuối cùng số bi còn lại là 1 viên. Khi còn 1 viên thì không ai có thể bốc tiếp được nữa vì nếu bốc nốt 1 viên thì lại lớn hơn 1/2 số bi còn lại.
Đề bài cho chưa rõ ràng: ai đến lượt đi mà không còn bi để bốc thì thua. Sẽ có 3 cách hiểu về trường hợp số bi còn lại bằng 1:
- Trò chơi kết thúc hòa cho cả hai đối thủ vì bi vẫn còn nhưng không còn cách đi hợp lệ. Trong trường hợp này thì trò chơi luôn kết thúc hòa.
- Trò chơi kết thúc thua với người đến lượt đi mà số bi còn lại là 1. (vì đến lượt đi mà không bốc được nữa là thua). Như vậy người nào đến lượt đi mà số bi còn lại là 1 thì thua. Lần ngược lên, người nào đến lượt mình đi mà số bi còn lại là 2 sẽ thắng; Người nào đến lượt đi mà số bi còn lại là 3 sẽ thua (vì chỉ được bốc 1 viên và số bi còn lại là 2 nhưng quyền bốc tiếp theo thuộc người kia); Người nào đến lượt đi mà số bi còn lại là 4 sẽ thắng (bốc 1 viên); Người nào đến lượt đi mà số bi còn lại là 5 sẽ thắng (bốc 2 viên); Người nào đến lượt đi mà số bi còn lại là 6 sẽ thắng (bốc 3 viên); Người nào đến lượt đi mà số bi còn lại là 7 sẽ thua (vì bốc 1, 2 hoặc 3 viên thì còn lại 6, 5 hoặc 4 đều là tình huống thắng cho đối phương); Người nào đến lượt đi mà số bi còn lại là 11 sẽ thắng (bốc 4 viên để còn 7 viên để đối thủ rơi vào tình huống thua). Như vậy An thắng.
- Trò chơi kết thúc thắng với người bốc viên bi cuối cùng (được phép bốc viên biên cuối cùng). Lần ngược như trên thì An sẽ thua.
Bạn nào chọn đúng cho mình mình sẽ ......................................... lại!!!!