View Single Post
  #245  
Cũ 05-03-2010, 19:13
Nina Nina is offline
Kvas Nga - Квас
 
Tham gia: Nov 2007
Đến từ: TPHCM
Bài viết: 6,416
Cảm ơn: 5,003
Được cảm ơn 8,268 lần trong 3,723 bài đăng
Default

Bác nqbinhdi ạ, bài này giải cho một trường hợp cụ thể thì khá đơn giản (thực tế là bài đầu tiên em tìm được đáp án), nhưng trường hợp tổng quát thì em chưa nghĩ ra - chắc là dân nghiệp dư đi sai đường.

Cụ thể là với quy trình rút bài và lật bài như trên, thì em viết một đoạn code ngắn để sắp xếp lại thứ tự các quân bài (mới đầu đánh số các quân bài theo thứ tự từ 1 đến N). Dễ thấy là mỗi lần lật ra một quân bài, tới quân cuối cùng thì lật xuống thẳng, như vậy có nghĩa là có N-1 lần đổi thứ tự. Đoạn code ấy trên Maple như sau

Trích:
> restart;
> N:= 11;
> for i from 1 to N by 1 do
x[0,i]:= i end do:
> for k from 1 to N-1 do
x[k,N]:=x[k-1,k]:
for i from 1 to k-1 do x[k,i]:=x[k-1,i] end do;
for i from k to N-1 by 1 do x[k,i]:=x[k-1,i+1] end do:;
end do:;
> for i from 1 to N do
print(x[N-1,i]) end do;
Thế rồi đến khi tìm được dãy sắp thứ tự sau cùng (đã in ra), thì em chỉ việc gán màu của các quân bài theo yêu cầu (cụ thể là 1 đỏ 1 đen). Trong trường hợp N = 11 thì kết quả là
2-Đỏ
4-Đen
6-Đỏ
8-Đen
10-Đỏ
1-Đen
5-Đỏ
9-Đen
3-Đỏ
11-Đen
7-Đỏ

Bây giờ chỉ còn việc sắp xếp lại theo cột thứ tự các quân bài là xong

Tuy nhiên, như đã nói trên, có lẽ em chưa đi đúng hướng nên chưa hình dung được lời giải trong trường hợp tổng quát.
Trả lời kèm theo trích dẫn