Xem mẫu

  1. 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Ì TOÁ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 Khoá     :    22 1
  2. THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021 2
  3. 3
  4. LỜI CẢM ƠN Qua đây em xin được 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 này. Tuy nhiên do trình độ  và kiến thức còn hạn hẹp nên trong   chương trình không tránh khỏi những thiếu sót, em rất mong nhận được những góp  ý và bổ sung của các thầy và các bạn để đề tài của em được hoàn thiện. 4
  5. ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG Tôi xin cam đoan đây là sản phẩm đồ  án của riêng chúng tôi và được sự  hướng dẫn của GV. Nguyễn Chí Thiện. Các nội dung nghiên cứu, kết quả trong đề  tài này là trung thực và chưa công bố  dưới bất kỳ  hình thức nào trước đây. Những  số  liệu trong các bảng biểu phục vụ  cho việc phân tích, nhận xét, đánh giá được   chính tác giả  thu thập từ  các nguồn khác nhau có ghi rõ trong phần tài liệu tham  khảo. Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu  của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc. Nếu phát hiện có bất kỳ  sự  gian lận nào tôi xin hoàn toàn chịu trách  nhiệm về nội dung đồ  án của mình. Trường đại học Tôn Đức Thắng không liên  quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực   hiện (nếu có). TP. Hồ Chí Minh, ngày   tháng   năm       Tác giả (ký tên và ghi rõ họ tên) Nguyễn Quốc Thái Lưu Quang Thắng 5
  6. PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN Phần xác nhận của GV hướng dẫn _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ Tp. Hồ Chí Minh, ngày     tháng   năm    (kí và ghi họ tên) Phần đánh giá của GV chấm bài _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ _________________________________________________________ 6
  7. Tp. Hồ Chí Minh, ngày     tháng   năm    (kí và ghi họ tên) 7
  8. TÓM TẮT  Xây dựng câu đố Sudoku sử dụng Latin Squares 8
  9. MỤC LỤC 9
  10. DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT 10
  11. DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ DANH MỤC HÌNH 11
  12. 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 12
  13. CHƯƠNG 2 – CÁC BƯỚC GIẢI BÀI TOÁN Bước 1: Tạo ra 1 Latin Squares 3x3 gồm 3 số 0, 1 và 2 Một hình vuông Latin là một mảng  n × n  sao cho các số xuất hiện trong một  hàng không được trùng nhau và các số xuất hiện trong 1 cột không được trùng nhau Latin Squares 3x3 sau khi tạo Bước 2: Tạo ra thêm Latin Squares 3x3 gồm 3 số 0, 1 và 2 ứng  với mỗi một số trong Latin Squares vừa tạo ở bước 1 Các Latin Squares 3x3 vừa tạo ở bước này không được trùng nhau Bước 3: Chuyển các số từ hệ 3 sang hệ 10 Coi các số 0,1,2 là các số hệ 3 và sẽ chuyển nó sang hệ 10 13
  14. Xét trong 1 ô Latin Squares 3x3 chúng ta sẽ chuyển nó sang hệ 10 như sau Mỗi ô của Latin Squares tạo  ở bước 2 sẽ được gán với số  tương  ứng của ô Latin   Squares vừa tạo ở bước thứ 1 Công thức: Số được gán vào ô Latin Squares x 3 + số đang xét + 1  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 14
  15. 2×3+0+1=7 Cuối cùng chúng ta có kết quả như sau: Bước 4: Chuyển các dòng với nhau để các số trong cùng 1 ô 3x3  không bị trùng Sau khi làm xong 3 bước trên chúng ta sẽ có 1 bảng như sau: Chuyển dòng 2 và dòng 4 cho nhau Chuyển dòng 3 và dòng 7 cho nhau Chuyển dòng 6 và dòng 8 cho nhau 15
  16. Chúng ta sẽ được: Bước 5: Đục lỗ Số lỗ sẽ do người chơi đưa ra Số lỗ phải là bội của 9 và được chia đều cho các ô 3x3 Ví dụ: Người chơi cho số lỗ là 54 lỗ Có 9 ô 3x3 thì số lỗ của mỗi ô là 6 16
  17. 17
  18. CHƯƠNG 3 – CODE Bước 1: Tạo ra 1 Latin Squares 3x3 gồm 3 số 0, 1 và 2 Bước 2: Tạo ra thêm Latin Squares 3x3 gồm 3 số 0, 1 và 2 ứng  với mỗi một số trong Latin Squares vừa tạo ở bước 1 18
  19. Bước 3: Chuyển các số từ hệ 3 sang hệ 10 Bước 4: Chuyển các dòng với nhau để các số trong cùng 1 ô 3x3  không bị trùng Bước 5: Đục lỗ 19
  20. 20
nguon tai.lieu . vn