Bài toán trò chơi thú vị

6 2.6K 40
Bài toán trò chơi thú vị

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài toán trò chơi thú vị

Một số bài toán trò chơiNgô Minh ĐứcA. Giới thiệuTrong bài viết này chúng ta sẽ xét một số bài toán trò chơi, từ dễ đến khó. Về nguyên tắc, các bài toán trò chơi thường được cho dưới dạng: nhập vào một trạng thái của trò chơi, tìm nước đi “tốt nhất” có thể được, hoặc nhập vào một trạng thái của trò chơi, khẳng định người đi trước sẽ thắng hay thua, v.v .1. Trò chơi bốc sỏiĐây là trò chơi đơn giản nhất, luật chơi như sau:Có 2 người chơi, I và II và một đống sỏi có khối lượng là 21 viên.Mỗi nước đi được phép lấy không qúa 3 viên ra khỏi đống, nhưng phải lấy ít nhất 1 viên.Hai người lần lượt đi và người I đi trước. Ai lấy được viên sỏi cuối cùng sẽ thắng.Hướng dẫn: sau khi phân tích, dễ dàng nhận thấy người I luôn luôn thắng, chỉ cần đưa về các vị trí 20,16,12,8,4 viên sỏi là đượcTổng quát nếu mỗi bước đi không được phép lấy qúa k viên sỏi, ta sẽ có các vị trí thắng là bội số của k+1. Nếu n là bội số của k+1 thì người II thắng, còn không thì người I thắng.Nếu đổi luật thành người lấy được viên sỏi cuối cùng thì thua, ta cũng tìm được một chiến thuật chơi tốt. Vị trí thắng là các vị trí thắng ban đầu cộng thêm 1.2. Làm rỗng và phân chiaCó hai cái hộp, ban đầu một hộp chứa m viên sỏi, hộp kia chứa n viên sỏi. Ta kí hiệu là (m,n) với m>0, n>0. Hai người chơi lần lượt đi. Một nước đi được phép làm rỗng (lấy hết sỏi ra) một hộp, và chia số sỏi trong hộp còn lại vào hai hộp, với ít nhất một viên trong mỗi hộp. Người nào không đi được nữa là thua. Nhập vào: (m,n)Xuất ra: WIN nếu người đi trước thắng, LOSE nếu người đi trước thua.Hướng dẫn: Vị trí thắng là các vị trí (m,n) sao cho cả m và n đều lẻChứng minh: dùng phép quy nạp Rõ ràng (1,1) là vị trí thắngGiả sử điều khẳng định đúng với các vị trí (x,y), x,y<=n. Ta chứng minh điều khẳng đỉnh đúng với các vị trí (x,y), x,y<=n+1Ta chứng minh điều khẳng định đúng với các vị trí (m,n+1) trong đó m<=n+1. Nếu n lẻ => n+1 chẵn. Ta cần chứng minh (m,n+1) là vị trí thua. Thật vậy (m,n+1)->(1,n). Theo gỉa thiết quy nạp (1,n) là vị trí thắng. Do đó (m,n+1) là vị trí thuaNếu n chẵn => n+1 lẻ + Nếu m chẵn, ta cần chứng minh (m,n+1) là vị trí thuaThật vậy (m,n+1)->(1,m-1). Do m<=n+1 => m-1<=n. => theo gt quy nạp (1,m-1) là vị trí thắng. Do đó (m,n+1) à vị trí thua+ Nếu m lẻ, ta cần chứng minh (m,n+1) là vị trí thắngThật vậy xét một nước đi bất kỳ từ (m,n+1) ta chứng minh nó là vị trí thua - Trường hợp lấy m viên sỏi ra khỏi hộp 1Ta có (m,n+1)->(p,q) trong đó p+q=n+1, p, q<=n. Do n+1 lẻ => p chẵn hoặc q chẵn. Theo gỉa thiết quy nạp => (p,q) là vị trí thua- Trường hợp lấy n+1 viên sỏi ra khỏi hộp 2Ta có (m,n+1)->(p,q) trong đó p+q=m. Ta có p,q<=m-1<=n+1-1=n. Do m lẻ => p chẵn hoặc q chẵn. Theo gia thiết quy nạp => (p,q) là vị trí thuaVậy (m,n+1) là vị trí thắngTương tự đối với các vị trí có dạng (n+1, m) trong đó m<=n+13. Ăn sôcôlaMột thanh sôcôla có dạng hình chữ nhật mxn, chia thành các ô vuông. Hai người chơi lần lượt đi. Một nước đi được phép bẻ một miếng sôcôla về phía góc trên phải để ăn. Ô (1,1) là vị trí có thuốc độc, người nào ăn phải thuốc độc trước là thua. Ví dụ ban đầu thanh sôcôla có kích thước 8x3, người I bẻ tại (6,2), người 2 bẻ tại (2,3) thì còn lại thanh sôcôla như hình trên. Ô có dấu gạch chéo là ô có thuốc độc.Chứng minh rằng luôn tồn tại một nước đi thắng (nước đi đảm bảo thắng lợi) cho người đi trước.Hướng dẫn: Xét nước đi chỉ bẻ 1 ô duy nhất (m,n), nếu đây là nước đi thắng, ta có điều phải chứng minh. Ngược lại, nếu đây là một nước đi thua, thế thì từ vị trí này người II sẽ có một nước đi thắng, nhưng rõ ràng vị trí mới đạt được này sau khi người II đi cũng có thể đạt được từ vị trí ban đầu. Bằng cách đi đến vị trí này ngay từ đầu, người I sẽ có một nước đi thắng. Vậy luôn tồn tại nước đi thắng cho người đi trước.4. Trò chơi 3 đống sỏiCó 3 đống sỏi, lần lượt gồm a,b,c viên sỏi. Hai người lần lượt đi. Mỗi nước đi được phép chọn một đống bất kỳ và lấy số lượng viên sỏi tùy ý ra khỏi đống đó, nhưng phải lấy ít nhất 1. Người nào lấy được viên sỏi cuối cùng là thắng.Nhập vào: a,b,cXuất ra: LOSE nếu khẳng định người đi trước thua, còn không xuất ra a’,b’,c’ là nước đi “tối ưu” của người đi trước. Nếu có nhiều nước đi tối ưu, chỉ cần xuất ra 1.Hướng dẫn: vị trí thắng là các vị trí thỏa điều kiện: a xor b xor c = 0Chứng minh: dựa vào tính chất của phép xor:a xor a = 0 với mọi aa xor b = b xor a(a xor b) xor c = a xor (b xor c)Vậy cách đi là như sau: từ vị trí (a,b,c)Đặt a’=b xor c, b’ = a xor c, c’=b xor a. Nếu a’ Nếu b’ Nếu c’<> B. Một số trò chơi khác1. Đồng xu lăn Có một hàng các ô vuông được đánh số 0,1,2,3, . Có một số lượng hữu hạn các đồng xu được đặt trên các ô vuông, có thể có nhiều đồng xu trên cùng một ô. Hai người chơi lần lượt đi. Mỗi nước đi được phép lấy một trong các đồng xu và di chuyển về một ô bất kỳ ở bên trái. Trò chơi kết thúc khi tất cả đồng xu đều nằm ở ô 0. Người đi cuối cùng thắng. Dữ liệu vào: DONGXU.INDòng 1: n – số lượng ô vuông ban đầun dòng sau, dòng i chứa một số nguyên là số đồng xu trên ô i tại thời điểm ban đầuKết qủa: DONGXU.OUTGồm 1 dòng duy nhất, là “WIN” nếu khẳng định người đi trước thắng, “LOSE” nếu khẳng định người đi trước thua2. Đồng xu trên cầu thangMột cầu thang với n bậc chứa các đồng xu trên một số bậc. Bậc i chứa xi đồng xu, i=1,2, n. Một nước đi được phép di chuyển một số dương đồng xu từ bậc i xuống bậc i-1. Đồng xu chạm phải sàn nhà (bậc 0) được loại khỏi trò chơi. Trò chơi kết thúc khi mọi đồng xu đã nằm trên sàn nhà. Hai người chơi lần lượt đi, người đi cuối cùng thắng.Dữ liệu vào: CAUTHANG.INDòng 1: n – số lượng bậc thangn dòng sau, dòng i chứa một số nguyên không âm xi là số đồng xu trên bậc thang i tại thời điểm ban đầuDữ liệu vào đảm bảo người đi trước luôn có nước đi thắngKết qủa file: DONGXU.OUT: xuất ra nước đi tối ưu cho người đi trướcGồm 2 số nguyên i k, i là số hiệu bậc thang cần chuyển đồng xu xuống, k là số đồng xu cần chuyển xuống. Nếu có nhiều nước đi tối ưu cần xuất ra nước đi có số hiệu bậc thang phải chuyển là nhỏ nhất. 3. Ít nhất một nửa Có n đống sỏi. Hai người chơi lần lượt đi. Mỗi nước đi được phép chọn một đống sỏi bất kỳ và lấy ít nhất một nửa số sỏi trong đống đó. Người lấy được viên sỏi cuối cùng là thắng. Hãy giúp xác định người đi trước thắng hay thua. (để phục vụ cho một tổ chức cá cược)Dữ liệu vào: MOTNUA.INDòng 1: n - số đống sỏin dòng sau: dòng i gồm 1 số nguyên dương là số lượng viên sỏi trên đống iKết qủa: MOTNUA.OUTIn ra “WIN” nếu khẳng định người đi trước thắng, “LOSE” nếu khẳng đỉnh người đi trước thua.4. Trò chơi bảngBàn cờ là một bảng một chiều gồm các hố, có thể lên đến 60 hố. Mỗi người chơi cầm một trong hai loại cờ, trắng hoặc đỏ (kí hiệu W và R). Một nước đi được phép di chuyển một quân cờ bất cứ đâu trên bàn cờ, miễn là nó không chạm hoặc nhảy qua quân cờ khác. Người nào không đi được nữa là thua. Nếu trò chơi chỉ có 1 quân cờ mỗi loại, cách chơi đơn giản là đi quân cờ đến sát cạnh quân đối phương. Với 2 quân cờ mỗi loại, trò chơi trở nên phức tạp hơn:Hơn nữa có thể xảy ra trạng thái hòa:Yêu cầu: nếu người đi trước có thể thắng, hãy xác định nước đi tối ưu, còn không thì xác định kết cục là người đi trước thua hay hòa.Dữ liệu vào: BOARD.INMột dòng duy nhất gồm một chuỗi 60 ký tự, mỗi ký tự mô tả một hố trên bàn cờ: ‘0’ là hố rỗng, ‘1’ là quân cờ thuộc về người I, ‘2’ là quân cờ thuộc về người II. Hai người chơi có cùng số lượng quân cờ, và có ít nhất 2 hố rỗng trên bàn cờ. Kết qủa: BOARD.OUT Xuất ra:+ ‘0’ nếu ván đấu kết thúc hòa+ ‘2’ nếu người I sẽ thua+ ‘1’ nếu người I sẽ thắng. Trong trường hợp này theo sau ‘1’ phải mô tả nước đi tối ưu, gồm 2 số, là thứ tự của hố nguồn và hố đích mà quân cờ di chuyển. Nếu có nhiều nước đi, chọn nước đi có hố nguồn mang thứ tự nhỏ nhất. Nếu vẫn có nhiều nước đi, trong các nước đi này, chọn nước đi có hố đích mang thứ tự nhỏ nhất. . bài toán trò chơiNgô Minh ĐứcA. Giới thiệuTrong bài viết này chúng ta sẽ xét một số bài toán trò chơi, từ dễ đến khó. Về nguyên tắc, các bài toán trò chơi. của trò chơi, tìm nước đi “tốt nhất” có thể được, hoặc nhập vào một trạng thái của trò chơi, khẳng định người đi trước sẽ thắng hay thua, v.v...1. Trò chơi

Ngày đăng: 07/09/2012, 10:56

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan