Tải bản đầy đủ (.docx) (24 trang)

BÁO CÁO DỰ ÁN GIỮA KÌ TOÁN TỔ HỢP VÀ ĐỒ THỊ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (228.7 KB, 24 trang )

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 đây em xin được gửi lời cảm ơn thầy đã tận tình giúp đỡ, hướng dẫn em
hồ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.



iii


ĐỒ ÁN ĐƯỢC HỒ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.
Ngồ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 hồn tồ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 q 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

iv


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

_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
Tp. Hồ Chí Minh, ngày tháng năm
(kí và 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 1 – MƠ TẢ BÀI TỐ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

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 1 – MƠ TẢ BÀI TỐN
Sudoku là bảng câu đó hình vng, 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

1


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 vng 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
Xét trong 1 ô Latin Squares 3x3 chúng ta sẽ chuyển nó sang hệ 10 như sau

2


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
2×3+0+1=7

3


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

4


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

5


6


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

Bước 3: Chuyển các số từ hệ 3 sang hệ 10

7



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ỗ

8


9


CHƯƠNG 4 – 5 TEST CASE
Test case 1

Test case 2

10


Test case 3

Test case 4

Test case 5

11




×