1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI QUAY LUI VÀ SUDOKU

27 40 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 552,79 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ví dụ như sau: Hình 1.1: Ví dụ sudoku 1.2 Giới thiệu về kỹ thuật quay lui Quay lui tiếng Anh: backtracking là một chiến lược tìm kiếm lời giải cho các bài toán thỏa mãn ràng buộc.. Quy t

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO

ĐỀ TÀI:

QUAY LUI VÀ SUDOKU

GIÁP ANH TÀI NGUYỄN HẢI NAM Giảng viên hướng dẫn : VŨ VĂN ĐỊNH

Trang 3

1.1 Giới thiệu về bài toán sudoku 1

1.2 Giới thiệu về kỹ thuật quay lui 2

1.2.1 Giải thích 2

1.2.2 Cài đặt 3

1.2.3 Heuristic 3

1.2.4 Tư tưởng của thuật toán 4

1.2.5 Ví dụ 4

1.2.6 Phương pháp 5

1.2.7 Mô tả 5

1.3 Kết luận 7

1.3.1 Về bài toán sudoku 7

1.3.2 Về kỹ thuật quay lui 7

Chương 2 Phân tích bài toán 8

2.1 Phân tích bài toán 8

2.2 Giải thuật cho bài toán 9

2.2.1 Giải thuật cho bài toán 9

2.2.2 Tổ chức chương trình 9

2.2.3 Các hàm giải 10

2.3 Cấu trúc dữ liệu sử dụng 10

Chương 3 Cài đặt, đánh giá thử nghiệm 12

3.1 Giới thiệu về chương trình 12

3.2 Các thành phần của chương trình 13

3.2.1 Thành phần hiển thị và nhập bảng sudoku 13

3.2.2 Bảng đếm số lượng chưa nhập 14

3.2.3 Nút giải 15

3.3 Một số hình ảnh khi chạy chương trình 15

3.4 Kết luận 18

KẾT LUẬN 19

DANH MỤC TÀI LIỆU THAM KHẢO 20

DANH MỤC HÌNH ẢNH Hình 1.1: Ví dụ sudoku 2

Hình 1.2: Ví dụ cây quay lui 6

Hình 2.1: Input Sudoku 8

Hình 2.2: Output Sudoku 8

Hình 3.1: Giao diện chính 12

Trang 4

Hình 3.3: Bảng đếm số còn lại 14

Hình 3.4: Bảng đếm số còn lại khi hoạt động 14

Hình 3.5: Nút giải 15

Hình 3.6: Giao diện chính khi được nhập 15

Hình 3.7: Giao diện giải thành công 16

Hình 3.8: Giao diện thông báo bảng đã giải 16

Hình 3.9: Giao diện thông báo lỗi 17

Hình 3.10: Giao diện bảng khi giải thành công 17

Hình 3.11: Giao diện không thể giải 18

Trang 6

LỜI MỞ ĐẦU

Trang 7

Môn học Cấu trúc dữ liệu và giải thuật nâng cao cung cấp những kiến thức về các chiến lược, các kỹ thuật, cấu trúc dữ liệu phức tạp Với những kiến thức đã đạt được trong quá trình học tập, nhóm chúng em sẽ vận dụng vào đề tài giải bài toán đố sudoku với kỹ thuật quay lui.

Đề tài Quay lui và sudoku này sẽ sử dụng ba ngôn ngữ html css javascript thuần để biểu diễn kỹ thuật quay lui với công cụ lập trình là Visual Studio Code 2020, với trình quản lý phiên bản là Git, chạy bởi node package là live-server khi offline Chương trình sẽ được deploy lên GitHub và chạy online với tên miền:

Nhóm chúng em xin cảm ơn thầy Vũ Văn Định đã tận tình truyềnđạt kiến thức trong quá trình học tập cũng như quá trình làm chuyên đề

Trang 8

NỘI DUNG THỰC HIỆN

Chương 1 Giới thiệu bài toán thực hiện

1.1 Giới thiệu về bài toán sudoku

Trò chơi này được kiến trúc sư Howard Garns ở New York thiết kế và được giới thiệu lần đầu tiên vào năm 1979 trên tạp chí Dell (Mỹ) với tên gọi là "Number Place" Tháng 4/1984, Number Place lần đầu tiên được giới thiệu tại Nhật trên báo Monthly Nikolist với tên gọi "Suuji

wa dokusinh ni kagiru", dịch sang tiếng Anh có nghĩa là "những con số phải độc nhất" hoặc "những con số tìm thấy chỉ một lần" và được "rút gọn" thành sudoku (su = number, doku = single) Nhưng trò chơi này chỉ trở nên phổ biến khi người Anh nhập cuộc Báo Times số ngày

12/11/2004 đã giới thiệu nó với tên gọi “sudoku” dựa trên kết quả phát triển chương trình trò chơi trên máy vi tính của một quan tòa về hưu người New Zealand sống ở Hongkong tên là Wayne Gould Sau đó, sudoku lần lượt xuất hiện trên hầu hết các tờ báo hàng đầu của Anh và được "đưa" đến Australia nhờ tập đoàn báo chí Telegarph Từ ngày

2/8/2005, chương trình Radio Times của đài BBC (Anh) có một chuyên

đề hằng tuần về sudoku mang tên Super sudoku sudoku đã xuất hiện trêntivi lần đầu tiên vào ngày 1/7/2005 trong chương trình sudoku Live trên kênh Sky One Đây là một cuộc thi gồm 9 đội (mỗi đội 8 người cùng với một nhân vật nổi tiếng) tranh tài với nhau, tạo nên bảng sudoku lớn nhất thế giới (rộng 84 m với 1905 giải pháp đúng), câu đố được khắc trên một sườn đồi ở Chipping Sodbury nước Anh Hiện nay, sudoku đã có mặt trêncác báo, tạp chí hàng đầu và trở thành trò chơi gây sốt tại hơn 40 quốc gia

và vùng lãnh thổ trên thế giới, trong đó có Việt Nam sudoku xuất hiện tạiViệt Nam sớm nhất là trên tạp chí Khám Phá (Trực thuộc Sở Khoa học vàCông nghệ Thành phố Hồ Chí Minh), sau đó đến Thanh Niên, Hoa Học Trò, được xem như là một hình thức giải trí đầy trí tuệ của giới trẻ Đặc biệt, mục Vua trò chơi trên báo Hoa Học Trò với "món chủ lực" là sudokuthu hút rất đông học sinh tham gia (theo kết quả công bố của báo)

Quy luật của trò chơi tương đối đơn giản Cho một bàn hình vuông được chia thành một lưới 81 ô nhỏ gồm 9 hàng và 9 cột, 81 ô nhỏ đó lại được chia thành 9 vùng, mỗi vùng có 9 ô Đề bài sudoku là một bàn hình vuông như thế, trên đó tại một số ô người ta đã điền sẵn một số giá trị

Trang 9

Cách chơi như sau: Phải điền các số từ 1 đến 9 vào mỗi hàng dọc, ngang không được trùng lặp Ở mỗi hàng dọc, mỗi hàng ngang và mỗi ô vuông 3*3 được phân cách bằng vạch đen đậm các số chỉ được sử dụng một lần và không lặp lại

Ví dụ như sau:

Hình 1.1: Ví dụ sudoku

1.2 Giới thiệu về kỹ thuật quay lui

Quay lui (tiếng Anh: backtracking) là một chiến lược tìm kiếm lời giải cho các bài toán thỏa mãn ràng buộc Người đầu tiên đề ra thuật ngữ này (backtrack) là nhà toán học người Mỹ D H Lehmer vào những năm 1950

1.2.1 Giải thích

Các bài toán thỏa mãn ràng buộc là các bài toán có một lời giải đầy đủ,trong đó thứ tự của các phần tử không quan trọng Các bài toán này bao gồm một tập các biến mà mỗi biến cần được gán một giá trị tùy theo các ràng buộc cụ thể của bài toán Việc quay lui là để thử tất cả các tổ hợp để tìm được một lời giải Thế mạnh của phương pháp này là nhiều cài đặt tránh được việc phải thử nhiều tổ hợp chưa hoàn chỉnh, và nhờ đó giảm thời gian chạy Phương pháp quay lui có quan hệ chặt chẽ với tìm kiếm tổhợp

Trang 10

Về bản chất, tư tưởng của phương pháp là thử từng khả năng cho đến khi tìm thấy lời giải đúng Đó là một quá trình tìm kiếm theo độ sâu trongmột tập hợp các lời giải Trong quá trình tìm kiếm, nếu ta gặp một hướng lựa chọn không thỏa mãn, ta quay lui về điểm lựa chọn nơi có các hướng khác và thử hướng lựa chọn tiếp theo Khi đã thử hết các lựa chọn xuất phát từ điểm lựa chọn đó, ta quay lại điểm lựa chọn trước đó và thử

hướng lựa chọn tiếp theo tại đó Quá trình tìm kiếm thất bại khi không còn điểm lựa chọn nào nữa

Quy trình đó thường được cài đặt bằng một hàm đệ quy mà trong đó mỗi thể hiện của hàm lấy thêm một biến và lần lượt gán tất cả các giá trị

có thể cho biến đó, với mỗi lần gán trị lại gọi chuỗi đệ quy tiếp theo để thử các biến tiếp theo Chiến lược quay lui tương tự với tìm kiếm theo độ sâu nhưng sử dụng ít không gian bộ nhớ hơn, nó chỉ lưu giữ trạng thái của một lời giải hiện tại và cập nhật nó

1.2.3 Heuristic

Để tăng tốc quá trình tìm kiếm, khi một giá trị được chọn, trước khi thực hiện lời gọi đệ quy, thuật toán thường xóa bỏ giá trị đó khỏi miền xác định của các biến có mâu thuẫn chưa được gán (kiểm tra tiến -

forward checking) và kiểm tra tất cả các hằng số để tìm các giá trị khác

đã bị loại trừ bởi giá trị vừa được gán (lan truyền ràng buộc - constraint propagation)

Người ta thường sử dụng một số phương pháp heuristic để tăng tốc choquá trình quay lui Do các biến có thể được xử lý theo thứ tự bất kỳ, việc thử các biến bị ràng buộc chặt nhất (nghĩa là các biến có ít lựa chọn về giá trị nhất) thường có hiệu quả do nó tỉa cây tìm kiếm từ sớm (cực đại hóa ảnh hưởng của lựa chọn sớm hiện hành)

Các cài đặt quay lui phức tạp thường sử dụng một hàm biên, hàm này kiểm tra xem từ lời giản chưa đầy đủ hiện tại có thể thu được một lời giải hay không, nghĩa là nếu đi tiếp theo hướng hiện tại thì liệu có ích hay không Nhờ đó, một kiểm tra biên phát hiện ra các lời giải dở dang chắc chắn thất bại có thể nâng cao hiệu quả của tìm kiếm Do hàm này hay được chạy, có thể tại mỗi bước, nên chi phí tính toán các biên cần tối hiểu, nếu không, hiệu quả toàn cục của thuật toán sẽ không được cải tiến

Trang 11

Các hàm kiểm tra biên được tạo theo kiểu gần như các hàm heuristic khác: nới lỏng một số điều kiện của bài toán.

 Nét đặc trưng của kĩ thuật quay lui là các bước hướng tới lời giải cuốicùng của bài toán hoàn toàn được làm thử

 Tại mỗi bước, nếu có một lựa chọn được chấp nhận thì ghi nhận lại lựa chọn này và tiến hành các bước thử tiếp theo Còn ngược lại không có lựa chọn nào thích hợp thì làm lại bước trước, xóa bỏ sự ghinhận và quay về chu trình thử các lựa chọn còn lại

 Điểm quan trọng của thuật toán là phải ghi nhớ tại mỗi bước đi qua đểtránh trùng lặp khi quay lui Các thông tin này cần được lưu trữ vào một ngăn xếp-Stack (vào sau ra trước), nên thuật toán thể hiện ý thiết

1.2.5 Ví dụ

Sử dụng chiến lược quay lui dùng để giải bài toán liệt kê các cấu hình Mỗi cấu hình được xây dựng bằng cách xây dựng từng phần tử, mỗiphần tử được chọn bằng cách thử tất cả các khả năng

Trang 12

giá trị đó Với mỗi giá trị thử gán cho x2 lại xét tiếp các khả năng chọn x3 cứ tiếp tục như vậy đến bước:

n) Xét tất cả các giá trị xn có thể nhận, thử cho xn nhận lần lượt các giá trị đó, thông báo cấu hình tìm được (x1,x2, ,xn)

if (xi là phần tử cuối cùng trong cấu hình) then

<Thông báo cấu hình tìm được>

else

begin

<Ghi nhận việc cho xi nhận giá trị V (Nếu cần)>;

Try(i + 1); {Gọi đệ qui để chọn tiếp xi + 1}

<Nếu cần, bỏ ghi nhận việc thử xi := V, để thử giá trị khác>;

Trang 13

end;

end;

(Thuật toán quay lui sẽ bắt đầu bằng lời gọi Try(1);)

Ta có thể trình bày quá trình tìm kiếm lời giải quả thuật toán quay lui bằng cây sau:

Hình 1.2: Ví dụ cây quay lui

1.3 Kết luận

1.3.1 Về bài toán sudoku

Đây là một bài toán tuy đơn giản nhưng lại đòi hỏi nhiều trí tuệ Thích hợp để rèn luyện khả năng tư duy Và vô cùng thích hợp để ứng dụng quay lui để giải

1.3.2 Về kỹ thuật quay lui

Trang 14

giải Thế mạnh của phương pháp này là nhiều cài đặt tránh được việc phảithử nhiều trường hợp chưa hoàn chỉnh, nhờ đó giảm thời gian chạy.

Nhược điểm: Trong trường hợp xấu nhất độ phức tạp của quay lui vẫn

là cấp số mũ Vì nó mắc phải các nhược điểm sau:

- Rơi vào tình trạng "thrashing": qúa trình tìm kiếm cứ gặp phải bế tắc vớicùng một nguyên nhân

- Thực hiện các công việc dư thừa: Mỗi lần chúng ta quay lui, chúng tacần phải đánh giá lại lời giải trong khi đôi lúc điều đó không cần thiết

- Không sớm phát hiện được các khả năng bị bế tắc trong tương lai Quaylui chuẩn, không có cơ chế nhìn về tương lai để nhận biết đc nhánh tìmkiếm sẽ đi vào bế tắc

Chương 2 Phân tích bài toán

2.1 Phân tích bài toán

 Input: Một bảng số được người dùng nhập trên nền giao diện (GUI)

Ví dụ người dùng sẽ nhập như sau:

Trang 15

Hình 2.1: Input Sudoku

 Output: Kết quả của bài toán Có thể sẽ có đáp án hoặc không có đáp

án Sẽ được hiển thị như sau:

Hình 2.2: Output Sudoku

2.2 Giải thuật cho bài toán

2.2.1 Giải thuật cho bài toán

Bước 1 Lấy tất cả các số phù hợp với từng ô trống

Trang 16

thuộc vào danh sách số phù hợp

Bước 3 Chọn một hàng từ danh sách hàng có thể và đặt nó vào hàngđầu tiên

Bước 4 Đi đến hàng tiếp theo và tìm tất cả các số có thể phù hợp vớitừng ô

Bước 5 Tạo tất cả các hàng có thể phù hợp trong hàng này, sau đóchuyển sang bước 3 cho đến khi đến hàng cuối cùng hoặc không cònhàng nào có thể còn lại

Bước 6 Nếu hàng tiếp theo không còn khả năng nào thì hãy chuyểnsang hàng trước và thử khả năng tiếp theo từ danh sách các hàng khảnăng

Bước 7 Nếu hàng cuối cùng đã đạt và một hàng thỏa mãn trong đó đãtìm thấy thì bài toán đã được giải quyết

2.2.2 Tổ chức chương trình

Chương trình sẽ được tổ chức theo dạng các hàm thủ tục với từng hàm

ứng với mỗi nhiệm vụ khác nhau Chương trình sẽ được viết theo hướngđơn giản nhất với 1giao diện chính để người dùng có thể tương tác ngaylập tức

Dự kiến giao diện chính sẽ gồm 1 bảng sudoku chính, 1 bảng đếm sốlượng và 1 nút chạy giải

Trang 17

 function solveGrid(possibleNumber, rows, startFromZero) {}: Gọihàm nextStep() để giải bài toán, trả về kết quả của bảng nếu có, khôngtrả về gì khi không giải được

 function nextStep(level, possibleNumber, rows, solution,startFromZero) {}: là hàm chạy đệ quy, kiểm tra xem các giá trị tại 1hàng có là duy nhất hay chưa và kiểm tra tính hợp lệ của giá trị trong

1 ô Trả về 1 nếu có đáp án, -1 nếu không có

 function generatePossibleRows(possibleNumber) {}: Sinh ra hàng sốthỏa yêu cầu để điền vào bảng sudoku

 function ViewPuzzle(grid) {}: Đọc đầu vào của người dùng

 function readInput() {}: Đọc đầu vào hiện tại của người dùng

 function checkValue(value, row, column, block, defaultValue,currectValue) {}: kiểm tra giá trị người dùng nhập

 function updateRemainingTable(){}:Hỗ trợ cập nhật giá trị của bảngremaining

 function solveSudoku(changeUI) {}: thay đổi giao diện kết quả

 Function solveButtonClick() {} Gọi tất cả các hàm trên khi ngườidùng bấm, thực thi việc giải bài toán

2.3 Cấu trúc dữ liệu sử dụng

Cấu trúc dữ liệu trong bài toán sẽ là dữ liệu kiểu mảng do người dùng

sẽ điền dữ liệu vào bảng sudoku

Một mảng chứa dữ liệu là bảng sudoku mà người dùng nhập vào:

[1,2,3,4,5,6,7,8,9],

Trang 18

remaining=[8,9,8,9,9,9,0,9,7] tức là người dùng đã điền vào bảng các giátrị và trên bảng hiện có 1 giá trị 1, 1 giá 3, 2 giá trị 9, 9 giá trị 7.

Chương 3 Cài đặt, đánh giá thử nghiệm

3.1 Giới thiệu về chương trình

Chương trình sẽ có một giao diện chính duy nhất Người dùng sẽ nhập bảng sudoku thông qua bảng trên màn hình Bên trái sẽ có 1 bảng đếm số lượng các số chưa được nhập Trên cùng sẽ là nút giải bảng

sudoku Chương trình nhắm tới mục tiêu là giải bài toán nhanh và chính xác nhất

Trang 19

Hình 3.1: Giao diện chính

3.2 Các thành phần của chương trình

3.2.1 Thành phần hiển thị và nhập bảng sudoku

Trang 20

Hình 3.2: Giao diện nhập

Đây là màn hình hiển thị đáp án cho sudoku Các chức năng bao gồm nút di chuyển là nút tab hoặc ta sẽ sử dụng chuột hỗ trợ cho quá trình nhập dữ liệu

Trang 22

Hình 3.5: Nút giải

Khi người dùng bấm nút này sẽ chạy chương trình giải Sau một khoảng thời gian ngắn ( tối đa là hơn 3 giây) sẽ hiện ra thông báo giải được và hiện đáp án

3.3 Một số hình ảnh khi chạy chương trình

Hình 3.6: Giao diện chính khi được nhập

Trang 23

Hình 3.7: Giao diện giải thành công

Hình 3.8: Giao diện thông báo bảng đã giải

Trang 24

Hình 3.9: Giao diện thông báo lỗi

Hình 3.10: Giao diện bảng khi giải thành công

Trang 25

Hình 3.11: Giao diện không thể giải

3.4 Kết luận

Chương trình đã đáp ứng được yêu cầu cơ bản nhất là giải được bài toán

Trang 26

KẾT LUẬN

Chương trình tạo ra có những ưu và nhược điểm sau:

Ưu điểm

- Cài đặt được kỹ thuật quay lui

- Chương trình đã giải được bài toán, thỏa mãn các yêu cầu đặt ra

- Giao diện đẹp, thân thiện và dễ dùng

Nhược điểm

- Thuật toán cài đặt chưa tối ưu

- Giải sudoku còn hạn chế, chỉ có thể giải dạng chuẩn 9x9

có thể giải được

Trang 27

DANH MỤC TÀI LIỆU THAM KHẢO

Ngày đăng: 21/12/2021, 07:27

HÌNH ẢNH LIÊN QUAN

DANH MỤC HÌNH ẢNH LỜI MỞ ĐẦU - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
DANH MỤC HÌNH ẢNH LỜI MỞ ĐẦU (Trang 2)
Hình 1.1: Ví dụ sudoku - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 1.1 Ví dụ sudoku (Trang 9)
Hình 1.2: Ví dụ cây quay lui - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 1.2 Ví dụ cây quay lui (Trang 13)
Hình 2.1: Input Sudoku - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 2.1 Input Sudoku (Trang 15)
Hình 2.2: Output Sudoku - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 2.2 Output Sudoku (Trang 15)
Hình 3.1: Giao diện chính - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.1 Giao diện chính (Trang 19)
Hình 3.2: Giao diện nhập - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.2 Giao diện nhập (Trang 20)
3.2.2 Bảng đếm số lượng chưa nhập - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
3.2.2 Bảng đếm số lượng chưa nhập (Trang 21)
Hình 3.3: Bảng đếm số còn lại - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.3 Bảng đếm số còn lại (Trang 21)
Hình 3.5: Nút giải - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.5 Nút giải (Trang 22)
Hình 3.7: Giao diện giải thành công - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.7 Giao diện giải thành công (Trang 23)
Hình 3.8: Giao diện thông báo bảng đã giải - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.8 Giao diện thông báo bảng đã giải (Trang 23)
Hình 3.10: Giao diện bảng khi giải thành công - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.10 Giao diện bảng khi giải thành công (Trang 24)
Hình 3.9: Giao diện thông báo lỗi - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.9 Giao diện thông báo lỗi (Trang 24)
Hình 3.11: Giao diện không thể giải - BÁO CÁO CHUYÊN đề HỌC PHẦN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NÂNG CAO đề TÀI  QUAY LUI VÀ SUDOKU
Hình 3.11 Giao diện không thể giải (Trang 25)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w