Hệ đếm được định nghĩa như trên là hệ đếm theo vị trí, tức là mỗi hệ số a được i gọi là các chữ số của a ở vị trí khác nhau có giá trị khác nhau hàng “đơn vị”, Như vậy, nếu chọn 2 làm
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
* * *
ĐOÀN VĂN LỚI
MỘT SỐ BÀI TOÁN TRÕ CHƠI
CÓ NỘI DUNG TOÁN HỌC
LUẬN VĂN THẠC SỸ KHOA HỌC
Hà Nội , Năm 2012
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
* * *
ĐOÀN VĂN LỚI
MỘT SỐ BÀI TOÁN TRÕ CHƠI
CÓ NỘI DUNG TOÁN HỌC
Chuyên ngành : Phương pháp toán sơ cấp
Mã số : 60 46 40
LUẬN VĂN THẠC SỸ KHOA HỌC
Người hướng dẫn khoa học : PGS.TS Tạ Duy Phượng
Hà Nội , Năm 2012
Trang 3MỤC LỤC
Trang
Mục lục……… 1
Lời nói đầu……… 2
Chương 1 Giải một số bài toán trò chơi nhờ công cụ hệ đếm cơ số 2…… …… 4
§1 Hệ đếm cơ số 2 ……… … 4
§2 Máy đọc ý nghĩ 6
§3 Trò chơi Nim 7
§4 Giải bài toán Tháp Hà Nội nhờ hệ đếm cơ số 2 21
Chương 2 Giải một số bài toán trò chơi cơ học nhờ công cụ mã Gray cơ số 2…… 31
§1 Mã Gray cơ số 2 ……… ……… 31
§2 Mã Gray, trò chơi Tháp Hà Nội và trò chơi Hamilton trên đa diện đều
41 §3 Baguenaudier hay trò chơi tháo vòng Trung Hoa… ……… 48
Chương 3 Một số ví dụ toán trò chơi 66
Kết luận……… 74
Tài liệu tham khảo……… 75
Trang 4LỜI NÓI ĐẦU
Trò chơi và lí thuyết trò chơi có lịch sử phát triển lâu đời Nó được nhiều nhà toán học nổi tiếng (L Euler, U Hamilton, E Lucas, ) nghiên cứu và làm phong phú nội dung Nó cũng được nhiều chuyên gia về trò chơi toán học (E Lucas, H
E Dudeney, W W Rouse Ball, M Gardner, ) phổ biến rộng rãi Nhiều lĩnh vực của toán học (Lí thuyết tập hợp, lí thuyết đồ thị, toán tổ hợp, hệ đếm, tối ưu, ) được phát triển gắn liền với lí thuyết trò chơi, đồng thời toán học cũng là những công cụ hữu hiệu để giải quyết nhiều bài toán trò chơi Với sự phát triển của công nghệ thông tin, các bài toán trò chơi thu hút sự quan tâm đặc biệt của các chuyên gia toán-tin học, nhiều bài toán trò chơi được giải nhờ công cụ máy tính, đồng thời các bài toán trò chơi cũng là những thí dụ minh họa tốt trong xây dựng thuật toán và kĩ thuật lập trình Vào những năm 50 của thế kỉ trước, với đóng góp của các nhà toán học lớn (Von Neuman, J F Nash, R Isaacs, L S Pontriagin, N Krasovskii, ), lí thuyết trò chơi đã phát triển thành một ngành toán học độc lập và có nhiều ứng dụng trong thực tế (kinh tế, quân sự, công nghệ, ) Nhiều nhà toán học đã được giải thưởng Nobel vì những đóng góp vào
lí thuyết trò chơi và ứng dụng lí thuyết này trong kinh tế
Có khá nhiều sách tiếng nước ngoài (tiếng Anh, tiếng Nga, tiếng Pháp, ) viết về các trò chơi có nội dung toán học Tuy nhiên, các sách về toán trò chơi ở Việt Nam nói chung còn rất ít, đặc biệt là những tài liệu đi sâu tìm hiểu nội dung toán học của các bài toán trò chơi
Luận văn Một số bài toán trò chơi có nội dung toán học có mục đích trình bày
một số bài toán trò chơi có lời giải sử dụng các công cụ toán học, chủ yếu là sử dụng hệ đếm cơ số 2 và mã Gray cơ số 2
Luận văn gồm Phần mở đầu, ba Chương chính và Tài liệu tham khảo
Chương 1 trình bày lời giải một số bài toán trò chơi nhờ công cụ hệ đếm cơ số 2 Chương 2 trình bày lời giải một số bài toán trò chơi nhờ mã Gray cơ số 2
Trang 5Chương 3 tập hợp một số ví dụ trong các dạng toán trò chơi
Lý thuyết trò chơi có cơ sở toán học sâu sắc Nó liên quan đến nhiều kiến thức của các lí thuyết toán học như lí thuyết đồ thị (đồ thị liên thông, đường đi đóng trên đồ thị, ), mô hình cây, không gian trạng thái, lí thuyết tối ưu, độ phức tạp tính toán, Chúng tôi không có tham vọng trình bày đầy đủ các kiến thức sâu sắc ấy của lí thuyết trò chơi hay các lí thuyết toán học liên quan ngay cả trong các trò chơi xét trong khuôn khổ luận văn này, mà chúng tối chỉ cố gắng mô tả lịch sử trò chơi và trình bày lời giải chúng nhờ công cụ hệ đếm cơ số 2
Luận văn được hoàn thành dưới sự hướng dẫn tận tình của PGS.TS Tạ Duy Phượng, Viện Toán học Em xin bày tỏ lòng biết ơn sâu sắc nhất đối với Thầy
và xin được cám ơn Thầy đã cung cấp nhiều tài liệu đồng thời cho phép sử dụng bản thảo các cuốn sách của Thầy về toán Trò chơi
Tôi xin được cảm ơn khoa Toán, khoa Sau Đại học trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội đã quan tâm giúp đỡ, tạo điều kiện thuận lợi cho tôi thực hiện kế hoạch học tập
Xin được cảm ơn người thân, đồng nghiệp, bạn bè đã cổ vũ động viên tôi trong suốt quá trình học cao học và làm luận văn
Hà Nội, 31.12.2011
Đoàn Văn Lới
Trang 6Chương 1
GIẢI MỘT SỐ BÀI TOÁN TRÕ CHƠI NHỜ CÔNG CỤ HỆ ĐẾM CƠ SỐ 2
§1 Hệ đếm cơ số 2
Cho p là một số tự nhiên bất kì Theo thuật toán chia Euclid, mọi số tự nhiên a
đều có thể biểu diễn duy nhất dưới dạng
Như vậy, nếu chọn p làm cơ số của hệ đếm, thì mọi số tự nhiên a có thể biểu
diễn dưới dạng a a a a k k1 1 0p trong hệ đếm cơ số p
Nếu p 10 thì ta có hệ đếm cơ số 10 Do thói quen, lịch sử, truyền thống và thuận tiện, hệ đếm cơ số 10 được sử dụng rộng rãi trong cuộc sống hiện đại
Hệ đếm được định nghĩa như trên là hệ đếm theo vị trí, tức là mỗi hệ số a (được i
gọi là các chữ số của a ) ở vị trí khác nhau có giá trị khác nhau (hàng “đơn vị”,
Như vậy, nếu chọn 2 làm cơ số trong hệ đếm cơ số 2, thì mọi số tự nhiên đều có
một biểu diễn duy nhất trong hệ đếm cơ số 2 Các chữ số của nó (chỉ có thể bằng
0 hoặc bằng 1) chính là các hệ số trong phân tích số đã cho dưới dạng lũy thừa của 2 Thí dụ, ta có,
Hệ đếm cơ số 2 được sử dụng từ thời cổ đại, thí dụ, Kinh Dịch (Trung Hoa Hơn
2000 năm trước công nguyên) được xây dựng dựa trên hai gạch (hai kí hiệu),
Trang 7một gạch ngắn và một gạch dài, tương ứng với chữ số 0 và chữ số 1 trong hệ đếm cơ số 2 Dưới đây là quan hệ giữa Kinh Dịch và hệ đếm cơ số 2 (trong cuốn sách của E Lucas, xem [13], trang 174)
Mặc dầu vậy, chỉ với nhà toán học vĩ đại người Đức Leibnitz, hệ đếm cơ số 2 mới được xây dựng một cách hoàn chỉnh Leibnitz nhìn thấy trong hệ đếm cơ số
2 biểu hiện của chân lí siêu hình sâu sắc Số 0 đối với Leibnitz là biểu tượng của
sự không tồn tại, trống rỗng, còn số 1 là biểu tượng của tồn tại hay vật chất Ông coi số 0 cũng quan trọng và cần thiết như số 1 đối với Đấng tạo hóa, bởi vì vũ trụ được tạo thành từ vật chất thuần túy không thể tách rời khỏi khoảng không trống rỗng, khoảng không này không bị nhiễu loạn bởi vũ trụ và được biểu tượng bởi số 0 Theo Leibnitz, mọi thứ trong thế giới được hình thành từ hai cực đối lập: tồn tại và không tồn tại, cũng như mọi số được biểu diễn trong cơ số 2 chỉ bởi các số 0 và 1
Từ thời Leibnitz cho mãi tới gần đây, người ta vẫn thường coi hệ đếm cơ số 2 chỉ là một thứ gì đó kì lạ và hấp dẫn, nhưng không có nhiều ý nghĩa thực tiễn Chỉ khi xuất hiện máy tính điện tử, vai trò của hệ đếm cơ số 2 mới được xác lập Rất nhiều bộ phận của máy tính điện tử làm việc theo nguyên lí “có-không” hay
Trang 8“0-1”: Dòng điện hoặc là chạy theo dây dẫn, hoặc không; công tắc hoặc tắt, hoặc bật; cực của nam châm hoặc là bắc, hoặc là nam; một ô nhớ chỉ có thể ở một trong hai trạng thái chứa thông tin hoặc rỗng (không chứa thông tin) Điều này cho phép xây dựng các máy tính có khả năng xử lí các dữ liệu được mã hóa trong hệ đếm cơ số 2 với tốc độ cực nhanh và độ chính xác tuyệt đối
Nhiều trò chơi có thể giải nhờ công cụ hệ đếm cơ số 2: trò chơi với “máy đọc ý nghĩ”, trò chơi Nim, trò chơi Tháp Hà Nội,
Trong các bài, mục tiếp theo, ta sẽ mô tả các trò chơi này và giải chúng bằng công cụ hệ đếm cơ số 2
§2 Máy đọc ý nghĩ
Xét trò chơi được trang bị một “máy đọc ý nghĩ”, tức là ta có một (một số) bảng lập sẵn, đóng vai trò như các máy phiên dịch các số trong hệ đếm cơ số 10 sang
hệ đếm cơ số 2 Nhờ đó mà ta có thể “đọc” được người đối diện đã nghĩ số nào
Thí dụ 2.1 Giả sử bạn chọn một số bất kì trong khoảng từ 1 đến 1000 Tôi sẽ hỏi
bạn 10 câu hỏi, bạn có quyền trả lời “đúng” hoặc “sai” Dựa trên 10 câu trả lời của bạn, tôi sẽ khẳng định được bạn đã chọn số nào Tại sao?
Giải Các câu hỏi lần lượt như sau
Câu thứ nhất: Lấy số đã chọn chia cho 2 Hỏi phép chia có dư hay không?
Nếu bạn trả lời là “không” thì tôi viết số 0, còn nếu câu trả lời là “có” thì tôi viết chữ số 1
Câu thứ hai: Lấy thương của phép chia vừa rồi chia cho 2 Hỏi phép chia có dư
hay không?
Nếu câu trả lời là “không” thì tôi viết số 0, còn nếu câu trả lời là “có” thì tôi viết chữ số 1 vào phía trước (về bên trái) số đã viết (chữ số 0 hoặc chữ số 1) của câu trả lời thứ nhất
Các câu hỏi tiếp theo cũng tương tự: Lấy thương của phép chia vừa xong chia cho 2 Hỏi phép chia có dư không?
Trang 9Nếu câu trả lời là “không” thì viết chữ số 0, còn nếu câu trả lời là “có” thì viết chữ số 1 trước số đã viết
Sau 10 lần trả lời, ta nhận được 10 chữ số chỉ gồm các chữ số 0 và 1, chữ số đầu tiên bao giờ cũng là chữ số 1 Như vậy, hệ thống 10 câu hỏi trên chính là cách chuyển biểu diễn của một số đã cho (dưới 1000) từ hệ đếm cơ số 10 sang hệ đếm cơ số 2 Hơn nữa, 10 câu hỏi là đủ, bởi vì mọi số từ 0 đến 1000 đều có thể viết được dưới dạng một số trong hệ đếm cơ số 2 với không quá 10 chữ số (210 1024 10000000000 2) Vì số ban đầu chưa biết nên bây giờ chỉ cần chuyển số nhận được trong hệ đếm cơ số 2 sang hệ đếm cơ số 10, ta khôi phục được số ban đầu
Thí dụ, sau 10 lần trả lời, ta nhận được số 1010011010 Đổi số này từ hệ đếm cơ
số 2 sang hệ đếm cơ số 10 theo định nghĩa ta được 10100110102 667
Vậy số ban đầu bạn chọn là 667 Kiểm tra lại:
3.1 Giới thiệu trò chơi Nim
Người Trung Quốc thời xưa có trò chơi gọi là trò chơi Nim Nội dung của trò
chơi này như sau: Có ba đống sỏi, hai người chơi lần lượt lấy một số sỏi bất kì (khác 0) từ một trong ba đống đó (và mỗi lần chơi chỉ lấy sỏi từ một đống) Ai là người nhặt viên sỏi cuối cùng thì người đó thắng Có hay không một chiến lược chơi để người đi trước thắng?
Trang 10Giải Các viên sỏi cũng có thể được thay thế bởi các đồ vật khác, thí dụ, trẻ em
thường dùng các que diêm hoặc các mảnh bìa,
vì vậy trò chơi này cũng được gọi là trò chơi
ăn diêm Người lớn thường dùng các đồng tiền
xu đặt lên trên bàn các quầy bar Dạng phổ
biến nhất của trò chơi Nim là trò chơi gồm 12
đồng xu đặt thành ba hàng với 3, 4, 5 đồng xu Hình 3.1 trong mỗi hàng (Hình 3.1)
Qui tắc chơi của trò chơi Nim rất đơn giản: Hai người chơi lần lượt nhặt các đồng xu (ít nhất một đồng) chỉ từ một hàng nào đó Người nào nhặt đồng xu cuối cùng thì người đó thắng Cũng có thể nêu qui tắc ngược lại: ai phải nhặt đồng xu cuối cùng thì người đó thua
Ta có một số nhận xét đơn giản nhưng rất cơ bản sau đây
Nhận xét 1 Nếu sau một số lượt đi, chỉ còn lại hai hàng với số đồng xu bằng
nhau và đến lượt người chơi thứ hai thì người chơi thứ nhất thắng (trong trò chơi với qui tắc người nhặt đồng xu cuối cùng là người thắng)
Chứng minh Vì số đồng xu trong hai hàng như nhau nên đến lượt người chơi
thứ hai, anh ta phải lấy một số đồng xu từ một hàng, do đó số đồng xu trong hai hàng khác nhau Nếu người thứ hai nhặt toàn bộ xu ở một hàng thì người thứ nhất cũng nhặt toàn bộ xu ở hàng còn lại và thắng Nếu sau khi người thứ hai đi
mà vẫn còn hai hàng thì người thứ nhất chọn chiến lược: nhặt số đồng xu bằng chính số đồng xu mà người chơi thứ hai đã nhặt, nhưng ở hàng khác Số đồng xu
ở hai hàng lại bằng nhau Cứ tiếp tục như vậy, đến khi còn lại mỗi hàng đúng một đồng xu Người thứ hai buộc phải nhặt một đồng xu ở một hàng, người thứ nhất nhặt đồng xu cuối cùng ở hàng còn lại và thắng
Trang 11Hệ quả 1 Nếu sau một số bước, số đồng xu trong ba hàng chỉ còn lại là a b c , ,
với a b và đến lượt người thứ hai thì người thứ hai thắng (theo qui tắc kết
thúc trò chơi ai là người lấy viên bi cuối cùng người đó thắng)
Chứng minh Người thứ hai chỉ việc lấy tất cả c đồng xu ở hàng thứ ba, còn lại
hai hàng, mỗi hàng có số đồng xu bằng nhau Theo nhận xét 1, đến lượt người chơi thứ nhất (đóng vai trò người chơi thứ hai trong Nhận xét 1) và do đó người chơi thứ hai (đóng vai trò người chơi thứ nhất trong Nhận xét 1) là người thắng
Nhận xét 2 Sau một số lượt đi, nếu chỉ còn lại hai hàng với số đồng xu bằng
nhau và số đồng xu ở mỗi hàng lớn hơn 1, đến lượt người chơi thứ hai thì người chơi thứ nhất thắng (trong qui tắc người nhặt đồng xu cuối cùng là người thua)
Chứng minh Trước tiên ta thấy rằng, nếu còn hai hàng với chỉ một đồng xu ở
mỗi hàng và đến lượt người chơi thứ hai thì người chơi thứ nhất thua (theo qui tắc người nào nhặt đồng xu cuối cùng là thua)
Vì chỉ có hai hàng và số đồng xu trong hai hàng như nhau nên đến lượt người chơi thứ hai, anh ta phải lấy một số đồng xu từ một hàng, do đó sau khi anh ta đi xong thì số đồng xu trong hai hàng là khác nhau
Trường hợp 1 Nếu người chơi thứ hai nhặt toàn bộ xu ở một hàng thì chỉ còn
lại một hàng có nhiều hơn 1 đồng xu Đến lượt mình, người chơi thứ nhất nhặt tất cả các xu, chỉ để lại một đồng Người chơi thứ hai buộc phải nhặt đồng xu cuối cùng và thua
Trường hợp 2 Nếu sau khi người chơi thứ hai đi mà vẫn còn hai hàng và số
đồng xu trong một hàng bằng 1 (tức là người chơi thứ hai đã nhặt toàn bộ số đồng xu từ một hàng, chỉ để lại một đồng xu trong hàng đó) thì người chơi thứ nhất nhặt toàn bộ số đồng xu của hàng kia Như vậy, chỉ còn lại một đồng xu cuối cùng Người chơi thứ hai buộc phải nhặt đồng xu cuối cùng và thua
Trường hợp 3 Nếu sau khi người chơi thứ hai đi mà vẫn còn hai hàng và số
đồng xu trong cả hai hàng lớn hơn 1 thì người chơi thứ nhất nhặt số đồng xu
Trang 12bằng chính số đồng xu mà người chơi thứ hai đã nhặt, nhưng ở hàng khác Như vậy, số đồng xu ở hai hàng lại bằng nhau và lớn hơn 1 Cứ tiếp tục như vậy, đến khi chỉ còn một hàng có số đồng xu lớn hơn 2 (trở về Trường hợp 1) hoặc còn cả hai hàng nhưng một hàng còn lại đúng một đồng xu (trở về Trường hợp 2) Người chơi thứ nhất áp dụng chiến lược như trong trường hợp 1 hoặc trong trường hợp 2 Người chơi thứ hai buộc phải nhặt nốt đồng xu cuối cùng và thua
Hệ quả 2 Nếu sau một số bước, số đồng xu trong ba hàng chỉ còn lại là a b c , ,
với a b và đến lượt người chơi thứ hai thì người chơi thứ hai thắng (theo 1
qui tắc kết thúc trò chơi ai là người lấy viên bi cuối cùng người đó thua)
Chứng minh Người chơi thứ hai chỉ việc lấy tất cả c đồng xu ở hàng thứ ba,
còn lại hai hàng, mỗi hàng có số đồng xu bằng nhau Theo nhận xét 2, đến lượt người chơi thứ nhất (đóng vai trò người chơi thứ hai trong Nhận xét 1) và người chơi thứ hai (đóng vai trò người chơi thứ nhất trong Nhận xét 1) thắng
Nhận xét 3 Giả sử sau một số bước, số đồng xu trong ba hàng chỉ còn lại tương
ứng là 1, 2, và 3 Nếu đến lượt người chơi thứ hai thì người chơi thứ nhất thắng (theo qui tắc kết thúc trò chơi ai là người lấy viên bi cuối cùng người đó thắng)
Chứng minh Nếu người thứ hai lấy tất cả các đồng xu ở một hàng thì còn lại
hai hàng với số đồng xu không bằng nhau Đến lượt mình, người chơi thứ nhất đưa về thế thắng bằng cách nhặt số đồng xu ở hàng có số đồng xu lớn hơn sao cho hai hàng có số đồng xu bằng nhau Áp dụng Nhận xét 1, người chơi thứ nhất thắng Vì vậy người chơi thứ hai chỉ có thể lấy 1 đồng xu ở hàng thứ hai hoặc 1 (hoặc 2) đồng xu ở hàng thứ ba Gọi khả năng có thể của số đồng xu tại một
bước nào đó là một trạng thái a b c; ; của trò chơi Trạng thái tương ứng của trò chơi sau bước đi của người chơi thứ hai chỉ có thể là: (1; 1; 3), khi người chơi thứ hai lấy 1 đồng xu ở hàng thứ hai; (1; 2; 2), khi người chơi thứ hai lấy 1 đồng xu ở hàng thứ ba hoặc (1; 2; 1), khi người chơi thứ hai lấy 2 đồng xu ở hàng thứ ba, nghĩa là luôn có ba hàng với hai hàng có số đồng xu bằng nhau
Trang 13Người chơi thứ nhất chỉ việc lấy tất cả số đồng xu ở một hàng và để lại hai hàng
có số đồng xu bằng nhau Theo Nhận xét 1, người chơi thứ nhất thắng
Nhận xét 4 Nếu trò chơi ở trạng thái phổ biến (3, 4, 5), nghĩa là ba hàng tương
ứng có 3, 4, 5 đồng xu, và đến lượt người chơi thứ nhất thì người đi trước thắng (theo qui tắc kết thúc trò chơi ai là người lấy viên bi cuối cùng người đó thắng)
Chứng minh Trước tiên người chơi thứ nhất nhặt hai đồng xu ở hàng đầu tiên,
đưa trò chơi về trạng thái (1, 4, 5) với số đồng xu ở các hàng không bằng nhau Nếu người chơi thứ hai lấy tất cả số đồng xu ở một hàng thì số đồng xu còn lại ở hai hàng không bằng nhau Theo Nhận xét 1, người chơi thứ nhất chỉ việc đưa
về trạng thái thắng bằng cách làm cho số đồng xu ở hai hàng bằng nhau
Vì vậy người chơi thứ hai phải giữ lại cả ba hàng (với hi vọng không thua) Theo Nhận xét 1 và Hệ quả 1, các trạng thái sau đây là trạng thái thua của người chơi thứ hai: (1; 1; 5); (1; 4; 1); (1; 4; 4) Vì vậy, người chơi thứ hai chỉ có thể: 1) Lấy 1 hoặc 2 đồng xu ở hàng thứ hai Đưa trò chơi về một trong hai trạng thái: (1; 3; 5) hoặc (1; 2; 5)
2) Lấy 2 hoặc 3 đồng xu ở hàng thứ ba Đưa trò chơi về trạng thái (1; 4; 3) hoặc trạng thái (1; 4; 2)
Đến lượt người chơi thứ nhất lấy số đồng xu ở các hàng tương ứng để đưa trò chơi về trạng thái (1; 2; 3) tương ứng như sau:
1.1) (1; 3; 5) (1; 3; 2) 2.1) (1;4;3) (1; 2; 3) 1.2) (1; 2; 5) (1; 2; 3) 2.2) (1;4;2) (1; 3; 2) Theo Nhận xét 3, người chơi thứ nhất thắng trong mọi trường hợp
3.2 Giải bài toán trò chơi Nim bằng công cụ hệ đếm cơ số 2
Dưới đây trình bày lời giải của trò chơi Nim với ba đống sỏi và số sỏi bất kì trong mỗi đống nhờ công cụ hệ đếm cơ số 2
Trang 14Giả sử số sỏi trong các đống thứ nhất, thứ hai và thứ ba tương ứng là a , b và c
viên Trong hệ đếm cơ số 2, các số này được biểu diễn dưới dạng
viết biểu diễn của a , b và c cùng có bậc cao nhất là 2 n Điều này dễ dàng làm được vì nếu cần ta có thể thêm các hệ số bằng 0, tức là ta không đòi hỏi tất cả các hệ số a , n b , n c phải khác 0, nhưng vì n là bậc cao nhất nên ít nhất một n
trong các hệ số a , n b , n c phải khác 0 n
Người chơi đầu tiên sẽ lấy một số sỏi (khác 0) từ một trong ba đống, thí dụ, từ đống thứ nhất Khi ấy các hệ số a , i i0, ,n sẽ bị thay đổi Tương tự, nếu lấy sỏi từ đống thứ hai (hoặc từ đống thứ ba), thì ít nhất một trong các hệ số b , i
0, ,
i n là chẵn Chiến lược này có thể thực hiện được nhờ cách đi như sau Giả sử a k là tổng đầu tiên (tính từ trái sang phải) là lẻ, tức là có ít nhất b k c k
một trong ba số a b c k, ,k k bằng 1 Giả sử, thí dụ, a k 1 Khi ấy người chơi thứ
nhất lấy một lượng sỏi d từ đống thứ nhất sao cho tất cả các tổng a i , b i c i
Trang 15bằng 1, mà hệ số a của k a bằng 0 nên a a và ' d a a 0, tức là người
chơi thứ nhất có thể làm giảm thật sự số sỏi (trong đống a ) nhờ qui tắc trên
Như vậy, sau bước đi đầu tiên của người chơi thứ nhất, tất cả các tổng
i i i
a , b c i0, ,n là chẵn
Bây giờ giả sử người chơi thứ hai lấy một số sỏi bất kì, thí dụ, d viên từ một đống nào đó Vì d khác 0 nên trong biểu diễn của d trong hệ đếm cơ số 2 phải có ít nhất một chữ số 1, do đó bắt buộc ít nhất một trong các tổng
i i i
a phải thay đổi từ chẵn sang lẻ b c
Tiếp tục cách làm trên, sau một số hữu hạn q bước, tất cả các tổng a i , b i c i
thứ hai, anh ta sẽ sử dụng chiến lược như người chơi thứ nhất thực hiện khi số sỏi ban đầu là lẻ (như chiến lược đã trình bày ở trên) và anh ta sẽ thắng
Tùy theo số sỏi cụ thể trong từng đống, mỗi người chơi có thể chọn số lượng sỏi trong mỗi bước đi để đảm bảo thắng nhanh nhất hoặc lâu thua nhất
Thí dụ 3.1 Giả sử người chơi thứ nhất biết chiến lược để thắng Hãy thực hiện
chiến lược trong trò chơi Nim với a 15, b 12, c 10
Giải Ta có
Trang 16Lượt đi thứ nhất: Ta có a3 b3 c3 3 là tổng lẻ đầu tiên Vì a nên người 3 1
chơi thứ nhất sẽ lấy d viên sỏi từ đống thứ nhất sao cho số sỏi còn lại là
2
a ; b12 1100 2 b b b b3 2 1 0 2 ; c1010102 c c c c3 2 1 02 Bây giờ ta có
3 3 3 2
a ; b c a2 ; b2 c2 2 a1 ; b1 c1 2 a0 b0 c0 0
Số sỏi trong tất cả các đống đều chẵn Người chơi thứ hai, dù biết hay không biết chiến lược, cũng phải chọn một số sỏi từ một đống nào đó Để thua lâu nhất, người chơi thứ hai chỉ lấy một viên sỏi từ một đống nào đó, thí dụ lấy
Trang 1700012 1
a viên (theo qui tắc “bù để tổng các cột đều chẵn” như trên), tức
là chọn d2 viên Số sỏi còn lại ở các đống là: a a 6 1 5
2
a , b 11 10112 b b b b3 2 1 0 2 ,c1010102 c c c c3 2 1 02 Bây giờ ta lại có
3 3 3 2
a ; b c a2 ; b2 c2 0 a1 ; b1 c1 2 a0 b0 c0 2
Người chơi thứ hai buộc phải lấy ra số sỏi bất kì từ một đống bất kì, nhưng không thể để mình vào trạng thái thua a b b; ; theo Hệ quả 1, vì vậy không thể chọn 1 viên ở đống thứ hai (khi ấy số sỏi ở hai đống thứ nhất và đống thứ hai cùng bằng 10), do đó anh ta phải chọn, thí dụ, 1 viên ở đống thứ ba, số sỏi còn lại ở ba đống là: a 1 00012a a a a3 2 1 02; b 11 10112 b b b b3 2 1 0 2 ,
ở đống thứ hai là b 10002 viên, tức là lấy ra 8 d3 viên b b 11 8 3
Số sỏi còn lại ở các đống bây giờ là: a 1 00012 a a a a3 2 1 02,
Người chơi thứ hai chọn số sỏi bất kì, nhưng không thể đưa về trạng thái thua
a b b theo Hệ quả 1, vì vậy phải chọn, thí dụ, 2 viên từ đống thứ ba, số sỏi ; ; còn lại ở ba đống là: a 1 00012 a a a a3 2 1 02, b 8 10002b b b b3 2 1 0 2 ,
2 3 2 1 02
c c c c c
Trang 18Tổng các hệ số: a3 ; b3 c3 1 a2 ; b2 c2 1 a1 ; b1 c1 1 a0 b0 c0 2
Lượt đi thứ tư: Do a3 , b3 c3 1 a 3 0, b , nên người chơi thứ nhất chọn 3 1
4
d viên sỏi từ đống thứ hai (theo qui tắc “bù chẵn”) sao cho số sỏi còn lại ở
đống thứ hai là b 01102 6 viên, tức là d2 c c 8 6 2 viên
Số sỏi còn lại ở các đống là:
2 2 1 02
a a a a , b 6 110 2 b b b2 1 02, c 7 111 2 c c c2 1 02 Bây giờ ta lại có: a2 ; b2 c2 2 a1 ; b1 c1 2 a0 b0 c0 2
Người chơi thứ hai chỉ có thể chọn, để không rơi vào trạng thái thua a b b; ; hoặc để thua lâu hơn, thí dụ, 2 viên từ đống thứ ba, số sỏi còn lại ở ba đống là:
2 2 1 02
a a a a , b 6 110 2 b b b2 1 02, c 5 101 2 c c c2 1 02 Tổng các hệ số: a2 ; b2 c2 2 a1 ; b1 c1 1 a0 b0 c0 2
Lượt đi thứ năm: Do a1 , b1 c1 1 a và 1 0 b nên người chơi thứ nhất 1 1chọn d (theo qui tắc “bù chẵn”) viên sỏi từ đống thứ hai sao cho số sỏi còn lại 5
ở đống thứ hai là b 100 2 4 viên, tức là d2 b b 6 4 2 viên Số sỏi còn lại ở ba đống là:
2 2 1 02
a a a a , b 4 1002b b b2 1 0 2 , c 5 101 2 c c c2 1 02 Trò chơi trở về trạng thái (1; 4; 5) và đến lượt người thứ hai Theo Chứng minh trong Nhận xét 4, người chơi thứ nhất thắng
Lời bình 1 Người chơi thứ hai có thể chọn nhiều cách đi Tuy nhiên, như ta đã
phân tích, nếu lúc đầu có ít nhất một tổng a k b k c k là lẻ thì với mỗi cách đi của người thứ hai, người chơi thứ nhất bao giờ cũng chọn được ít nhất một cách
đi tương ứng để sau khi đi thì tất cả các tổng a i , b i c i i0, ,n là chẵn, và cuối cùng anh ta sẽ thắng
Tương tự, nếu tất cả các tổng a i , b i c i i0, ,n là chẵn thì người thứ hai sẽ thắng (theo qui tắc ai nhặt viên sỏi cuối cùng thì người đó thắng) Người thứ hai
Trang 19chỉ thắng (trong trò chơi với qui tắc ai nhặt viên sỏi cuối cùng là người thắng)
khi tất cả các tổng a i , b i c i i0, ,n là chẵn Khả năng thắng của người chơi thứ hai ít hơn nhiều so với người chơi thứ nhất (vì người thứ nhất chỉ cần
một trong các tổng a i , b i c i i0, ,n là lẻ) Thí dụ, với 10 viên sỏi chia làm
ba đống a b c thì có tất cả 8 khả năng viết số 10=(1010)10 2 dưới dạng tổng của ba số dương khác 0:
Lời bình 2 Cũng có thể giải bài toán trò chơi Nim bằng phương pháp đồ thị
(xem [6])
3.3 Trò chơi Nim mở rộng
Ở trên ta đã xét trò chơi Nim với ba đóng sỏi (ba hàng các đồng xu) Phân tích trò chơi này cho ta cảm giác không còn gì đáng hấp dẫn về trò chơi Nim nữa Tuy nhiên, năm 1901, Charles L Burton, Giáo sư trường đại học Harvard, đã phát hiện ra một điều đáng ngạc nhiên: Trò chơi Nim sẽ trở nên thú vị hơn, nếu
Trang 20số đống sỏi (số hàng các đồng xu, các quân bài) có thể bất kì và đồng thời số sỏi trong mỗi đống cũng bất kì Hơn nữa, sử dụng hệ đếm cơ số 2, có thể đưa ra một chiến lược đơn giản tương tự như trong trò chơi Nim với ba đống sỏi (như đã trình bày ở trên) để giải quyết bài toán trò chơi này Charles L Burton đã phân tích chứng minh sự tồn tại chiến lược tối ưu cho trò chơi Nim tổng quát
Trò chơi Nim mở rộng được phát biểu như sau Giả sử có n hàng, lúc đầu mỗi
hàng có một số đồng xu Hai người lần lượt lấy ra từ một hàng một số (không ít hơn 1) đồng xu Người chiến thắng là người nhặt được đồng xu cuối cùng Gọi mỗi vectơ (bộ số sắp thứ tự) x1, ,x , trong đó n x là số đồng xu (còn lại) i
của hàng thứ i, i1,2, ,n tại bước thứ k nào đó, là một trạng thái của trò chơi Trạng thái của trò chơi được hình thành sau bước đi của người chơi là an toàn,
nếu nó bảo đảm cho người chơi đi đến chiến thắng Nếu ngược lại thì trạng thái
được gọi là nguy hiểm Thí dụ, từ trạng thái (3; 4; 5) ban đầu, người chơi thứ
nhất lấy ra 2 đồng xu ở hàng thứ nhất, tạo ra trạng thái (1; 4; 5) an toàn cho mình Trong trò chơi Nim, bằng một chiến lược thích hợp, từ mỗi trạng thái nguy hiểm (cho đối phương) đều có thể đi đến trạng thái an toàn (cho mình) Ngược lại, từ một trạng thái an toàn (của đối phương) đều chỉ có thể đi đến trạng thái nguy hiểm (cho mình), không có chiến lược nào đưa một trạng thái an toàn (của đối phương) đến trạng thái an toàn (cho mình) cho mình cả Vì vậy, các chiến lược thích hợp là đưa trạng thái nguy hiểm (cho đối phương) về trạng thái
an toàn (cho mình), hoặc tìm chiến lược để kéo dài cuộc chơi được lâu nhất (nếu đối phương đã ở vào trạng thái an toàn nên tình thế không thể đảo ngược)
Thí dụ 3.2 Có 16 quân bài được đặt thành bốn hàng như hình vẽ dưới đây Hãy
phân tích và tìm chiến lược chơi để chiến thắng (nhặt quân bài cuối cùng)
Giải Viết số quân bài tại mỗi hàng trong hệ đếm cơ số 2 và tính tổng từng cột:
1= 0 0 1 3= 0 1 1
Trang 215= 1 0 1 7= 1 1 1
Tổng 2 2 4
Như vậy, tổng các chữ số trong tất cả ba cột (hàng trăm, hàng chục, hàng đơn vị) đều là số chẵn (hay bằng 0 theo modulo 2) Trạng thái ban đầu là nguy hiểm cho người chơi thứ nhất, vì mọi cách đi của người chơi thứ nhất đều dẫn tới trạng thái không an toàn (có ít nhất một cột có tổng lẻ) cho người chơi thứ nhất Như vậy, với cách đi đúng (đưa trạng thái có ít nhất một cột có tổng lẻ về tất cả các cột có tổng chẵn), người thứ hai bảo đảm giành chiến thắng
Thí dụ 3.3 Các quân cờ đam được đặt thành bốn hàng theo thứ tự: hàng thứ
nhất gồm 7; hàng thứ hai có 13; hàng thứ tư có 24 và hàng cuối cùng có 30 quân
cờ Hãy phân tích và tìm chiến lược chơi để chiến thắng
Giải Viết các quân bài tại mỗi hàng trong hệ đếm cơ số 2 và tính tổng từng cột:
2n 16 8 4 2 1
7= 0 0 1 1 1 13= 0 1 1 0 1
Trang 2224= 1 1 0 0 0 30= 1 1 1 1 0
Tổng 2 3 3 2 2
Như vậy, tổng các chữ số trong cột thứ tư (từ phải sang trái) có tổng bằng 3 Người chơi thứ nhất phải đưa trạng thái an toàn (cho mình) về trạng thái nguy hiểm (cho đối phương) bằng cách đưa tổng trong tất cả các cột về tổng chẵn Để làm việc này người chơi thứ nhất phải theo qui tắc: thay một chữ số 1 ở cột thứ
tư (từ phải sang, trong biểu diễn của số 13, 24 hoặc 30) bằng chữ số 0, và chữ số
0 hoặc chữ số 1 ở cùng dòng với số 1 đã thay ở cột thứ tư (từ phải sang), để được tổng của cột thứ ba cũng là chẵn Có các khả năng sau đây xảy ra:
1) Nhặt quân cờ từ hàng thứ hai (có 13 quân) Khi ấy ta có trạng thái mới là:
Nghĩa là, nhặt 12 quân cờ từ hàng thứ hai Hàng thứ hai còn lại 1 quân cờ
2) Nhặt quân cờ từ hàng thứ ba (có 24 quân) Khi ấy ta có trạng thái mới là:
Trang 233) Nhặt quân cờ từ hàng thứ tư (có 30 quân) Nghĩa là, nhặt 12 quân cờ từ hàng thứ tư Hàng thứ ba còn lại 18 quân cờ Khi ấy ta có trạng thái mới là:
Bài tập Có bốn đống diêm với số diêm tương ứng là 3, 7, 12 và 17 que diêm
Hãy phân tích và xây dựng chiến lược chơi để chiến thắng
Nhận xét Trạng thái 1, ,1,a với a bảo đảm cho người đi tiếp theo tháng 1
thì người đi tiếp (người thứ nhất) lấy toàn bộ a
quân cờ từ hàng cuối cùng Nếu
§4 Giải bài toán tháp Hà Nội nhờ hệ đếm cơ số 2
Trò chơi Tháp Hà Nội được nhà toán
học Pháp E Lucas phổ biến năm
1883 Trò chơi gồm ba cọc Lúc đầu
đĩa được xếp theo thứ tự từ lớn đến
Trang 24nhỏ thành một hình nón trên một cọc
(cọc nguồn) Người chơi phải chuyển
Trò chơi Tháp Hà Nội với ba cọc
các đĩa từ cọc nguồn sang cọc đích và xếp lại theo đúng thứ tự trên Trong khi chuyển có thể sử dụng một cọc trung gian và phải tuân theo qui tắc sau:
I Sau mỗi lần chuyển, các đĩa đều nằm trên một, hai, hoặc ba cọc, theo thứ tự từ lớn đến nhỏ, từ thấp đến cao
II Mỗi lần chỉ được chuyển một đĩa
Ta có thể sử dụng hệ đếm cơ số 2 để giải bài toán Tháp Hà Nội cho ba cọc với
n đĩa như sau
Để dễ hiểu, trước tiên ta xem xét trường hợp bài toán Tháp Hà Nội với ba cọc và hai, ba, bốn đĩa hoặc năm đĩa
Giải bài toán Tháp Hà Nội với hai đĩa nhờ hệ đếm cơ số 2
Bước 0: Hai đĩa ở cọc A, kí hiệu là 00 2
Bước 1: Chuyển đĩa số 1 từ cọc A sang cọc trống B, kí hiệu là 01 2
Chữ số 1 ở cuối biểu thị đĩa trên cùng (đĩa số 1) đã được chuyển, 01 2 110
Hình 4.1
Bước 2: Chuyển đĩa số 2 từ cọc A sang cọc trống C, kí hiệu là 10 2
Chữ số 1 thứ hai biểu thị đĩa thứ hai đã được chuyển sang cọc C, 10 2 210 Chữ số 1 khác chữ số 0 biểu thị hai đĩa ở hai cọc khác nhau (cọc B và cọc C)
Bước 3: Chuyển đĩa số 1 từ cọc B sang cọc C, kí hiệu là 11 2 Chữ số 1 thứ hai (bên trái) biểu thị đĩa thứ hai đã được chuyển Hai chữ số 1 biểu thị hai đĩa ở trên cùng một cọc (đĩa thứ hai chồng lên đĩa thứ nhất, 11 2 310)
Trang 25Như vậy, bắt đầu từ số 00 2, cứ mỗi lần chuyển một đĩa, ta lại cộng thêm 1 vào
số trong cơ số 2 vừa nhận được ở bước trước, để được số mới trong hệ đếm cơ
số 2
Giải bài toán Tháp Hà Nội với ba đĩa nhờ hệ đếm cơ số 2
Hình 4.2
Bước 0: Ba đĩa ở cọc A, kí hiệu là 0002
Trước tiên ta giải bài toán hai cọc như trên (xây tháp gồm hai đĩa nhỏ nhất):
Bước 1: Chuyển đĩa số 1 từ cọc A sang cọc trống C, kí hiệu là 001 2 Chữ số 1
ở vị trí thứ nhất (từ bên phải) biểu thị đĩa trên cùng (đĩa số 1) đã được chuyển từ cọc A sang cọc C, 001 2 110
Bước 2: Chuyển đĩa số 2 từ cọc A sang cọc trống B, kí hiệu là 0102
Chữ số 1 ở vị trí thứ hai biểu thị đĩa thứ hai đã được chuyển từ cọc A sang cọc
B, 0102 210 Ba chữ số 00, 01, 10 (ở bên phải) trong biểu diến 0002,
001 2 110, 0102 biểu thị ba đĩa ở ba cọc khác nhau
Bước 3: Chuyển đĩa số 1 từ cọc C sang cọc B, kí hiệu là 011 Chữ số 1 ở vị 2trí thứ nhất (bên trái, khác với chữ số 0 trong 0102 ở bước 2) biểu thị đĩa số 1
đã được chuyển từ cọc C sang cọc B, 011 2 310
Ba chữ số 0, 1, 1 biểu thị hai đĩa nhỏ ở trên cùng cọc B (đĩa thứ hai chồng lên đĩa thứ nhất), đĩa lớn ở cọc khác (cọc A) Cọc C trống
Trang 26Như vậy, bài toán cho hai đĩa (nhỏ nhất) đã được giải
Bước 4: Chuyển đĩa số 3 từ cọc A sang cọc trống C, kí hiệu là 100 2 Chữ số 1
ở vị trí thứ ba (từ bên phải, khác với chữ số 0 trong 011 2 ở bước 3) biểu thị đĩa
số 3 đã được chuyển Ba chữ số 1, 0, 0 biểu thị hai đĩa nhỏ ở trên cùng một cọc
B và không chuyển, đĩa lớn ở cọc khác (cọc C) Cọc A trống, 100 2 410
Tiếp tục xây tháp gồm hai đĩa nhỏ từ cọc B chồng lên trên đĩa lớn nhất (đĩa 3) ở cọc C Tức là ở các bước 5, 6, 7, ta làm lại các bước 1, 2, 3 ở trên
Bước 5: Chuyển đĩa số 1 từ cọc B sang cọc A, kí hiệu là 101 2 Chữ số 1 ở vị trí thứ nhất (ngoài cùng bên trái, khác với chữ số 0 trong 100 2 ở bước 4) biểu thị đĩa số 1 đã được chuyển sang cọc thứ nhất, 101 2 510
Bước 6: Chuyển đĩa số 2 từ cọc B sang cọc C, kí hiệu là 110 2 Chữ số 1 ở vị trí giữa (khác số 0 trong 101 2 ở Bước 5) biểu thị đĩa số 2 đã được chuyển
Bước 7: Chuyển đĩa 1 từ cọc A sang cọc C (chồng lên đĩa 2) kí hiệu là 111 2 Kết thúc Tháp mới đã được xây trên cọc C
Như vậy, với bài toán ba đĩa, bắt đầu từ số 0002, cứ mỗi lần chuyển một đĩa,
ta lại cộng thêm 1 vào số trong cơ số 2 vừa nhận được ở bước trước, để được số mới trong hệ đếm cơ số 2 biểu thị số đĩa đã được chuyển Để giải bài toán này, trước tiên ta giải bài toán hai đĩa Sau đó chuyển đĩa lớn nhất sang cọc trống và lại giải bài toán hai đĩa (chồng lên đĩa lớn nhất), để được lời giải cho bài toán ba đĩa Số lần chuyển đĩa cho bài toán ba cọc ba đĩa là 23 Ta có 1 7 111 2 7
Giải bài toán Tháp Hà Nội với bốn đĩa nhờ hệ đếm cơ số 2
Kí hiệu các cọc là cọc A (cọc nguồn chứa 4 đĩa), cọc C và cọc B (chú ý: trên Hình 2.3, cọc C đứng giữa), các đĩa là 1, 2, 3, 4 theo thứ tự từ nhỏ đến lớn
Biểu thị vi trí ban đầu, khi tất cả bốn đĩa ở cọc A là số 00002 có bốn chữ số 0
Bước 1: Chuyển đĩa số 1 từ cọc A sang cọc trống C, kí hiệu là 00012
Trang 27Số 1 bên trái biểu thị đĩa số 1 trên cùng đã được chuyển (sang cọc trống C)
Bước 2: Chuyển đĩa số 2 từ cọc A sang cọc trống B, kí hiệu bởi 00102 Số 1 ở
vị trí thứ hai (tính từ bên phải) biểu thị đĩa số 2 được chuyển (sang cọc trống B) Hai chữ số 1 và 0 ở vị trí cuối biểu thị hai đĩa được đặt lên hai cọc khác nhau
Bước 3: Chuyển đĩa số 1 từ cọc C sang cọc B, kí hiệu bởi 00112 Cọc C trống
Số 00102 ở bước trên trở thành số 00112, biểu thị đĩa số 1 đã được chuyển Hai số 11 cuối cùng biểu thị đĩa 1 được đặt chồng lên đĩa số 2 trên cọc B
Bài toán hai đĩa (nhỏ nhất) đã được giải
Hình 4.3
Bước 4: Chuyển đĩa số 3 từ cọc A sang cọc trống C, kí hiệu bởi 01002 Số 1 ở
vị trí thứ ba (khác với số 0 trong 0011 ở bước 2) biểu thị đĩa số 3 đã được 2chuyển Ba số 100 ở vị trí cuối cùng biểu thị đĩa số 3 không nằm trên cùng cọc với hai đĩa đầu tiên
Tiếp tục xây tháp gồm hai đĩa nhỏ nhất từ cọc B chồng lên trên đĩa 3 ở cọc C Tức là ở các bước 5, 6, 7, ta làm lại các bước 1, 2, 3 ở trên
Bước 5: Đưa đĩa số 1 từ cọc B sang cọc A, kí hiệu bởi 0101 Từ 2 01002 ở Bước 4 thành 0101 biểu thị đĩa số 1 đã được chuyển 2
Ba số 101 cuối cùng biểu thị ba đĩa nhỏ nhất ở trên ba cọc khác nhau
Trang 28Bước 6: Đưa đĩa số 2 từ cọc B sang cọc C, kí hiệu bởi 01102 Cọc B trống
Ba số 110 cuối cùng biểu thị hai đĩa số ba và số 2 trên cùng một cọc
Bước 7: Đưa đĩa số 1 từ cọc A sang cọc C, kí hiệu bởi 01112
Ba số 111 ở vị trí cuối cùng biểu thị ba đĩa trên cùng một cọc (cọc C)
Như vậy ta đã giải xong bài toán ba đĩa (nhỏ nhất)
Bước 8: Đưa đĩa số 4 từ cọc A sang cọc B, kí hiệu bởi 10002 Cọc A trống
Số 1000 biểu thị đĩa số 4 không trên cùng cọc với ba đĩa nhỏ
Tiếp tục xây tháp gồm ba đĩa 1, 2 và 3 từ cọc C chồng lên trên đĩa 4 ở cọc B Tức là, trong các bước 9-15 ta làm lại các bước 1-7
Bước 9: Đưa đĩa số 1 từ cọc C sang cọc B, kí hiệu bởi 10012
Số 1001 biểu thị đĩa số 1 và đĩa số 4 trên cùng một cọc
Bước 10: Đưa đĩa số 2 từ cọc C sang cọc A, kí hiệu bởi 1010 2
Bước 11: Đưa đĩa số 1 từ cọc B sang cọc A, kí hiệu bởi 10112
Bước 12: Đưa đĩa số 3 từ cọc C sang cọc B, kí hiệu bởi 11002
Bước 13: Đưa đĩa số 1 từ cọc A sang cọc C, kí hiệu bởi 11012
Bước 14: Đưa đĩa số 2 từ cọc A sang cọc B, kí hiệu bởi 11102
Bước 15: Đưa đĩa số 1 từ cọc C sang cọc B, kí hiệu bởi 11112
Ba số 111 ở vị trí cuối cùng biểu thị ba đĩa cùng nằm trên một cọc
Kết thúc trò chơi
Ta có thể giải thích ngắn gọn các bước chuyển đĩa trong bảng sau
Bước Cơ số 2 Giải thích
1 0001 Đưa đĩa số 1 từ cọc A sang cọc trống B
2 0010 Đưa đĩa 2 từ cọc A sang cọc trống C
3 0011 Đưa đĩa 1 từ cọc B lên trên đĩa 2 trên C, cọc B trống
4 0100 Đưa đĩa 3 từ cọc A lên cọc trống B
Trang 295 0101 Đĩa 1 từ C sang A (KHÔNG chồng lên đĩa 3 của B)
6 0110 Đĩa 2 từ C lên trên đĩa 3 của cọc B (cọc C trống)
7 0111 Đưa đĩa 1 từ cọc A lên trên đĩa 2 của cọc B
8 1000 Đưa đĩa 4 từ cọc A sang cọc trống C
9 1001 Đĩa 1 từ cọc B lên trên đĩa 4 của cọc C
10 1010 Đĩa 2 từ B sang A (KHÔNG chồng lên đĩa 4 của C)
11 1011 Đưa đĩa 1 từ cọc C lên trên đĩa 2 của cọc A
12 1100 Đĩa 3 từ cọc B lên trên đĩa 4 của C (cọc B trống)
13 1101 Đĩa 1 từ A sang B (KHÔNG chồng lên đĩa 3 của C)
14 1110 Đưa đĩa 2 từ cọc A lên trên đĩa 3 của cọc C
15 1111 Đưa đĩa 1 từ cọc B lên trên đĩa 2 của C
Như vậy, với bài toán bốn đĩa, bắt đầu từ số 00002, cứ mỗi lần chuyển một đĩa, ta lại cộng thêm 1 vào số trong cơ số 2 vừa nhận được ở bước trước, để được số mới trong hệ đếm cơ số 2 biểu thị số đĩa đã được chuyển Để giải bài toán này, trước tiên ta giải bài toán ba đĩa Sau đó chuyển đĩa lớn nhất sang cọc trống và lại giải bài toán ba đĩa, để được lời giải cho bài toán bốn đĩa Số lần chuyển đĩa cho bài toán ba cọc là 24 1 15 Ta có 11112 15
Kết luận
Qua lời giải cho bài toán Tháp Hà Nội với hai, ba, bốn đĩa, ta rút ra thuật toán
đệ qui giải bài toán Tháp Hà Nội với ba cọc như sau:
Giả sử đã giải được bài toán Tháp Hà Nội với ba cọc và n đĩa Khi ấy dễ dàng
giải được bài toán Tháp Hà Nội với ba cọc và n đĩa bằng cách trước tiên giải 1
bài toán Tháp Hà Nội với ba cọc và n đĩa Sau đó chuyển đĩa thứ n (đĩa lớn 1nhất) sang cọc trống và lại thực hiện thuật toán giải trò chơi Tháp Hà Nội với ba
cọc và n đĩa lên trên đĩa lớn nhất, ta được Tháp Hà Nội với n đĩa 1
Trang 30Gọi số lần chuyển cần thiết trong bài toán Tháp Hà Nội với ba cọc và n đĩa 1
là T n1 Khi ấy, để giải được bài toán Tháp Hà Nội với ba cọc và n đĩa ta cần 1
Ta cũng có thể mô tả thuật toán hồi qui giải bài toán Tháp Hà Nội như sau
Kí hiệu dãy S i a k , i1, ,n là chỉ số của các đĩa cần phải chuyển tại bước
thứ k Dãy S i a k này được xây dựng theo thuật giải đệ qui đơn giản bắt đầu với S 1 1 cho một đĩa và theo công thức truy hồi S n S n1, ,n S n1
Bảng dưới đây chỉ ra cách xây dựng dãy S cho các giá trị n n 1, 2, 3, 4
Ta thấy dãy số S có tính chất đối xứng và lồng nhau Số ở giữa bao giờ cũng là n
n , chính là số đĩa Dãy S n1 lại có số ở giữa chính là n Các số 1 a (nhận giá i
trị từ 1 đến n ) trong dãy S tương ứng với chỉ số của đĩa được chuyển n
Dãy S chính là dãy tương ứng với mã Gray độ dài n (xem Chương 2) n
Các ví dụ trên (bài toán ba cọc với bốn hoặc với năm đĩa) cũng cho thấy: Vị trí các đĩa có thể hoàn toàn xác định được trực tiếp từ biểu diễn cơ số 2 của số thứ
tự di chuyển (viết trong hệ đếm cơ số 2 với một chữ số cho mỗi đĩa), trong đó các dãy chữ số 1 và các dãy chữ số 0 tượng trưng cho các dãy các đĩa liền nhau
Trang 31trên cùng một cọc, và mỗi khi chữ số có thay đổi thì đĩa kế tiếp sẽ dời sang trái hay sang phải một cọc (hay chuyển sang cọc ngoài cùng phía đối diện)
Ta có qui tắc sau
Qui tắc Dãy bit (dãy chữ số trong cơ số 2) được đọc từ trái sang phải, và mỗi bit
(mỗi chữ số) có thể được sử dụng để xác định vị trí của đĩa tương ứng
Bit với cùng giá trị như bước trước có nghĩa là đĩa tương ứng được xếp chồng lên đỉnh của đĩa trước trên cùng một cọc
Bit với giá trị khác trước nghĩa là đĩa tương ứng có vị trí bên trái hoặc bên phải của đĩa trước Để xác định vị trí bên phải hay bên trái ta phải theo qui tắc sau: 1) Giả thiết cọc đích nằm bên trái và cọc nguồn nằm bên phải
2) Cũng giả thiết "wrapping" (bao bọc): cọc phải được tính như là cọc “trái” của cọc trái và ngược lại
3) Giả sử k là số đĩa lớn nhất nằm trên cùng một cọc như là đĩa đầu tiên lớn nhất của nó và thêm 1 nếu đĩa lớn nhất trên cọc trái Nếu n chẵn, đĩa sẽ được đặt trên một cọc bên trái, nếu n lẻ, đĩa được đặt lên một cọc bên phải
Chữ số ở vị trí đầu (bên trái) đại diện cho đĩa lớn nhất và nếu là chữ số 0 thì có nghĩa là đĩa lớn nhất không dời khỏi cọc xuất phát và ngược lại Chữ số 1 từ bên phải của số trong cơ số 2 biểu thị đĩa đã được chuyển Nếu không có chữ số 1 nào khác trong số đã cho trong cơ số 2, tức là số có dạng 0 01 , thì nghĩa là đĩa 2nhỏ nhất đã được chuyển từ cọc nguồn A sang cọc trống Chữ số 1 thứ hai từ bên phải biểu thị vị trí của cọc mà đĩa được chuyển đến Nếu có một số chẵn các chữ số 0 giữa hai chữ số 1 (hai chữ số 1 đầu tiên từ bên phải), thì đĩa được đặt lên trên đĩa to hơn nó Nếu số chữ số 0 giữa hai chữ số 1 là lẻ thì nghĩa là đĩa đang chuyển KHÔNG đặt lên trên đĩa to hơn (mà đặt ở cọc khác)
Các chữ số 1 và 0 luân phiên trong các chữ số của một bước chuyển cho phép biết được các đĩa di chuyển theo một chiều khi nó hợp với chữ số của bước
Trang 32chuyển tại nơi chữ số thay đổi và theo chiều kia khi nó không hợp với chữ số của bước chuyển
Thí dụ, với số đĩa là 8:
Bước 0: 000000002: Đĩa lớn nhất là 0, do đó nó nằm trên cọc trái (cọc nguồn) Mọi đĩa khác cũng là 0, do đó chúng được đặt lên trên đĩa lớn nhất Và mọi đĩa đều nằm trên trên cọc nguồn
Bước 11011000 : Đĩa lớn nhất là 1, do đó nó nằm trên cọc phải (cọc đích) Đĩa 2thứ hai cũng là 1, do đó nó nằm trên đĩa lớn nhất, trên cọc phải Đĩa thứ ba là 0,
do đó nó nằm trên cọc khác Bởi vì 3 là số lẻ nên nó nằm trên một cọc phía bên phải, nghĩa là trên cọc trái (cọc nguồn) Đĩa thứ tư là 1 nên nó nằm trên cọc khác Vì 4 là chẵn nên nó nằm trên một cọc về bên trái, nghĩa là cọc phải (cọc đích) Đĩa thứ năm cũng là 1, do đó nó nằm bên trên đĩa thứ tư, trên cọc phải Đĩa thứ 6 là 0, do đó nó nằm trên cọc khác Do 6 là chẵn nên đĩa nằm trên cọc về bên trái, nghĩa là cọc giữa Đĩa thứ 7 và đĩa thứ 8 cũng là 0, do đó nó nằm trên đĩa số 6, trên cọc giữa
Bước 8
2
2 1 11111111 : Đĩa lớn nhất là 1, do đó nó nằm trên cọc phải (cọc đích) Mọi đĩa khác cũng là 1, do đó chúng được đặt lên trên đĩa lớn nhất Vậy mọi đĩa nằm trên cọc đích và trò chơi kết thúc
Như vậy, có thể giải bài toán Tháp Hà Nội nhờ sử dụng hệ đếm cơ số 2
Lịch sử và lời giải bài toán Tháp Hà Nội cho ba cọc đã được trình bày khá chi tiết trong [1] Một thuật toán quan trọng (thuật toán Frame-Steuwart) giải trò chơi tháp Hà Nội tổng quát (với số cọc bất kì) đã được trình bày trong [2] Có thể tham khảo thêm nhiều vấn đề thú vị liên quan cũng như Tài liệu tham khảo phong phú về bài toán Tháp Hà Nội trong [4]
Trang 33trò chơi là mã Gray
Mã Gray được ứng dụng lần đầu tiên trong giải bài toán trò chơi vào năm 1872, khi lời giải đẹp cho một trò chơi cơ học truyền thống (trò chơi tháo vòng Trung Hoa) được Louis Gros tìm ra nhờ sử dụng mã Gray hệ đếm cơ số 2 Tuy nhiên,
danh từ mã Gray được sử dụng nhằm tôn vinh Frank Gray (1887-1969), nhà
nghiên cứu vật lí tại phòng thí nghiệm của hãng Bell Telephone Sự đóng góp của Ông vào công nghệ truyền thông hiện đại là rất lớn Phương pháp hiện nay được sử dụng trong phát sóng truyền hình màu đã được phát triển bởi Gray vào những năm 1930 Vào những năm 1940 Ông đã phát minh ra một mã cơ số 2 (mã nhị phân) Mã nhị phân do Gray phát minh nhằm khử các sai số lớn có thể xuất hiện trong quá trình truyền tín hiệu bởi các mã điều biến dạng xung (the
pulse code modulation-PCM) và nhanh chóng được gọi là mã Gray cơ số 2 (mã
Gray nhị phân) Công bố đầu tiên của mã Gray đã được cấp bằng sáng chế U.S Patent 2632058 (March 17, 1953).
Mã Gray chính là cách kí hiệu hóa các số đang được tính toán sao cho khi các số
ở trạng thái tĩnh, mọi cặp liền kề sẽ chỉ khác nhau tại một vị trí trong các chữ số của nó, và hiệu số tuyệt đối tại vị trí đó chỉ bằng 1 Thí dụ, 193 và 183 có thể là hai số liền kề trong mã Gray cơ số 10 (hai chữ số giữa sai khác nhau 1 đơn vị), còn 193 và 173, hay 134 và 143 không phải là hai số liền kề trong mã Gray Tồn
Trang 34tại vô hạn mã Gray, bởi vì chúng áp dụng cho mọi hệ đếm cơ số bất kì và có nhiều cách khác nhau xây dựng mã Gray cho mỗi cơ số
Để đánh giá đúng giá trị của các mã Gray, ta xét điều gì xảy ra, nếu đồng hồ công tơ mét của xe ôtô báo là 9999 (km)? Để ghi nhận km tiếp theo, cả năm bánh xe phải quay và thay đổi để ghi số 10000 (km) Bởi vì các bánh xe này chuyển động chậm, nên sẽ có một chút sai số nhỏ chấp nhận được Nhưng nếu đồng hồ đo là một máy ghi điện tử có tốc độ cao, thì hai hoặc nhiều chữ số thay đổi tại cùng một thời điểm có khả năng sinh ra các số sai Khả năng sai số lớn này sẽ được giảm thiểu tối đa nếu quá trình tính toán đòi hỏi chỉ một thay đổi khi đại lượng tính toán được mã hóa chuyển từ giá trị này sang giá trị khác Nếu tính toán theo mã Gray, thì tại mỗi bước chỉ có một bánh xe của đồng hồ đo thay đổi bởi chỉ một đơn vị
Mã Gray cơ số 2 là mã đơn giản nhất Nếu ta giới hạn mã hóa một chữ số, thì chỉ cần 21 chữ số, chữ số 0 và chữ số 1 Như vậy, chỉ có một mã Gray: 0, 1 2Chúng ta có thể mô tả điều này như một đoạn thẳng, hai đầu của nó được gán nhãn 0 và 1 (Hình 1.1a) Mã Gray nhận được bằng cách chuyển động dọc theo đường thẳng theo một trong hai hướng
Mã Gray cho hai chữ số trong hệ đếm cơ số 2 là 22 số: 00; 01; 10 và 11 Các 4góc của hình vuông có thể được dán nhãn bởi các số này (Hình 1.1b) Nhãn được gán sao cho các số trong hệ đếm cơ số 2 tại mỗi cặp của các góc liền kề khác nhau chỉ tại một vị trí Ta có thể bắt đầu tại đỉnh bất kì và đi qua tất cả bốn đỉnh quanh hình vuông ngược chiều kim đồng hồ Đây chính là bốn số trong mã Gray Đường nét đứt bắt đầu từ 00 sinh ra mã Gray 00, 01, 11, 10 (các số liền
kề chỉ sai khác 1 chữ số) Mã này là mã xoay vòng (cyclic) vì ta có thể đi trở về đỉnh ban đầu 00 từ đỉnh cuối 10 chỉ bởi một bước (đường liền trong Hình 1.1b)
Trang 35Hình 1.1a Hình 1.1b Hình 1.1c
Mã Gray cho các số có ba chữ số trong hệ đếm cơ số 2 có 23 số Các số này 8
có thể gán nhãn cho các đỉnh của lập phương (Hình 1.1c) Các đỉnh liền kề có bộ
ba chữ số cơ số 2 khác nhau chỉ ở một vị trí Mọi đường đi liên tục theo các cạnh của lập phương chỉ đi qua mỗi đỉnh một lần tạo ra một mã Gray Thí dụ, đường nét đứt bắt đầu từ 000, đi qua 001, 011, 010, 110, 111, 101, 100 tạo ra một mã Gray Đây là một mã xoay vòng vì đường đi có thể từ vị trí cuối cùng
100 trở về vị trí ban đầu 000 sau một bước Đường đi này (khép kín và đi qua tất
cả các đỉnh của lập phương) được gọi là đường đi Hamilton theo tên nhà toán
học William Rowan Hamilton Như vậy, các mã Gray cơ số 2 tương ứng với các đường Hamilton theo các cạnh của lập phương (Hình 1.1c)
Mã Gray đơn giản nhất với cả hai đường xuôi và ngược chiều được gọi là mã
Gray phản xạ (a reflected Gray code) Vì dưới đây chỉ xét mã Gray phản xạ, nên
để ngắn gọn, ta vẫn gọi mã Gray phản xạ là mã Gray Để chuyển một số
n n 1 i 1 0 2
a a a a a a trong hệ đếm cơ số 2 sang mã Gray tương ứng với nó, ta bắt đầu với chữ số a ở bên phải và xét mỗi chữ số 0 a theo chiều từ phải sang i
trái Nếu chữ số a i1 (tiếp theo bên trái chữ số a ) là chẵn (là 0) thì ta giữ nguyên i
chữ số cũ a Nếu chữ số tiếp theo i a i1 bên trái chữ số a là lẻ (là 1), thì ta thay i
chữ số cũ a i bằng 1 (nếu chữ số cũ a i a i là 0 thì thay bằng 1 và ngược lại) Chữ số ngoài cùng bên trái không thay đổi Thí dụ, áp dụng qui tắc này cho số
110111 trong hệ đếm cơ số 2 cho ta số Gray tương ứng là 101100
Trang 36Để đổi ngược lại, ta xét mỗi chữ số bắt đầu từ bên phải Nếu tổng của tất cả các chữ số ở bên trái là chẵn, thì giữ nguyên số đó Nếu tổng là lẻ, thì thay đổi chữ
số đó (0 thành 1; 1 thành 0) Áp dụng qui tắc này cho số 101100 trong mã Gray
ta được số ban đầu 110111 trong hệ đếm cơ số 2
Xét các số từ 0 đến 42 và các mã Gray cơ số 2 tương ứng ta thấy, mọi cặp hai số Gray liền kề khác nhau chỉ ở một vị trí, và hiệu giữa chúng chỉ có thể bằng 1 (xem Bảng 1.1) Bắt đầu từ 0, 1 như là mã Gray với các số một chữ số, ta thêm vào các số theo thứ tự ngược lại (đối xứng) sẽ cho bốn số 0, 1, 1, 0 Tiếp theo đặt 0 vào trước hai số đầu và 1 vào trước hai số cuối, ta được mã Gray hai chữ số: 00, 01, 11, 10 Mã này tương ứng với đường đi Hamilton trên hình vuông, bắt đầu từ 00
Tương tự, ta thêm vào các số theo thứ tự ngược lại (đối xứng) của mã Gray hai chữ số, được 00, 01, 11, 10, 10, 11, 01, 00 Sau đó ta thêm 0 vào đầu bốn số đầu tiên và thêm 1 vào đầu bốn số cuối, được mã Gray cơ số 2 ba chữ số: 000, 001,
011, 010, 110, 111, 101, 100 Mã này tương ứng với đường đi Hamilton trên lập phương, bắt đầu từ 000
Thực hiện quá trình này, từ mã Gray n chữ số, trước tiên ta thêm vào các số theo thứ tự ngược lại (đối xứng) của mã Gray n chữ số đã có, sau đó thêm 0 vào
đầu các số ở đầu dãy, và thêm 1 vào đầu các số của nửa sau của dãy (mới thêm vào), ta nhanh chóng sinh ra mã Gray cơ số 2 với các số có n chữ số 1
Nhận xét rằng, mã Gray cơ số 2 độ dài n (của các số là các vetơ hay các bộ n chữ số) là mã xoay vòng (cyclic) mà các vectơ n bộ chữ số đầu và các vectơ
n bộ chữ số cuối tương ứng chỉ khác nhau một vị trí Hai số liền kề chỉ khác
nhau một chữ số Nếu mã được sử dụng cho máy đếm chứa các bánh xe, như ở
các công tơ mét, thì đồng hồ đo có thể đi từ số cao nhất (số 1) trở về số thấp nhất (số 0) với thay đổi chỉ một đơn vị của một bánh xe
BẢNG CÁC SỐ TỪ 1 ĐẾN 42 VÀ MÃ GRAY CƠ SỐ 2 CỦA CHÖNG
Cơ số Cơ số M Ã Cơ số Cơ số M Ã
Trang 37Thí dụ 1.1 Với mã Gray gồm 4 số có hai chữ số 00, 01, 11, 10 ta có thể kí hiệu
lại là: 1, 2, 1 Ta thấy rằng dãy này gồm ba số với hai số 1 bên trái và bên phải đối xứng qua số giữa (số 2)
Thí dụ 1.2 Ta có thể kí hiệu lại mã Gray gồm 8 số có ba chữ số 000, 001, 011,
010, 110, 111, 101, 100 là: 1, 2, 1, 3, 1, 2, 1 Dãy này gồm 7 số hạng (=23 ) 1
và có tính đối xứng Nó cũng dễ dàng được xây dựng từ dãy 1, 2, 1 theo qui tắc
Trang 38thêm số 3 (bằng số chữ số trong mã Gray cơ số 2 đang xét) và viết thêm dãy 1,
2, 1 (về bên phải) đối xứng với dãy 1, 2, 1 qua số 3
Qui tắc trên cũng cho phép xây dựng mã Gray cơ số 2 khi số chữ số tăng lên
Thí dụ 1.3 Mã Gray gồm 16 số có bốn chữ số được xây dựng từ mã Gray có ba
chữ số 1, 2, 1, 3, 1, 2, 1 thành 1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1 Độ dài của dãy này là 24 1 15
Như vậy, mỗi mã Gray cơ số 2 n chữ số gồm 2 n số có n chữ số tương ứng với
một dãy gồm 2n số hạng Để xây dựng mã Gray gồm 1 2n1 số với n chữ 1
số ta chỉ việc viết số hạng giữa n và viết hai dãy tương ứng với mã Gray n 1chữ số vào hai bên Số số hạng của dãy này là
2n 1 1 2n 1 2.2n 1 2n1 1
Do tính đối xứng nên dãy này không thay đổi khi ta viết các số hạng của nó theo thứ tự ngược lại Hơn nữa, dãy tương ứng với mã Gray n chữ số có tính chất: 1
tất cả các số hạng trong dãy, trừ số giữa, đều không lớn hơn n Điều này có
nghĩa là, nếu sử dụng dãy này để viết các số trong mã Gray độ dài n , bắt đầu 1
n số đầu tiên đều bắt đầu từ 0, bởi vì tọa độ đầu tiên bên phải
(chữ số thứ n ) của các số đó không thay đổi (bằng 0), các tọa độ còn lại tạo 1
thành một vectơ độ dài n và chúng được sắp xếp hoàn toàn giống như trong mã Gray với n chữ số Vì vậy hoán vị của tất cả 2 n số 0 và 1 tạo thành các vectơ độ dài n (với tọa độ đầu tiên bằng 0, chỉ có n tọa độ sau thay đổi), bắt đầu từ 1
Phần tiếp theo của mã Gray là hoán vị của số 0 và 1 tạo thành các
vectơ độ dài n (với tọa độ đầu tiên, hay chữ số thứ 1 n , bằng 1, bởi vì số 11
n đã đứng ở vị trí giữa của dãy) Các số này chính là các vectơ có n tọa độ
cuối đối xứng với n tọa độ cuối của các vectơ trong phần đầu của mã Gray qua
Trang 39số giữa Do đó, vectơ cuối cùng trong mã Gray có dạng 10 0
n
Bằng cách
này, ta đã xây dựng được mã Gray độ dài n dựa trên mã Gray độ dài n 1
Thí dụ 1.1’ Vì mã Gray độ dài 1 chỉ gồm 2 số có một chữ số 0, 1 nên từ dãy 1,
2, 1 ta cũng dễ dàng khôi phục lại mã Gray độ dài 2 bằng cách viết số đầu tiên là
00 Số thứ hai tương ứng với số 1 trong dãy phải là 01 (chữ số thuộc hàng đơn vị thay đổi); Số thứ ba tương ứng với số 2 trong dãy phải là 11 (chữ số thuộc hàng chục thay đổi); Số thứ tư tương ứng với số 1 trong dãy phải là 10 (chữ số thuộc hàng đơn vị thay đổi)
Ta cũng có thể xây dựng mã Gray của các số có hai chữ số từ dãy 1, 2, 1 ngắn gọn hơn như sau: Từ dãy 1, 2, 1 ta xây dựng mã Gray độ dài 2 bằng cách viết hai số 0, 1 Sau đó thêm 0 vào đầu hai số này ta được hai số đầu tiên 00, 01 của
mã Gray cơ số 2 Sau đó lấy đối xứng, được hai số 01, 00 và thay chữ số 0 ở đầu các số này bởi chữ số 1, ta được mã Gray độ dài 2 là 00, 01, 11, 10 Vậy mã Gray hai chữ số, tương ứng 1-1 với dãy 1, 2, 1 là 00, 01, 11, 10
Thí dụ 1.2’ Từ dãy 1, 2, 1, 3, 1, 2, 1 ta xây dựng mã Gray độ dài 3 bằng cách
viết mã Gray độ dài 2 là 00, 01, 11, 10 và lấy đối xứng, ta được dãy gồm tám số
00, 01, 11, 10, 10, 11, 01, 00 Thêm chữ số 0 vào đầu các số trong mã Gray độ dài 2 và thêm chữ số 1 vào đầu các số trong phần đối xứng Ta được mã Gray độ dài 3: 000, 001, 011, 010, 110, 111, 101, 100
Qui tắc chuyển số trong hệ đếm cơ số n sang số trong mã Gray phản xạ chỉ là
sự tổng quát hóa đơn giản của các qui tắc cho hệ đếm cơ số 2 như sau
Nếu cơ số là chẵn thì các qui tắc hoàn toàn giống như cho hệ đếm cơ số 2, với một chút sửa đổi: khi chữ số bị thay đổi thì nó thay đổi thành “phần bù” theo 1
n , tức là chữ số được thay bằng hiệu của n với chữ số đó Trong hệ đếm 1
cơ số 2, vì n nên ta đã có thay đổi đơn giản là 1 thành 0 và 0 thành 1 1 1Trong hệ đếm cơ số 10, các số được thay bằng bù của nó theo 9