Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
trinh

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?

Trần Tuyết Như
28 tháng 3 2015 lúc 14:21

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.

 123456789
C011011110
L111101101
 101112131415161718
C110111101
L111011011
 19202122232425  
C1011110  
L1101101  

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).

Le Thi Khanh Huyen
28 tháng 3 2015 lúc 17:36

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.

 123456789
C011011110
L111101101
 101112131415161718
C110111101
L111011011
 19202122232425  
C1011110  
L1101101  

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).

Hồ Phạm Anh Nguyễn
28 tháng 3 2015 lúc 19:40

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.

 123456789
C011011110
L111101101
 101112131415161718
C110111101
L111011011
 19202122232425  
C1011110  
L1101101  

Như vậy f(C, 25) = 0, tức là Bình có chiến thuật thắng.

Michiel Girl mít ướt
28 tháng 3 2015 lúc 17:36

mk biết là bn chép bài trên mạng!!


Các câu hỏi tương tự
Nghiêm Thế Trọng
Xem chi tiết
hoshimiya ichgo
Xem chi tiết
Hồ Thị Ngọc Như
Xem chi tiết
Nguyễn Thắng Phúc
Xem chi tiết
Minami Kotori
Xem chi tiết
Bé Chinn
Xem chi tiết
Đinh Ánh Dương
Xem chi tiết
Đinh Ánh Dương
Xem chi tiết
Nguyen Minh Thanh
Xem chi tiết