MỤC LỤC LỜI CẢM ƠN iv PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN vi TÓM TẮT vii MỤC LỤC viii DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ x CHƯƠNG 1 – MÔ TẢ BÀI TOÁN 1 CHƯƠNG 2 – CÁC BƯỚC GIẢI BÀI TOÁN 2 CHƯƠNG 3 – CODE 2 CHƯƠNG 4 – 5 TEST CASE 2 CHƯƠNG 5 – BẢNG ĐÁNH GIÁ 2 TÀI LIỆU THAM KHẢO 3 CHƯƠNG 1 – MÔ TẢ BÀI TOÁN Sudoku là bảng câu đó hình vuông, mỗi chiều có 9 ô nhỏ, hợp thành 9 cột, 9 hàng và được chia thành 9 ô lớn 3x3. Một vài ô nhỏ được đánh số, đó là manh mối để tìm lời giải. Tùy theo mức độ nhiều hay ít của manh mối, các câu đố được xếp theo loại dễ, trung bình, khó Mục tiêu của Câu đố Sudoku là điền các chữ số vào một lưới 9×9 sao cho mỗi cột, mỗi hàng, và mỗi phần trong số chín lưới con 3×3 cấu tạo nên lưới chính (cũng gọi là hộp, khối, hoặc vùng) đều chứa tất cả các chữ số từ 1 tới 9. Câu đố đã được hoàn thành một phần, người chơi phải giải tiếp bằng việc điền số sao cho: + Các số cùng 1 dòng không được trùng + Các số cùng 1 cột không được trùng + Các số trong cùng 1 ô 3x3 không được trùng + Thứ tự điền số là không quan trọng
TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO DỰ ÁN GIỮA KÌ TỐN TỔ HỢP VÀ ĐỒ THỊ Xây dựng Câu đố SUDOKU Người hướng dẫn: GV NGUYỄN CHÍ THIỆN Người thực hiện: NGUYỄN QUỐC THÁI – 51800930 Lớp: 18050301 LƯU QUANG THẮNG – 51800932 Lớp: 18050301 Khố THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021 i : 22 ii LỜI CẢM ƠN Qua em xin gửi lời cảm ơn thầy tận tình giúp đỡ, hướng dẫn em hoàn thành dự án Tuy nhiên trình độ kiến thức cịn hạn hẹp nên chương trình khơng tránh khỏi thiếu sót, em mong nhận góp ý bổ sung thầy bạn để đề tài em hoàn thiện iii ĐỒ ÁN ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tơi xin cam đoan sản phẩm đồ án riêng hướng dẫn GV Nguyễn Chí Thiện Các nội dung nghiên cứu, kết đề tài trung thực chưa công bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài ra, đồ án sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm nội dung đồ án Trường đại học Tôn Đức Thắng không liên quan đến vi phạm tác quyền, quyền gây trình thực (nếu có) TP Hồ Chí Minh, ngày tháng năm Tác giả (ký tên ghi rõ họ tên) Nguyễn Quốc Thái Lưu Quang Thắng iv PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN Phần xác nhận GV hướng dẫn _ _ _ _ _ _ _ Tp Hồ Chí Minh, ngày tháng năm (kí ghi họ tên) Phần đánh giá GV chấm _ _ _ _ _ _ _ Tp Hồ Chí Minh, ngày tháng năm (kí ghi họ tên) v TÓM TẮT Xây dựng câu đố Sudoku sử dụng Latin Squares vi MỤC LỤC LỜI CẢM ƠN .iv PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN vi TÓM TẮT vii MỤC LỤC viii DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ x CHƯƠNG – MƠ TẢ BÀI TỐN .1 CHƯƠNG – CÁC BƯỚC GIẢI BÀI TOÁN .2 CHƯƠNG – CODE CHƯƠNG – TEST CASE CHƯƠNG – BẢNG ĐÁNH GIÁ .2 TÀI LIỆU THAM KHẢO vii DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT viii DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ DANH MỤC HÌNH No table of figures entries found ix CHƯƠNG – MƠ TẢ BÀI TỐN Sudoku bảng câu hình vng, chiều có nhỏ, hợp thành cột, hàng chia thành ô lớn 3x3 Một vài nhỏ đánh số, manh mối để tìm lời giải Tùy theo mức độ nhiều hay manh mối, câu đố xếp theo loại dễ, trung bình, khó Mục tiêu Câu đố Sudoku điền chữ số vào lưới 9×9 cho cột, hàng, phần số chín lưới 3×3 cấu tạo nên lưới (cũng gọi "hộp", "khối", "vùng") chứa tất chữ số từ tới Câu đố hoàn thành phần, người chơi phải giải tiếp việc điền số cho: + Các số dịng khơng trùng + Các số cột không trùng + Các số ô 3x3 không trùng + Thứ tự điền số không quan trọng CHƯƠNG – CÁC BƯỚC GIẢI BÀI TOÁN Bước 1: Tạo Latin Squares 3x3 gồm số 0, Một hình vng Latin là mảng n × n sao cho số xuất hàng không trùng số xuất cột không trùng Latin Squares 3x3 sau tạo Bước 2: Tạo thêm Latin Squares 3x3 gồm số 0, ứng với số Latin Squares vừa tạo bước Các Latin Squares 3x3 vừa tạo bước không trùng Bước 3: Chuyển số từ hệ sang hệ 10 Coi số 0,1,2 số hệ chuyển sang hệ 10 Xét Latin Squares 3x3 chuyển sang hệ 10 sau Mỗi ô Latin Squares tạo bước gán với số tương ứng ô Latin Squares vừa tạo bước thứ Công thức: Số gán vào ô Latin Squares x + số xét + Dịng thứ 1: 2×3+0+1=7 2×3+2+1=9 2×3+1+1=8 Dịng thứ 2: 2×3+1+1=8 2×3+0+1=7 2×3+2+1=9 Dịng thứ 3: 2×3+2+1=9 2×3+1+1=8 2×3+0+1=7 Cuối có kết sau: Bước 4: Chuyển dòng với để số ô 3x3 không bị trùng Sau làm xong bước có bảng sau: Chuyển dịng dòng cho Chuyển dòng dòng cho Chuyển dòng dòng cho Chúng ta được: Bước 5: Đục lỗ Số lỗ người chơi đưa Số lỗ phải bội chia cho 3x3 Ví dụ: Người chơi cho số lỗ 54 lỗ Có 3x3 số lỗ ô 6 CHƯƠNG – CODE Bước 1: Tạo Latin Squares 3x3 gồm số 0, Bước 2: Tạo thêm Latin Squares 3x3 gồm số 0, ứng với số Latin Squares vừa tạo bước Bước 3: Chuyển số từ hệ sang hệ 10 Bước 4: Chuyển dịng với để số 3x3 không bị trùng Bước 5: Đục lỗ CHƯƠNG – TEST CASE Test case Test case 10 Test case Test case Test case 11